script_core 0.2.2 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +41 -45
- data/.travis.yml +2 -1
- data/Gemfile +3 -3
- data/README.md +7 -1
- data/bootstrap.sh +2 -2
- data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
- data/ext/enterprise_script_service/libseccomp/README.md +21 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
- data/ext/enterprise_script_service/mruby/.gitignore +3 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
- data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/README.md +6 -2
- data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
- data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
- data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
- data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +3 -214
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +62 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
- data/ext/enterprise_script_service/mruby/src/array.c +25 -11
- data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
- data/ext/enterprise_script_service/mruby/src/class.c +48 -32
- data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
- data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
- data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
- data/ext/enterprise_script_service/mruby/src/error.c +58 -7
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
- data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
- data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
- data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
- data/ext/enterprise_script_service/mruby/src/load.c +56 -30
- data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
- data/ext/enterprise_script_service/mruby/src/object.c +23 -5
- data/ext/enterprise_script_service/mruby/src/print.c +27 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/state.c +34 -11
- data/ext/enterprise_script_service/mruby/src/string.c +93 -56
- data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
- data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +15 -24
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
- data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
- data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
- data/ext/enterprise_script_service/msgpack/README.md +3 -2
- data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
- data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
- data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
- data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
- data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
- data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
- data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
- data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
- data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
- data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
- data/lib/script_core/engine.rb +24 -5
- data/lib/script_core/executable.rb +4 -3
- data/lib/script_core/result.rb +1 -5
- data/lib/script_core/service_channel.rb +1 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +2 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- metadata +68 -30
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
- data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -6,27 +6,8 @@
|
|
6
6
|
#ifndef _ARCH_S390X_H
|
7
7
|
#define _ARCH_S390X_H
|
8
8
|
|
9
|
-
#include <inttypes.h>
|
10
|
-
|
11
9
|
#include "arch.h"
|
12
|
-
#include "db.h"
|
13
|
-
#include "system.h"
|
14
|
-
|
15
|
-
#define s390x_arg_count_max 6
|
16
|
-
|
17
|
-
extern const struct arch_def arch_def_s390x;
|
18
|
-
#define s390x_arg_offset(x) (offsetof(struct seccomp_data, args[x]))
|
19
|
-
|
20
|
-
#define s390x_arg_offset_lo(x) (s390x_arg_offset(x) + 4)
|
21
|
-
#define s390x_arg_offset_hi(x) (s390x_arg_offset(x))
|
22
|
-
|
23
|
-
int s390x_syscall_resolve_name(const char *name);
|
24
|
-
const char *s390x_syscall_resolve_num(int num);
|
25
|
-
|
26
|
-
const struct arch_syscall_def *s390x_syscall_iterate(unsigned int spot);
|
27
|
-
|
28
|
-
int s390x_syscall_rewrite(int *syscall);
|
29
10
|
|
30
|
-
|
11
|
+
ARCH_DECL(s390x)
|
31
12
|
|
32
13
|
#endif
|
@@ -39,8 +39,10 @@
|
|
39
39
|
#include "arch-mips64n32.h"
|
40
40
|
#include "arch-aarch64.h"
|
41
41
|
#include "arch-parisc.h"
|
42
|
+
#include "arch-parisc64.h"
|
42
43
|
#include "arch-ppc.h"
|
43
44
|
#include "arch-ppc64.h"
|
45
|
+
#include "arch-riscv64.h"
|
44
46
|
#include "arch-s390.h"
|
45
47
|
#include "arch-s390x.h"
|
46
48
|
|
@@ -117,9 +119,11 @@ int main(int argc, char *argv[])
|
|
117
119
|
sys = mips64n32_syscall_iterate(iter);
|
118
120
|
break;
|
119
121
|
case SCMP_ARCH_PARISC:
|
120
|
-
case SCMP_ARCH_PARISC64:
|
121
122
|
sys = parisc_syscall_iterate(iter);
|
122
123
|
break;
|
124
|
+
case SCMP_ARCH_PARISC64:
|
125
|
+
sys = parisc64_syscall_iterate(iter);
|
126
|
+
break;
|
123
127
|
case SCMP_ARCH_PPC:
|
124
128
|
sys = ppc_syscall_iterate(iter);
|
125
129
|
break;
|
@@ -127,6 +131,9 @@ int main(int argc, char *argv[])
|
|
127
131
|
case SCMP_ARCH_PPC64LE:
|
128
132
|
sys = ppc64_syscall_iterate(iter);
|
129
133
|
break;
|
134
|
+
case SCMP_ARCH_RISCV64:
|
135
|
+
sys = riscv64_syscall_iterate(iter);
|
136
|
+
break;
|
130
137
|
case SCMP_ARCH_S390:
|
131
138
|
sys = s390_syscall_iterate(iter);
|
132
139
|
break;
|
@@ -4,6 +4,8 @@
|
|
4
4
|
# libseccomp syscall validation script
|
5
5
|
#
|
6
6
|
# Copyright (c) 2014 Red Hat <pmoore@redhat.com>
|
7
|
+
# Copyright (c) 2020 Cisco Systems, Inc. <pmoore2@cisco.com>
|
8
|
+
#
|
7
9
|
# Author: Paul Moore <paul@paul-moore.com>
|
8
10
|
#
|
9
11
|
|
@@ -57,17 +59,38 @@ function verify_deps() {
|
|
57
59
|
#
|
58
60
|
function usage() {
|
59
61
|
cat << EOF
|
60
|
-
usage: arch-syscall-validate [-h] [-a <arch>] <kernel_directory>
|
62
|
+
usage: arch-syscall-validate [-h] [-c] [-a <arch>] <kernel_directory>
|
61
63
|
|
62
64
|
libseccomp syscall validation script
|
63
65
|
optional arguments:
|
64
66
|
-h show this help message and exit
|
65
67
|
-a architecture
|
66
68
|
-l output the library's syscall definitions
|
67
|
-
-s output the
|
69
|
+
-s output the kernel's syscall definitions
|
70
|
+
-c generate a CSV of the kernel's syscall definitions
|
68
71
|
EOF
|
69
72
|
}
|
70
73
|
|
74
|
+
#
|
75
|
+
# Dump the kernel version
|
76
|
+
#
|
77
|
+
# Arguments:
|
78
|
+
# 1 path to the kernel source
|
79
|
+
#
|
80
|
+
# Dump the kernel's version information to stdout.
|
81
|
+
#
|
82
|
+
function kernel_version() {
|
83
|
+
local maj=$(cat $1/Makefile | \
|
84
|
+
grep "^VERSION =" | awk -F "= " '{ print $2 }')
|
85
|
+
local min=$(cat $1/Makefile | \
|
86
|
+
grep "^PATCHLEVEL =" | awk -F "= " '{ print $2 }')
|
87
|
+
local sub=$(cat $1/Makefile | \
|
88
|
+
grep "^SUBLEVEL =" | awk -F "= " '{ print $2 }')
|
89
|
+
local xtr=$(cat $1/Makefile | \
|
90
|
+
grep "^EXTRAVERSION =" | awk -F "= " '{ print $2 }')
|
91
|
+
echo "${maj}.${min}.${sub}${xtr}"
|
92
|
+
}
|
93
|
+
|
71
94
|
#
|
72
95
|
# Dump the library syscall table for a given architecture
|
73
96
|
#
|
@@ -84,7 +107,58 @@ function dump_lib_arch() {
|
|
84
107
|
[[ -z $1 ]] && return
|
85
108
|
|
86
109
|
[[ -n $2 ]] && offset_str="-o $2"
|
87
|
-
$LIB_SYS_DUMP -a $1 $offset_str | sed
|
110
|
+
$LIB_SYS_DUMP -a $1 $offset_str | sed 's/\t/,/' | sort
|
111
|
+
}
|
112
|
+
|
113
|
+
#
|
114
|
+
# Mangle the library pseudo syscall values
|
115
|
+
#
|
116
|
+
# Arguments:
|
117
|
+
# 1 architecture
|
118
|
+
#
|
119
|
+
# Mangle the supplied pseudo syscall to match the system values
|
120
|
+
#
|
121
|
+
function mangle_lib_syscall() {
|
122
|
+
local sed_filter=""
|
123
|
+
|
124
|
+
sed_filter+='s/accept4,-118/accept4,364/;'
|
125
|
+
sed_filter+='s/bind,-102/bind,361/;'
|
126
|
+
sed_filter+='s/connect,-103/connect,362/;'
|
127
|
+
sed_filter+='s/getpeername,-107/getpeername,368/;'
|
128
|
+
sed_filter+='s/getsockname,-106/getsockname,367/;'
|
129
|
+
sed_filter+='s/getsockopt,-115/getsockopt,365/;'
|
130
|
+
sed_filter+='s/listen,-104/listen,363/;'
|
131
|
+
sed_filter+='s/msgctl,-214/msgctl,402/;'
|
132
|
+
sed_filter+='s/msgget,-213/msgget,399/;'
|
133
|
+
sed_filter+='s/msgrcv,-212/msgrcv,401/;'
|
134
|
+
sed_filter+='s/msgsnd,-211/msgsnd,400/;'
|
135
|
+
sed_filter+='s/recvfrom,-112/recvfrom,371/;'
|
136
|
+
sed_filter+='s/recvmsg,-117/recvmsg,372/;'
|
137
|
+
sed_filter+='s/semctl,-203/semctl,394/;'
|
138
|
+
sed_filter+='s/semget,-202/semget,393/;'
|
139
|
+
sed_filter+='s/sendmsg,-116/sendmsg,370/;'
|
140
|
+
sed_filter+='s/sendto,-111/sendto,369/;'
|
141
|
+
sed_filter+='s/setsockopt,-114/setsockopt,366/;'
|
142
|
+
sed_filter+='s/shmat,-221/shmat,397/;'
|
143
|
+
sed_filter+='s/shmctl,-224/shmctl,396/;'
|
144
|
+
sed_filter+='s/shmdt,-222/shmdt,398/;'
|
145
|
+
sed_filter+='s/shmget,-223/shmget,395/;'
|
146
|
+
sed_filter+='s/shutdown,-113/shutdown,373/;'
|
147
|
+
sed_filter+='s/socket,-101/socket,359/;'
|
148
|
+
sed_filter+='s/socketpair,-108/socketpair,360/;'
|
149
|
+
|
150
|
+
case $1 in
|
151
|
+
s390|s390x)
|
152
|
+
sed_filter+='s/recvmmsg,-119/recvmmsg,357/;'
|
153
|
+
sed_filter+='s/sendmmsg,-120/sendmmsg,358/;'
|
154
|
+
;;
|
155
|
+
*)
|
156
|
+
sed_filter+='s/recvmmsg,-119/recvmmsg,337/;'
|
157
|
+
sed_filter+='s/sendmmsg,-120/sendmmsg,345/;'
|
158
|
+
;;
|
159
|
+
esac
|
160
|
+
|
161
|
+
sed $sed_filter | sed '/,-[0-9]\+$/d'
|
88
162
|
}
|
89
163
|
|
90
164
|
#
|
@@ -97,7 +171,7 @@ function dump_lib_arch() {
|
|
97
171
|
#
|
98
172
|
function dump_sys_x86() {
|
99
173
|
cat $1/arch/x86/entry/syscalls/syscall_32.tbl | \
|
100
|
-
grep -v "^#" | awk '{ print $3"
|
174
|
+
grep -v "^#" | awk '{ print $3","$1 }' | \
|
101
175
|
sort
|
102
176
|
}
|
103
177
|
|
@@ -107,7 +181,7 @@ function dump_sys_x86() {
|
|
107
181
|
# Dump the library's syscall table to stdout.
|
108
182
|
#
|
109
183
|
function dump_lib_x86() {
|
110
|
-
dump_lib_arch x86
|
184
|
+
dump_lib_arch x86 | mangle_lib_syscall x86
|
111
185
|
}
|
112
186
|
|
113
187
|
#
|
@@ -120,8 +194,8 @@ function dump_lib_x86() {
|
|
120
194
|
#
|
121
195
|
function dump_sys_x86_64() {
|
122
196
|
cat $1/arch/x86/entry/syscalls/syscall_64.tbl | \
|
123
|
-
grep -v "^#" | awk '{ print $2,$3,$1 }' |
|
124
|
-
awk '{ print $2"
|
197
|
+
grep -v "^#" | sed '/^$/d' | awk '{ print $2,$3,$1 }' | \
|
198
|
+
sed '/^x32/d' | awk '{ print $2","$3 }' | sort
|
125
199
|
}
|
126
200
|
|
127
201
|
#
|
@@ -130,7 +204,7 @@ function dump_sys_x86_64() {
|
|
130
204
|
# Dump the library's syscall table to stdout.
|
131
205
|
#
|
132
206
|
function dump_lib_x86_64() {
|
133
|
-
dump_lib_arch x86_64
|
207
|
+
dump_lib_arch x86_64 | mangle_lib_syscall x86_64
|
134
208
|
}
|
135
209
|
|
136
210
|
#
|
@@ -143,8 +217,8 @@ function dump_lib_x86_64() {
|
|
143
217
|
#
|
144
218
|
function dump_sys_x32() {
|
145
219
|
cat $1/arch/x86/entry/syscalls/syscall_64.tbl | \
|
146
|
-
grep -v "^#" | awk '{ print $2,$3,$1 }' |
|
147
|
-
awk '{ print $2"
|
220
|
+
grep -v "^#" | sed '/^$/d' | awk '{ print $2,$3,$1 }' | \
|
221
|
+
sed '/^64/d' | awk '{ print $2","$3 }' | sort
|
148
222
|
}
|
149
223
|
|
150
224
|
#
|
@@ -153,8 +227,7 @@ function dump_sys_x32() {
|
|
153
227
|
# Dump the library's syscall table to stdout.
|
154
228
|
#
|
155
229
|
function dump_lib_x32() {
|
156
|
-
|
157
|
-
dump_lib_arch x32 1073741824
|
230
|
+
dump_lib_arch x32 | mangle_lib_syscall x32
|
158
231
|
}
|
159
232
|
|
160
233
|
#
|
@@ -167,12 +240,13 @@ function dump_lib_x32() {
|
|
167
240
|
#
|
168
241
|
function dump_sys_arm() {
|
169
242
|
cat $1/arch/arm/tools/syscall.tbl | grep -v "^#" | \
|
170
|
-
sed -
|
171
|
-
awk '{ print $3"
|
243
|
+
sed -n "/[0-9]\+[ \t]\+\(common\|eabi\)/p" | \
|
244
|
+
awk '{ print $3","$1 }' | sort | (cat -; \
|
172
245
|
(cat $1/arch/arm/include/uapi/asm/unistd.h | \
|
173
|
-
grep "^#define __ARM_NR_" |
|
174
|
-
|
175
|
-
|
246
|
+
grep "^#define __ARM_NR_" | \
|
247
|
+
grep -v "^#define __ARM_NR_BASE" | \
|
248
|
+
sed 's/#define __ARM_NR_\([a-z0-9_]*\)[ \t]\+(__ARM_NR_BASE+\(.*\))/\1 983040 + \2/' | \
|
249
|
+
awk '{ print $1","$2+$4 }')) | sort
|
176
250
|
}
|
177
251
|
|
178
252
|
#
|
@@ -182,7 +256,8 @@ function dump_sys_arm() {
|
|
182
256
|
#
|
183
257
|
function dump_lib_arm() {
|
184
258
|
# NOTE: arm_sync_file_range() and sync_file_range2() share values
|
185
|
-
dump_lib_arch arm | sed
|
259
|
+
dump_lib_arch arm | sed '/sync_file_range2,\+341/d' | \
|
260
|
+
mangle_lib_syscall arm
|
186
261
|
}
|
187
262
|
|
188
263
|
#
|
@@ -194,28 +269,31 @@ function dump_lib_arm() {
|
|
194
269
|
# Dump the architecture's syscall table to stdout.
|
195
270
|
#
|
196
271
|
function dump_sys_aarch64() {
|
272
|
+
local sed_filter=""
|
273
|
+
|
274
|
+
sed_filter+='s/__NR3264_statfs/43/;'
|
275
|
+
sed_filter+='s/__NR3264_ftruncate/46/;'
|
276
|
+
sed_filter+='s/__NR3264_truncate/45/;'
|
277
|
+
sed_filter+='s/__NR3264_lseek/62/;'
|
278
|
+
sed_filter+='s/__NR3264_sendfile/71/;'
|
279
|
+
sed_filter+='s/__NR3264_fstatat/79/;'
|
280
|
+
sed_filter+='s/__NR3264_fstatfs/44/;'
|
281
|
+
sed_filter+='s/__NR3264_fcntl/25/;'
|
282
|
+
sed_filter+='s/__NR3264_fadvise64/223/;'
|
283
|
+
sed_filter+='s/__NR3264_mmap/222/;'
|
284
|
+
sed_filter+='s/__NR3264_fstat/80/;'
|
285
|
+
sed_filter+='s/__NR3264_lstat/1039/;'
|
286
|
+
sed_filter+='s/__NR3264_stat/1038/;'
|
287
|
+
|
197
288
|
gcc -E -dM -I$1/include/uapi \
|
198
289
|
-D__BITS_PER_LONG=64 -D__ARCH_WANT_RENAMEAT \
|
199
290
|
-D__ARCH_WANT_NEW_STAT \
|
200
|
-
$1/include/uapi/asm
|
291
|
+
$1/arch/arm64/include/uapi/asm/unistd.h | \
|
201
292
|
grep "^#define __NR_" | \
|
202
|
-
sed
|
203
|
-
sed
|
204
|
-
sed
|
205
|
-
sed
|
206
|
-
sed -e 's/__NR3264_ftruncate/46/' | \
|
207
|
-
sed -e 's/__NR3264_truncate/45/' | \
|
208
|
-
sed -e 's/__NR3264_lseek/62/' | \
|
209
|
-
sed -e 's/__NR3264_sendfile/71/' | \
|
210
|
-
sed -e 's/__NR3264_fstatat/79/' | \
|
211
|
-
sed -e 's/__NR3264_fstatfs/44/' | \
|
212
|
-
sed -e 's/__NR3264_fcntl/25/' | \
|
213
|
-
sed -e 's/__NR3264_fadvise64/223/' | \
|
214
|
-
sed -e 's/__NR3264_mmap/222/' | \
|
215
|
-
sed -e 's/__NR3264_fstat/80/' | \
|
216
|
-
sed -e 's/__NR3264_lstat/1039/' | \
|
217
|
-
sed -e 's/__NR3264_stat/1038/' | \
|
218
|
-
sort
|
293
|
+
sed '/__NR_syscalls/d' | \
|
294
|
+
sed '/__NR_arch_specific_syscall/d' | \
|
295
|
+
sed 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+\(.*\)/\1,\2/' | \
|
296
|
+
sed $sed_filter | sort
|
219
297
|
}
|
220
298
|
|
221
299
|
#
|
@@ -224,7 +302,7 @@ function dump_sys_aarch64() {
|
|
224
302
|
# Dump the library's syscall table to stdout.
|
225
303
|
#
|
226
304
|
function dump_lib_aarch64() {
|
227
|
-
dump_lib_arch aarch64
|
305
|
+
dump_lib_arch aarch64 | mangle_lib_syscall aarch64
|
228
306
|
}
|
229
307
|
|
230
308
|
#
|
@@ -236,23 +314,11 @@ function dump_lib_aarch64() {
|
|
236
314
|
# Dump the architecture's syscall table to stdout.
|
237
315
|
#
|
238
316
|
function dump_sys_mips() {
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
# _MIPS_SIM_NABI32 == 2
|
245
|
-
# _MIPS_SIM_ABI64 == 3
|
246
|
-
gcc -E -dM -I$1/arch/mips/include/uapi -I$1/arch/mips/include/generated/uapi -D_MIPS_SIM=1 $1/arch/mips/include/uapi/asm/unistd.h | \
|
247
|
-
grep "^#define __NR_" | \
|
248
|
-
grep -v "^#define __NR_O32_" | \
|
249
|
-
grep -v "^#define __NR_N32_" | \
|
250
|
-
grep -v "^#define __NR_64_" | \
|
251
|
-
grep -v "^#define __NR_Linux" | \
|
252
|
-
grep -v "^#define __NR_unused" | \
|
253
|
-
grep -v "^#define __NR_reserved" | \
|
254
|
-
sed -e 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+(__NR_Linux[ \t]*+[ \t]*\([0-9]\+\)).*/\1\t\2/' | \
|
255
|
-
sort
|
317
|
+
cat $1/arch/mips/kernel/syscalls/syscall_o32.tbl | \
|
318
|
+
grep -v "^#" | \
|
319
|
+
sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \
|
320
|
+
sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \
|
321
|
+
awk '{ print $3","$1 }' | sort
|
256
322
|
}
|
257
323
|
|
258
324
|
#
|
@@ -261,7 +327,7 @@ function dump_sys_mips() {
|
|
261
327
|
# Dump the library's syscall table to stdout.
|
262
328
|
#
|
263
329
|
function dump_lib_mips() {
|
264
|
-
dump_lib_arch mips
|
330
|
+
dump_lib_arch mips | mangle_lib_syscall mips
|
265
331
|
}
|
266
332
|
|
267
333
|
#
|
@@ -273,23 +339,11 @@ function dump_lib_mips() {
|
|
273
339
|
# Dump the architecture's syscall table to stdout.
|
274
340
|
#
|
275
341
|
function dump_sys_mips64() {
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
# _MIPS_SIM_NABI32 == 2
|
282
|
-
# _MIPS_SIM_ABI64 == 3
|
283
|
-
gcc -E -dM -I$1/arch/mips/include/uapi -I$1/arch/mips/include/generated/uapi -D_MIPS_SIM=3 $1/arch/mips/include/uapi/asm/unistd.h | \
|
284
|
-
grep "^#define __NR_" | \
|
285
|
-
grep -v "^#define __NR_O32_" | \
|
286
|
-
grep -v "^#define __NR_N32_" | \
|
287
|
-
grep -v "^#define __NR_64_" | \
|
288
|
-
grep -v "^#define __NR_Linux" | \
|
289
|
-
grep -v "^#define __NR_unused" | \
|
290
|
-
grep -v "^#define __NR_reserved" | \
|
291
|
-
sed -e 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+(__NR_Linux[ \t]*+[ \t]*\([0-9]\+\)).*/\1\t\2/' | \
|
292
|
-
sort
|
342
|
+
cat $1/arch/mips/kernel/syscalls/syscall_n64.tbl | \
|
343
|
+
grep -v "^#" | \
|
344
|
+
sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \
|
345
|
+
sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \
|
346
|
+
awk '{ print $3","$1 }' | sort
|
293
347
|
}
|
294
348
|
|
295
349
|
#
|
@@ -298,7 +352,7 @@ function dump_sys_mips64() {
|
|
298
352
|
# Dump the library's syscall table to stdout.
|
299
353
|
#
|
300
354
|
function dump_lib_mips64() {
|
301
|
-
dump_lib_arch mips64
|
355
|
+
dump_lib_arch mips64 | mangle_lib_syscall mips64
|
302
356
|
}
|
303
357
|
|
304
358
|
#
|
@@ -310,23 +364,11 @@ function dump_lib_mips64() {
|
|
310
364
|
# Dump the architecture's syscall table to stdout.
|
311
365
|
#
|
312
366
|
function dump_sys_mips64n32() {
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
# _MIPS_SIM_NABI32 == 2
|
319
|
-
# _MIPS_SIM_ABI64 == 3
|
320
|
-
gcc -E -dM -I$1/arch/mips/include/uapi -I$1/arch/mips/include/generated/uapi -D_MIPS_SIM=2 $1/arch/mips/include/uapi/asm/unistd.h | \
|
321
|
-
grep "^#define __NR_" | \
|
322
|
-
grep -v "^#define __NR_O32_" | \
|
323
|
-
grep -v "^#define __NR_N32_" | \
|
324
|
-
grep -v "^#define __NR_64_" | \
|
325
|
-
grep -v "^#define __NR_Linux" | \
|
326
|
-
grep -v "^#define __NR_unused" | \
|
327
|
-
grep -v "^#define __NR_reserved" | \
|
328
|
-
sed -e 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+(__NR_Linux[ \t]*+[ \t]*\([0-9]\+\)).*/\1\t\2/' | \
|
329
|
-
sort
|
367
|
+
cat $1/arch/mips/kernel/syscalls/syscall_n32.tbl | \
|
368
|
+
grep -v "^#" | \
|
369
|
+
sed -e '/[ \t]\+reserved[0-9]\+[ \t]\+/d;' | \
|
370
|
+
sed -e '/[ \t]\+unused[0-9]\+[ \t]\+/d;' | \
|
371
|
+
awk '{ print $3","$1 }' | sort
|
330
372
|
}
|
331
373
|
|
332
374
|
#
|
@@ -335,7 +377,57 @@ function dump_sys_mips64n32() {
|
|
335
377
|
# Dump the library's syscall table to stdout.
|
336
378
|
#
|
337
379
|
function dump_lib_mips64n32() {
|
338
|
-
dump_lib_arch mips64n32
|
380
|
+
dump_lib_arch mips64n32 | mangle_lib_syscall mips64n32
|
381
|
+
}
|
382
|
+
|
383
|
+
#
|
384
|
+
# Dump the parisc system syscall table
|
385
|
+
#
|
386
|
+
# Arguments:
|
387
|
+
# 1 path to the kernel source
|
388
|
+
#
|
389
|
+
# Dump the architecture's syscall table to stdout.
|
390
|
+
#
|
391
|
+
function dump_sys_parisc() {
|
392
|
+
cat $1/arch/parisc/kernel/syscalls/syscall.tbl | \
|
393
|
+
grep -v "^#" | \
|
394
|
+
sed -n "/[0-9]\+[ \t]\+\(common\|32\)/p" | \
|
395
|
+
awk '{ print $3","$1 }' | \
|
396
|
+
sort
|
397
|
+
}
|
398
|
+
|
399
|
+
#
|
400
|
+
# Dump the parisc library syscall table
|
401
|
+
#
|
402
|
+
# Dump the library's syscall table to stdout.
|
403
|
+
#
|
404
|
+
function dump_lib_parisc() {
|
405
|
+
dump_lib_arch parisc | mangle_lib_syscall parisc
|
406
|
+
}
|
407
|
+
|
408
|
+
#
|
409
|
+
# Dump the parisc64 system syscall table
|
410
|
+
#
|
411
|
+
# Arguments:
|
412
|
+
# 1 path to the kernel source
|
413
|
+
#
|
414
|
+
# Dump the architecture's syscall table to stdout.
|
415
|
+
#
|
416
|
+
function dump_sys_parisc64() {
|
417
|
+
cat $1/arch/parisc/kernel/syscalls/syscall.tbl | \
|
418
|
+
grep -v "^#" | \
|
419
|
+
sed -n "/[0-9]\+[ \t]\+\(common\|64\)/p" | \
|
420
|
+
awk '{ print $3","$1 }' | \
|
421
|
+
sort
|
422
|
+
}
|
423
|
+
|
424
|
+
#
|
425
|
+
# Dump the parisc64 library syscall table
|
426
|
+
#
|
427
|
+
# Dump the library's syscall table to stdout.
|
428
|
+
#
|
429
|
+
function dump_lib_parisc64() {
|
430
|
+
dump_lib_arch parisc64 | mangle_lib_syscall parisc64
|
339
431
|
}
|
340
432
|
|
341
433
|
#
|
@@ -349,11 +441,7 @@ function dump_lib_mips64n32() {
|
|
349
441
|
function dump_sys_ppc() {
|
350
442
|
cat $1/arch/powerpc/kernel/syscalls/syscall.tbl | grep -v "^#" | \
|
351
443
|
sed -ne "/[0-9]\+[ \t]\+\(common\|nospu\|32\)/p" | \
|
352
|
-
awk '{ print $3"
|
353
|
-
(cat $1/arch/powerpc/include/uapi/asm/unistd.h | \
|
354
|
-
grep "^#define __PPC_NR_" | grep -v "^#define __PPC_NR_BASE" | \
|
355
|
-
sed -e 's/#define _PPC_NR_\([a-z0-9_]*\)[ \t]\+(__PPC_NR_BASE+\(.*\))/\1 983040 + \2/' | \
|
356
|
-
awk '{ print $1"\t"$2+$4 }')) | sort
|
444
|
+
awk '{ print $3","$1 }' | sort
|
357
445
|
}
|
358
446
|
|
359
447
|
#
|
@@ -362,7 +450,7 @@ function dump_sys_ppc() {
|
|
362
450
|
# Dump the library's syscall table to stdout.
|
363
451
|
#
|
364
452
|
function dump_lib_ppc() {
|
365
|
-
dump_lib_arch ppc
|
453
|
+
dump_lib_arch ppc | mangle_lib_syscall ppc
|
366
454
|
}
|
367
455
|
|
368
456
|
#
|
@@ -376,11 +464,7 @@ function dump_lib_ppc() {
|
|
376
464
|
function dump_sys_ppc64() {
|
377
465
|
cat $1/arch/powerpc/kernel/syscalls/syscall.tbl | grep -v "^#" | \
|
378
466
|
sed -ne "/[0-9]\+[ \t]\+\(common\|nospu\|64\)/p" | \
|
379
|
-
awk '{ print $3"
|
380
|
-
(cat $1/arch/powerpc/include/uapi/asm/unistd.h | \
|
381
|
-
grep "^#define __PPC_NR_" | grep -v "^#define __PPC_NR_BASE" | \
|
382
|
-
sed -e 's/#define _PPC_NR_\([a-z0-9_]*\)[ \t]\+(__PPC_NR_BASE+\(.*\))/\1 983040 + \2/' | \
|
383
|
-
awk '{ print $1"\t"$2+$4 }')) | sort
|
467
|
+
awk '{ print $3","$1 }' | sort
|
384
468
|
}
|
385
469
|
|
386
470
|
#
|
@@ -389,7 +473,50 @@ function dump_sys_ppc64() {
|
|
389
473
|
# Dump the library's syscall table to stdout.
|
390
474
|
#
|
391
475
|
function dump_lib_ppc64() {
|
392
|
-
dump_lib_arch ppc64
|
476
|
+
dump_lib_arch ppc64 | mangle_lib_syscall ppc64
|
477
|
+
}
|
478
|
+
|
479
|
+
#
|
480
|
+
# Dump the riscv64 system syscall table
|
481
|
+
#
|
482
|
+
# Arguments:
|
483
|
+
# 1 path to the kernel source
|
484
|
+
#
|
485
|
+
# Dump the architecture's syscall table to stdout.
|
486
|
+
#
|
487
|
+
function dump_sys_riscv64() {
|
488
|
+
local sed_filter=""
|
489
|
+
|
490
|
+
sed_filter+='s/__NR3264_fadvise64/223/;'
|
491
|
+
sed_filter+='s/__NR3264_fcntl/25/;'
|
492
|
+
sed_filter+='s/__NR3264_fstatat/79/;'
|
493
|
+
sed_filter+='s/__NR3264_fstatfs/44/;'
|
494
|
+
sed_filter+='s/__NR3264_ftruncate/46/;'
|
495
|
+
sed_filter+='s/__NR3264_lseek/62/;'
|
496
|
+
sed_filter+='s/__NR3264_mmap/222/;'
|
497
|
+
sed_filter+='s/__NR3264_sendfile/71/;'
|
498
|
+
sed_filter+='s/__NR3264_statfs/43/;'
|
499
|
+
sed_filter+='s/__NR3264_truncate/45/;'
|
500
|
+
sed_filter+='s/__NR3264_fstat/80/;'
|
501
|
+
|
502
|
+
gcc -E -dM -I$1/include/uapi \
|
503
|
+
-D__BITS_PER_LONG=64 -D__ARCH_WANT_NEW_STAT \
|
504
|
+
$1/arch/riscv/include/uapi/asm/unistd.h | \
|
505
|
+
grep "^#define __NR_" | \
|
506
|
+
sed '/__NR_syscalls/d' | \
|
507
|
+
sed 's/(__NR_arch_specific_syscall + 15)/259/' | \
|
508
|
+
sed '/__NR_arch_specific_syscall/d' | \
|
509
|
+
sed 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+\(.*\)/\1,\2/' | \
|
510
|
+
sed $sed_filter | sort
|
511
|
+
}
|
512
|
+
|
513
|
+
#
|
514
|
+
# Dump the riscv64 library syscall table
|
515
|
+
#
|
516
|
+
# Dump the library's syscall table to stdout.
|
517
|
+
#
|
518
|
+
function dump_lib_riscv64() {
|
519
|
+
dump_lib_arch riscv64 | mangle_lib_syscall riscv64
|
393
520
|
}
|
394
521
|
|
395
522
|
#
|
@@ -403,11 +530,8 @@ function dump_lib_ppc64() {
|
|
403
530
|
function dump_sys_s390() {
|
404
531
|
cat $1/arch/s390/kernel/syscalls/syscall.tbl | grep -v "^#" | \
|
405
532
|
sed -ne "/[0-9]\+[ \t]\+\(common\|32\)/p" | \
|
406
|
-
awk '{ print $3"
|
407
|
-
|
408
|
-
grep "^#define __PPC_NR_" | grep -v "^#define __PPC_NR_BASE" | \
|
409
|
-
sed -e 's/#define _PPC_NR_\([a-z0-9_]*\)[ \t]\+(__PPC_NR_BASE+\(.*\))/\1 983040 + \2/' | \
|
410
|
-
awk '{ print $1"\t"$2+$4 }')) | sort
|
533
|
+
awk '{ print $3","$1 }' | \
|
534
|
+
sort
|
411
535
|
}
|
412
536
|
|
413
537
|
#
|
@@ -416,7 +540,7 @@ function dump_sys_s390() {
|
|
416
540
|
# Dump the library's syscall table to stdout.
|
417
541
|
#
|
418
542
|
function dump_lib_s390() {
|
419
|
-
dump_lib_arch s390
|
543
|
+
dump_lib_arch s390 | mangle_lib_syscall s390
|
420
544
|
}
|
421
545
|
|
422
546
|
#
|
@@ -430,11 +554,8 @@ function dump_lib_s390() {
|
|
430
554
|
function dump_sys_s390x() {
|
431
555
|
cat $1/arch/s390/kernel/syscalls/syscall.tbl | grep -v "^#" | \
|
432
556
|
sed -ne "/[0-9]\+[ \t]\+\(common\|64\)/p" | \
|
433
|
-
awk '{ print $3"
|
434
|
-
|
435
|
-
grep "^#define __PPC_NR_" | grep -v "^#define __PPC_NR_BASE" | \
|
436
|
-
sed -e 's/#define _PPC_NR_\([a-z0-9_]*\)[ \t]\+(__PPC_NR_BASE+\(.*\))/\1 983040 + \2/' | \
|
437
|
-
awk '{ print $1"\t"$2+$4 }')) | sort
|
557
|
+
awk '{ print $3","$1 }' | \
|
558
|
+
sort
|
438
559
|
}
|
439
560
|
|
440
561
|
#
|
@@ -443,7 +564,7 @@ function dump_sys_s390x() {
|
|
443
564
|
# Dump the library's syscall table to stdout.
|
444
565
|
#
|
445
566
|
function dump_lib_s390x() {
|
446
|
-
dump_lib_arch s390x
|
567
|
+
dump_lib_arch s390x | mangle_lib_syscall s390x
|
447
568
|
}
|
448
569
|
|
449
570
|
#
|
@@ -481,12 +602,21 @@ function dump_sys() {
|
|
481
602
|
mips64n32)
|
482
603
|
dump_sys_mips64n32 "$2"
|
483
604
|
;;
|
605
|
+
parisc)
|
606
|
+
dump_sys_parisc "$2"
|
607
|
+
;;
|
608
|
+
parisc64)
|
609
|
+
dump_sys_parisc64 "$2"
|
610
|
+
;;
|
484
611
|
ppc)
|
485
612
|
dump_sys_ppc "$2"
|
486
613
|
;;
|
487
614
|
ppc64)
|
488
615
|
dump_sys_ppc64 "$2"
|
489
616
|
;;
|
617
|
+
riscv64)
|
618
|
+
dump_sys_riscv64 "$2"
|
619
|
+
;;
|
490
620
|
s390)
|
491
621
|
dump_sys_s390 "$2"
|
492
622
|
;;
|
@@ -536,17 +666,26 @@ function dump_lib() {
|
|
536
666
|
mips64n32)
|
537
667
|
dump_lib_mips64n32
|
538
668
|
;;
|
669
|
+
parisc)
|
670
|
+
dump_lib_parisc
|
671
|
+
;;
|
672
|
+
parisc64)
|
673
|
+
dump_lib_parisc64
|
674
|
+
;;
|
539
675
|
ppc)
|
540
|
-
dump_lib_ppc
|
676
|
+
dump_lib_ppc
|
541
677
|
;;
|
542
678
|
ppc64)
|
543
|
-
dump_lib_ppc64
|
679
|
+
dump_lib_ppc64
|
680
|
+
;;
|
681
|
+
riscv64)
|
682
|
+
dump_lib_riscv64
|
544
683
|
;;
|
545
684
|
s390)
|
546
|
-
dump_lib_s390
|
685
|
+
dump_lib_s390
|
547
686
|
;;
|
548
687
|
s390x)
|
549
|
-
dump_lib_s390x
|
688
|
+
dump_lib_s390x
|
550
689
|
;;
|
551
690
|
*)
|
552
691
|
echo ""
|
@@ -557,6 +696,69 @@ function dump_lib() {
|
|
557
696
|
return 0
|
558
697
|
}
|
559
698
|
|
699
|
+
#
|
700
|
+
# Generate the syscall csv file
|
701
|
+
#
|
702
|
+
# Arguments:
|
703
|
+
# 1 path to the kernel source
|
704
|
+
# 2 "sys" or "lib" depending on the syscall list to use
|
705
|
+
#
|
706
|
+
# Generare a syscall csv file from the given kernel sources.
|
707
|
+
#
|
708
|
+
function gen_csv() {
|
709
|
+
|
710
|
+
# sanity checks
|
711
|
+
[[ -z $1 ]] && return
|
712
|
+
[[ $2 != "sys" && $2 != "lib" ]] && return
|
713
|
+
|
714
|
+
# abi list
|
715
|
+
# NOTE: the ordering here is dependent on the layout of the
|
716
|
+
# arch_syscall_table struct in syscalls.h - BEWARE!
|
717
|
+
abi_list=""
|
718
|
+
abi_list+=" x86 x86_64 x32"
|
719
|
+
abi_list+=" arm aarch64"
|
720
|
+
abi_list+=" mips mips64 mips64n32"
|
721
|
+
abi_list+=" parisc parisc64"
|
722
|
+
abi_list+=" ppc ppc64"
|
723
|
+
abi_list+=" riscv64"
|
724
|
+
abi_list+=" s390 s390x"
|
725
|
+
|
726
|
+
# get the full syscall list
|
727
|
+
for abi in $abi_list; do
|
728
|
+
eval output_$abi=$(mktemp -t syscall_validate_XXXXXX)
|
729
|
+
dump_$2_$abi "$1" > $(eval echo $`eval echo output_$abi`)
|
730
|
+
done
|
731
|
+
sc_list=$((for abi in $abi_list; do
|
732
|
+
cat $(eval echo $`eval echo output_$abi`);
|
733
|
+
done) | awk -F "," '{ print $1 }' | sort -u)
|
734
|
+
|
735
|
+
# output a simple header
|
736
|
+
printf "#syscall (v%s %s)" \
|
737
|
+
"$(kernel_version "$1")" "$(TZ=UTC date "+%Y-%m-%d")"
|
738
|
+
for abi in $abi_list; do
|
739
|
+
printf ",%s" $abi
|
740
|
+
done
|
741
|
+
printf "\n"
|
742
|
+
|
743
|
+
# output the syscall csv details
|
744
|
+
for sc in $sc_list; do
|
745
|
+
printf "%s" $sc
|
746
|
+
for abi in $abi_list; do
|
747
|
+
num=$(grep "^$sc," \
|
748
|
+
$(eval echo $`eval echo output_$abi`) | \
|
749
|
+
awk -F "," '{ print $2 }' )
|
750
|
+
[[ -z $num ]] && num="PNR"
|
751
|
+
printf ",%s" $num
|
752
|
+
done
|
753
|
+
printf "\n"
|
754
|
+
done
|
755
|
+
|
756
|
+
# cleanup
|
757
|
+
for abi in $abi_list; do
|
758
|
+
rm -f $(eval echo $`eval echo output_$abi`)
|
759
|
+
done
|
760
|
+
}
|
761
|
+
|
560
762
|
####
|
561
763
|
# main
|
562
764
|
|
@@ -571,14 +773,18 @@ if [[ ! -x $LIB_SYS_DUMP ]]; then
|
|
571
773
|
fi
|
572
774
|
|
573
775
|
opt_arches=""
|
574
|
-
|
575
|
-
|
776
|
+
opt_csv=0
|
777
|
+
opt_sys=0
|
778
|
+
opt_lib=0
|
576
779
|
|
577
|
-
while getopts "a:
|
780
|
+
while getopts "a:cslh" opt; do
|
578
781
|
case $opt in
|
579
782
|
a)
|
580
783
|
opt_arches+="$OPTARG "
|
581
784
|
;;
|
785
|
+
c)
|
786
|
+
opt_csv=1
|
787
|
+
;;
|
582
788
|
s)
|
583
789
|
opt_sys=1
|
584
790
|
opt_lib=0
|
@@ -601,6 +807,7 @@ if [[ $opt_arches == "" ]]; then
|
|
601
807
|
x86 x86_64 x32 \
|
602
808
|
arm aarch64 \
|
603
809
|
mips mips64 mips64n32 \
|
810
|
+
parisc parisc64 \
|
604
811
|
ppc ppc64 \
|
605
812
|
s390 s390x"
|
606
813
|
fi
|
@@ -620,30 +827,39 @@ fi
|
|
620
827
|
tmp_lib=$(mktemp -t syscall_validate_XXXXXX)
|
621
828
|
tmp_sys=$(mktemp -t syscall_validate_XXXXXX)
|
622
829
|
|
623
|
-
|
624
|
-
|
625
|
-
# dump the syscall tables
|
626
|
-
dump_lib $i > $tmp_lib
|
627
|
-
if [[ $? -ne 0 ]]; then
|
628
|
-
echo "error: unknown arch $i"
|
629
|
-
exit 1
|
630
|
-
fi
|
631
|
-
dump_sys $i "$kernel_dir" > $tmp_sys
|
632
|
-
if [[ $? -ne 0 ]]; then
|
633
|
-
echo "error: unknown arch $i"
|
634
|
-
exit 1
|
635
|
-
fi
|
636
|
-
|
830
|
+
if [[ $opt_csv -eq 1 ]]; then
|
831
|
+
# generate the syscall csv file
|
637
832
|
if [[ $opt_lib -eq 1 ]]; then
|
638
|
-
|
639
|
-
elif [[ $opt_sys -eq 1 ]]; then
|
640
|
-
cat $tmp_sys
|
833
|
+
gen_csv $kernel_dir "lib"
|
641
834
|
else
|
642
|
-
|
643
|
-
diff -u --label="$i [library]" $tmp_lib \
|
644
|
-
--label "$i [system]" $tmp_sys
|
835
|
+
gen_csv $kernel_dir "sys"
|
645
836
|
fi
|
646
|
-
|
837
|
+
else
|
838
|
+
# loop through the architectures and compare
|
839
|
+
for i in $opt_arches; do
|
840
|
+
# dump the syscall tables
|
841
|
+
dump_lib $i > $tmp_lib
|
842
|
+
if [[ $? -ne 0 ]]; then
|
843
|
+
echo "error: unknown arch $i"
|
844
|
+
exit 1
|
845
|
+
fi
|
846
|
+
dump_sys $i "$kernel_dir" > $tmp_sys
|
847
|
+
if [[ $? -ne 0 ]]; then
|
848
|
+
echo "error: unknown arch $i"
|
849
|
+
exit 1
|
850
|
+
fi
|
851
|
+
|
852
|
+
if [[ $opt_lib -eq 1 ]]; then
|
853
|
+
cat $tmp_lib
|
854
|
+
elif [[ $opt_sys -eq 1 ]]; then
|
855
|
+
cat $tmp_sys
|
856
|
+
else
|
857
|
+
# compare the lib and sys output
|
858
|
+
diff -u --label="$i [library]" $tmp_lib \
|
859
|
+
--label "$i [system]" $tmp_sys
|
860
|
+
fi
|
861
|
+
done
|
862
|
+
fi
|
647
863
|
|
648
864
|
# cleanup and exit
|
649
865
|
rm -f $tmp_lib $tmp_sys
|