From a616ac6c56ac8cebf8b95e93030d08e448866405 Mon Sep 17 00:00:00 2001 From: KemoNine Date: Fri, 28 Aug 2020 15:19:36 -0400 Subject: [PATCH] Update vendoring for new ui --- go.mod | 2 + go.sum | 24 + .../github.com/gdamore/encoding/.appveyor.yml | 13 + .../github.com/gdamore/encoding/.travis.yml | 7 + vendor/github.com/gdamore/encoding/LICENSE | 202 + vendor/github.com/gdamore/encoding/README.md | 19 + vendor/github.com/gdamore/encoding/ascii.go | 36 + vendor/github.com/gdamore/encoding/charmap.go | 196 + vendor/github.com/gdamore/encoding/doc.go | 17 + vendor/github.com/gdamore/encoding/ebcdic.go | 273 ++ vendor/github.com/gdamore/encoding/go.mod | 5 + vendor/github.com/gdamore/encoding/go.sum | 2 + vendor/github.com/gdamore/encoding/latin1.go | 33 + vendor/github.com/gdamore/encoding/latin5.go | 35 + vendor/github.com/gdamore/encoding/utf8.go | 35 + vendor/github.com/gdamore/tcell/.appveyor.yml | 13 + vendor/github.com/gdamore/tcell/.gitignore | 1 + vendor/github.com/gdamore/tcell/.travis.yml | 15 + vendor/github.com/gdamore/tcell/AUTHORS | 4 + vendor/github.com/gdamore/tcell/LICENSE | 202 + vendor/github.com/gdamore/tcell/README.adoc | 279 ++ vendor/github.com/gdamore/tcell/attr.go | 33 + vendor/github.com/gdamore/tcell/cell.go | 177 + .../github.com/gdamore/tcell/charset_stub.go | 21 + .../github.com/gdamore/tcell/charset_unix.go | 49 + .../gdamore/tcell/charset_windows.go | 21 + vendor/github.com/gdamore/tcell/color.go | 1019 +++++ vendor/github.com/gdamore/tcell/colorfit.go | 52 + .../github.com/gdamore/tcell/console_stub.go | 23 + .../github.com/gdamore/tcell/console_win.go | 1170 ++++++ vendor/github.com/gdamore/tcell/doc.go | 48 + vendor/github.com/gdamore/tcell/encoding.go | 139 + vendor/github.com/gdamore/tcell/errors.go | 73 + vendor/github.com/gdamore/tcell/event.go | 53 + vendor/github.com/gdamore/tcell/go.mod | 11 + vendor/github.com/gdamore/tcell/go.sum | 10 + vendor/github.com/gdamore/tcell/interrupt.go | 41 + vendor/github.com/gdamore/tcell/key.go | 464 +++ vendor/github.com/gdamore/tcell/mouse.go | 97 + vendor/github.com/gdamore/tcell/resize.go | 42 + vendor/github.com/gdamore/tcell/runes.go | 111 + vendor/github.com/gdamore/tcell/screen.go | 213 ++ vendor/github.com/gdamore/tcell/simulation.go | 512 +++ vendor/github.com/gdamore/tcell/style.go | 132 + .../gdamore/tcell/terminfo/.gitignore | 1 + .../gdamore/tcell/terminfo/README.md | 25 + .../gdamore/tcell/terminfo/TERMINALS.md | 7 + .../gdamore/tcell/terminfo/a/adm3a/term.go | 25 + .../gdamore/tcell/terminfo/a/aixterm/term.go | 81 + .../tcell/terminfo/a/alacritty/term.go | 158 + .../gdamore/tcell/terminfo/a/ansi/term.go | 41 + .../gdamore/tcell/terminfo/a/aterm/term.go | 110 + .../gdamore/tcell/terminfo/b/beterm/term.go | 54 + .../gdamore/tcell/terminfo/b/bsdos_pc/term.go | 42 + .../gdamore/tcell/terminfo/base/base.go | 32 + .../gdamore/tcell/terminfo/c/cygwin/term.go | 63 + .../gdamore/tcell/terminfo/d/d200/term.go | 97 + .../gdamore/tcell/terminfo/d/d210/term.go | 95 + .../gdamore/tcell/terminfo/d/dtterm/term.go | 67 + .../gdamore/tcell/terminfo/dynamic/dynamic.go | 429 +++ .../gdamore/tcell/terminfo/e/emacs/term.go | 60 + .../gdamore/tcell/terminfo/e/eterm/term.go | 309 ++ .../tcell/terminfo/extended/extended.go | 69 + .../gdamore/tcell/terminfo/g/gnome/term.go | 312 ++ .../github.com/gdamore/tcell/terminfo/gen.sh | 18 + .../gdamore/tcell/terminfo/h/hpterm/term.go | 50 + .../gdamore/tcell/terminfo/h/hz1500/term.go | 26 + .../gdamore/tcell/terminfo/k/konsole/term.go | 310 ++ .../gdamore/tcell/terminfo/k/kterm/term.go | 67 + .../gdamore/tcell/terminfo/l/linux/term.go | 69 + .../gdamore/tcell/terminfo/models.txt | 43 + .../gdamore/tcell/terminfo/p/pcansi/term.go | 39 + .../gdamore/tcell/terminfo/r/rxvt/term.go | 468 +++ .../gdamore/tcell/terminfo/s/screen/term.go | 126 + .../tcell/terminfo/s/simpleterm/term.go | 314 ++ .../gdamore/tcell/terminfo/s/sun/term.go | 90 + .../gdamore/tcell/terminfo/t/termite/term.go | 157 + .../gdamore/tcell/terminfo/t/tvi910/term.go | 39 + .../gdamore/tcell/terminfo/t/tvi912/term.go | 38 + .../gdamore/tcell/terminfo/t/tvi921/term.go | 34 + .../gdamore/tcell/terminfo/t/tvi925/term.go | 43 + .../gdamore/tcell/terminfo/t/tvi950/term.go | 46 + .../gdamore/tcell/terminfo/t/tvi970/term.go | 40 + .../gdamore/tcell/terminfo/terminfo.go | 784 ++++ .../gdamore/tcell/terminfo/v/vt100/term.go | 48 + .../gdamore/tcell/terminfo/v/vt102/term.go | 47 + .../gdamore/tcell/terminfo/v/vt220/term.go | 58 + .../gdamore/tcell/terminfo/v/vt320/term.go | 63 + .../gdamore/tcell/terminfo/v/vt400/term.go | 46 + .../gdamore/tcell/terminfo/v/vt420/term.go | 53 + .../gdamore/tcell/terminfo/v/vt52/term.go | 29 + .../gdamore/tcell/terminfo/w/wy50/term.go | 59 + .../gdamore/tcell/terminfo/w/wy60/term.go | 63 + .../tcell/terminfo/w/wy99_ansi/term.go | 114 + .../gdamore/tcell/terminfo/x/xfce/term.go | 158 + .../gdamore/tcell/terminfo/x/xnuppc/term.go | 34 + .../gdamore/tcell/terminfo/x/xterm/term.go | 462 +++ .../tcell/terminfo/x/xterm_kitty/term.go | 157 + .../github.com/gdamore/tcell/terms_default.go | 23 + .../github.com/gdamore/tcell/terms_dynamic.go | 37 + .../github.com/gdamore/tcell/terms_static.go | 27 + vendor/github.com/gdamore/tcell/tscreen.go | 1439 +++++++ .../github.com/gdamore/tcell/tscreen_bsd.go | 121 + .../gdamore/tcell/tscreen_darwin.go | 142 + .../github.com/gdamore/tcell/tscreen_linux.go | 147 + .../gdamore/tcell/tscreen_solaris.go | 122 + .../github.com/gdamore/tcell/tscreen_stub.go | 36 + .../gdamore/tcell/tscreen_windows.go | 44 + .../lucasb-eyer/go-colorful/.gitignore | 28 + .../lucasb-eyer/go-colorful/.travis.yml | 7 + .../lucasb-eyer/go-colorful/LICENSE | 7 + .../lucasb-eyer/go-colorful/README.md | 492 +++ .../lucasb-eyer/go-colorful/colorgens.go | 55 + .../lucasb-eyer/go-colorful/colors.go | 903 +++++ .../github.com/lucasb-eyer/go-colorful/go.mod | 3 + .../github.com/lucasb-eyer/go-colorful/go.sum | 0 .../go-colorful/happy_palettegen.go | 25 + .../lucasb-eyer/go-colorful/hexcolor.go | 37 + .../go-colorful/soft_palettegen.go | 185 + .../go-colorful/warm_palettegen.go | 25 + .../github.com/mattn/go-runewidth/.travis.yml | 16 + vendor/github.com/mattn/go-runewidth/LICENSE | 21 + .../github.com/mattn/go-runewidth/README.md | 27 + vendor/github.com/mattn/go-runewidth/go.mod | 3 + .../github.com/mattn/go-runewidth/go.test.sh | 12 + .../mattn/go-runewidth/runewidth.go | 257 ++ .../mattn/go-runewidth/runewidth_appengine.go | 8 + .../mattn/go-runewidth/runewidth_js.go | 9 + .../mattn/go-runewidth/runewidth_posix.go | 82 + .../mattn/go-runewidth/runewidth_table.go | 437 +++ .../mattn/go-runewidth/runewidth_windows.go | 28 + .../github.com/rivo/tview/CODE_OF_CONDUCT.md | 73 + vendor/github.com/rivo/tview/CONTRIBUTING.md | 35 + vendor/github.com/rivo/tview/LICENSE.txt | 21 + vendor/github.com/rivo/tview/README.md | 97 + vendor/github.com/rivo/tview/ansi.go | 258 ++ vendor/github.com/rivo/tview/application.go | 729 ++++ vendor/github.com/rivo/tview/borders.go | 45 + vendor/github.com/rivo/tview/box.go | 412 ++ vendor/github.com/rivo/tview/button.go | 157 + vendor/github.com/rivo/tview/checkbox.go | 226 ++ vendor/github.com/rivo/tview/doc.go | 180 + vendor/github.com/rivo/tview/dropdown.go | 555 +++ vendor/github.com/rivo/tview/flex.go | 239 ++ vendor/github.com/rivo/tview/focusable.go | 8 + vendor/github.com/rivo/tview/form.go | 686 ++++ vendor/github.com/rivo/tview/frame.go | 198 + vendor/github.com/rivo/tview/go.mod | 12 + vendor/github.com/rivo/tview/go.sum | 25 + vendor/github.com/rivo/tview/grid.go | 698 ++++ vendor/github.com/rivo/tview/inputfield.go | 625 +++ vendor/github.com/rivo/tview/list.go | 628 +++ vendor/github.com/rivo/tview/modal.go | 202 + vendor/github.com/rivo/tview/pages.go | 316 ++ vendor/github.com/rivo/tview/primitive.go | 57 + vendor/github.com/rivo/tview/semigraphics.go | 296 ++ vendor/github.com/rivo/tview/styles.go | 35 + vendor/github.com/rivo/tview/table.go | 1266 ++++++ vendor/github.com/rivo/tview/textview.go | 1189 ++++++ vendor/github.com/rivo/tview/treeview.go | 775 ++++ vendor/github.com/rivo/tview/tview.gif | Bin 0 -> 2226085 bytes vendor/github.com/rivo/tview/util.go | 630 +++ vendor/github.com/rivo/uniseg/LICENSE.txt | 21 + vendor/github.com/rivo/uniseg/README.md | 62 + vendor/github.com/rivo/uniseg/doc.go | 8 + vendor/github.com/rivo/uniseg/go.mod | 3 + vendor/github.com/rivo/uniseg/grapheme.go | 258 ++ vendor/github.com/rivo/uniseg/properties.go | 1658 ++++++++ .../sys/internal/unsafeheader/unsafeheader.go | 30 + vendor/golang.org/x/sys/unix/README.md | 15 +- .../golang.org/x/sys/unix/asm_linux_riscv64.s | 7 - .../golang.org/x/sys/unix/bluetooth_linux.go | 1 + .../x/sys/unix/errors_freebsd_386.go | 6 + .../x/sys/unix/errors_freebsd_amd64.go | 6 + .../x/sys/unix/errors_freebsd_arm64.go | 17 + vendor/golang.org/x/sys/unix/fcntl.go | 12 +- vendor/golang.org/x/sys/unix/fdset.go | 29 + vendor/golang.org/x/sys/unix/mkall.sh | 15 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 32 +- .../x/sys/unix/sockcmsg_dragonfly.go | 16 + .../golang.org/x/sys/unix/sockcmsg_linux.go | 2 +- vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 36 +- .../x/sys/unix/sockcmsg_unix_other.go | 38 + vendor/golang.org/x/sys/unix/syscall_bsd.go | 38 +- .../x/sys/unix/syscall_darwin.1_13.go | 23 +- .../golang.org/x/sys/unix/syscall_darwin.go | 22 +- .../x/sys/unix/syscall_darwin_386.go | 12 - .../x/sys/unix/syscall_darwin_amd64.go | 12 - .../x/sys/unix/syscall_darwin_arm.1_11.go | 2 +- .../x/sys/unix/syscall_darwin_arm.go | 15 - .../x/sys/unix/syscall_darwin_arm64.go | 15 - .../x/sys/unix/syscall_dragonfly.go | 22 +- .../golang.org/x/sys/unix/syscall_freebsd.go | 23 +- .../x/sys/unix/syscall_freebsd_386.go | 10 + .../x/sys/unix/syscall_freebsd_amd64.go | 10 + .../x/sys/unix/syscall_freebsd_arm.go | 6 + .../x/sys/unix/syscall_freebsd_arm64.go | 6 + .../golang.org/x/sys/unix/syscall_illumos.go | 57 + vendor/golang.org/x/sys/unix/syscall_linux.go | 372 +- .../x/sys/unix/syscall_linux_386.go | 6 +- .../x/sys/unix/syscall_linux_amd64.go | 6 +- .../x/sys/unix/syscall_linux_arm.go | 6 +- .../x/sys/unix/syscall_linux_arm64.go | 32 +- .../x/sys/unix/syscall_linux_mips64x.go | 10 +- .../x/sys/unix/syscall_linux_mipsx.go | 6 +- .../x/sys/unix/syscall_linux_ppc64x.go | 6 +- .../x/sys/unix/syscall_linux_riscv64.go | 12 +- .../x/sys/unix/syscall_linux_s390x.go | 6 +- .../x/sys/unix/syscall_linux_sparc64.go | 6 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 32 +- .../golang.org/x/sys/unix/syscall_openbsd.go | 33 +- .../golang.org/x/sys/unix/syscall_solaris.go | 2 +- vendor/golang.org/x/sys/unix/syscall_unix.go | 19 +- .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 12 +- .../x/sys/unix/zerrors_aix_ppc64.go | 12 +- .../x/sys/unix/zerrors_freebsd_386.go | 166 +- .../x/sys/unix/zerrors_freebsd_amd64.go | 164 +- .../x/sys/unix/zerrors_freebsd_arm.go | 22 + .../x/sys/unix/zerrors_freebsd_arm64.go | 165 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 2476 ++++++++++++ .../x/sys/unix/zerrors_linux_386.go | 3271 +++------------- .../x/sys/unix/zerrors_linux_amd64.go | 3271 +++------------- .../x/sys/unix/zerrors_linux_arm.go | 3283 +++------------- .../x/sys/unix/zerrors_linux_arm64.go | 3258 +++------------- .../x/sys/unix/zerrors_linux_mips.go | 3275 +++------------- .../x/sys/unix/zerrors_linux_mips64.go | 3275 +++------------- .../x/sys/unix/zerrors_linux_mips64le.go | 3275 +++------------- .../x/sys/unix/zerrors_linux_mipsle.go | 3275 +++------------- .../x/sys/unix/zerrors_linux_ppc64.go | 3394 +++-------------- .../x/sys/unix/zerrors_linux_ppc64le.go | 3394 +++-------------- .../x/sys/unix/zerrors_linux_riscv64.go | 3245 +++------------- .../x/sys/unix/zerrors_linux_s390x.go | 3391 +++------------- .../x/sys/unix/zerrors_linux_sparc64.go | 3372 +++------------- .../x/sys/unix/zerrors_netbsd_386.go | 6 + .../x/sys/unix/zerrors_netbsd_amd64.go | 6 + .../x/sys/unix/zerrors_netbsd_arm.go | 6 + .../x/sys/unix/zerrors_netbsd_arm64.go | 6 + .../x/sys/unix/zerrors_openbsd_386.go | 7 + .../x/sys/unix/zerrors_openbsd_amd64.go | 7 + .../x/sys/unix/zerrors_openbsd_arm.go | 7 + .../x/sys/unix/zerrors_openbsd_arm64.go | 7 + ...acearm_linux.go => zptrace_armnn_linux.go} | 2 +- .../x/sys/unix/zptrace_linux_arm64.go | 17 + ...emips_linux.go => zptrace_mipsnn_linux.go} | 2 +- ...sle_linux.go => zptrace_mipsnnle_linux.go} | 2 +- ...trace386_linux.go => zptrace_x86_linux.go} | 2 +- .../x/sys/unix/zsyscall_darwin_386.1_11.go | 76 +- .../x/sys/unix/zsyscall_darwin_386.go | 106 +- .../x/sys/unix/zsyscall_darwin_386.s | 8 +- .../x/sys/unix/zsyscall_darwin_amd64.1_11.go | 76 +- .../x/sys/unix/zsyscall_darwin_amd64.go | 106 +- .../x/sys/unix/zsyscall_darwin_amd64.s | 8 +- .../x/sys/unix/zsyscall_darwin_arm.1_11.go | 60 +- .../x/sys/unix/zsyscall_darwin_arm.go | 85 +- .../x/sys/unix/zsyscall_darwin_arm.s | 6 +- .../x/sys/unix/zsyscall_darwin_arm64.1_11.go | 60 +- .../x/sys/unix/zsyscall_darwin_arm64.go | 85 +- .../x/sys/unix/zsyscall_darwin_arm64.s | 6 +- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 11 - .../x/sys/unix/zsyscall_freebsd_386.go | 65 +- .../x/sys/unix/zsyscall_freebsd_amd64.go | 43 +- .../x/sys/unix/zsyscall_freebsd_arm.go | 11 - .../x/sys/unix/zsyscall_freebsd_arm64.go | 45 +- .../x/sys/unix/zsyscall_illumos_amd64.go | 87 + .../golang.org/x/sys/unix/zsyscall_linux.go | 1917 ++++++++++ .../x/sys/unix/zsyscall_linux_386.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_amd64.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_arm.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_arm64.go | 1738 +-------- .../x/sys/unix/zsyscall_linux_mips.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_mips64.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_mips64le.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_mipsle.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_ppc64.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_ppc64le.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_riscv64.go | 1734 +-------- .../x/sys/unix/zsyscall_linux_s390x.go | 1736 +-------- .../x/sys/unix/zsyscall_linux_sparc64.go | 1736 +-------- .../x/sys/unix/zsyscall_netbsd_386.go | 78 +- .../x/sys/unix/zsyscall_netbsd_amd64.go | 78 +- .../x/sys/unix/zsyscall_netbsd_arm.go | 78 +- .../x/sys/unix/zsyscall_netbsd_arm64.go | 78 +- .../x/sys/unix/zsyscall_openbsd_386.go | 57 +- .../x/sys/unix/zsyscall_openbsd_amd64.go | 57 +- .../x/sys/unix/zsyscall_openbsd_arm.go | 57 +- .../x/sys/unix/zsyscall_openbsd_arm64.go | 57 +- .../x/sys/unix/zsysctl_openbsd_386.go | 3 +- .../x/sys/unix/zsysctl_openbsd_amd64.go | 1 + .../x/sys/unix/zsysctl_openbsd_arm.go | 1 + .../x/sys/unix/zsysnum_linux_386.go | 3 + .../x/sys/unix/zsysnum_linux_amd64.go | 3 + .../x/sys/unix/zsysnum_linux_arm.go | 3 + .../x/sys/unix/zsysnum_linux_arm64.go | 4 + .../x/sys/unix/zsysnum_linux_mips.go | 4 + .../x/sys/unix/zsysnum_linux_mips64.go | 4 + .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + .../x/sys/unix/zsysnum_linux_ppc64.go | 3 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 3 + .../x/sys/unix/zsysnum_linux_riscv64.go | 3 + .../x/sys/unix/zsysnum_linux_s390x.go | 3 + .../x/sys/unix/zsysnum_linux_sparc64.go | 3 + .../x/sys/unix/ztypes_dragonfly_amd64.go | 10 + .../x/sys/unix/ztypes_freebsd_386.go | 51 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 36 +- .../x/sys/unix/ztypes_freebsd_arm.go | 24 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 66 +- vendor/golang.org/x/sys/unix/ztypes_linux.go | 2507 ++++++++++++ .../golang.org/x/sys/unix/ztypes_linux_386.go | 2038 +--------- .../x/sys/unix/ztypes_linux_amd64.go | 2041 +--------- .../golang.org/x/sys/unix/ztypes_linux_arm.go | 2041 +--------- .../x/sys/unix/ztypes_linux_arm64.go | 2041 +--------- .../x/sys/unix/ztypes_linux_mips.go | 2041 +--------- .../x/sys/unix/ztypes_linux_mips64.go | 2042 +--------- .../x/sys/unix/ztypes_linux_mips64le.go | 2042 +--------- .../x/sys/unix/ztypes_linux_mipsle.go | 2041 +--------- .../x/sys/unix/ztypes_linux_ppc64.go | 2041 +--------- .../x/sys/unix/ztypes_linux_ppc64le.go | 2041 +--------- .../x/sys/unix/ztypes_linux_riscv64.go | 2041 +--------- .../x/sys/unix/ztypes_linux_s390x.go | 2041 +--------- .../x/sys/unix/ztypes_linux_sparc64.go | 2041 +--------- .../x/sys/unix/ztypes_netbsd_386.go | 32 + .../x/sys/unix/ztypes_netbsd_amd64.go | 33 + .../x/sys/unix/ztypes_netbsd_arm.go | 32 + .../x/sys/unix/ztypes_netbsd_arm64.go | 33 + .../x/sys/unix/ztypes_solaris_amd64.go | 7 + vendor/golang.org/x/text/AUTHORS | 3 + vendor/golang.org/x/text/CONTRIBUTORS | 3 + vendor/golang.org/x/text/LICENSE | 27 + vendor/golang.org/x/text/PATENTS | 22 + vendor/golang.org/x/text/encoding/encoding.go | 335 ++ .../internal/identifier/identifier.go | 81 + .../text/encoding/internal/identifier/mib.go | 1619 ++++++++ .../golang.org/x/text/transform/transform.go | 705 ++++ vendor/modules.txt | 70 +- 335 files changed, 48642 insertions(+), 86447 deletions(-) create mode 100644 vendor/github.com/gdamore/encoding/.appveyor.yml create mode 100644 vendor/github.com/gdamore/encoding/.travis.yml create mode 100644 vendor/github.com/gdamore/encoding/LICENSE create mode 100644 vendor/github.com/gdamore/encoding/README.md create mode 100644 vendor/github.com/gdamore/encoding/ascii.go create mode 100644 vendor/github.com/gdamore/encoding/charmap.go create mode 100644 vendor/github.com/gdamore/encoding/doc.go create mode 100644 vendor/github.com/gdamore/encoding/ebcdic.go create mode 100644 vendor/github.com/gdamore/encoding/go.mod create mode 100644 vendor/github.com/gdamore/encoding/go.sum create mode 100644 vendor/github.com/gdamore/encoding/latin1.go create mode 100644 vendor/github.com/gdamore/encoding/latin5.go create mode 100644 vendor/github.com/gdamore/encoding/utf8.go create mode 100644 vendor/github.com/gdamore/tcell/.appveyor.yml create mode 100644 vendor/github.com/gdamore/tcell/.gitignore create mode 100644 vendor/github.com/gdamore/tcell/.travis.yml create mode 100644 vendor/github.com/gdamore/tcell/AUTHORS create mode 100644 vendor/github.com/gdamore/tcell/LICENSE create mode 100644 vendor/github.com/gdamore/tcell/README.adoc create mode 100644 vendor/github.com/gdamore/tcell/attr.go create mode 100644 vendor/github.com/gdamore/tcell/cell.go create mode 100644 vendor/github.com/gdamore/tcell/charset_stub.go create mode 100644 vendor/github.com/gdamore/tcell/charset_unix.go create mode 100644 vendor/github.com/gdamore/tcell/charset_windows.go create mode 100644 vendor/github.com/gdamore/tcell/color.go create mode 100644 vendor/github.com/gdamore/tcell/colorfit.go create mode 100644 vendor/github.com/gdamore/tcell/console_stub.go create mode 100644 vendor/github.com/gdamore/tcell/console_win.go create mode 100644 vendor/github.com/gdamore/tcell/doc.go create mode 100644 vendor/github.com/gdamore/tcell/encoding.go create mode 100644 vendor/github.com/gdamore/tcell/errors.go create mode 100644 vendor/github.com/gdamore/tcell/event.go create mode 100644 vendor/github.com/gdamore/tcell/go.mod create mode 100644 vendor/github.com/gdamore/tcell/go.sum create mode 100644 vendor/github.com/gdamore/tcell/interrupt.go create mode 100644 vendor/github.com/gdamore/tcell/key.go create mode 100644 vendor/github.com/gdamore/tcell/mouse.go create mode 100644 vendor/github.com/gdamore/tcell/resize.go create mode 100644 vendor/github.com/gdamore/tcell/runes.go create mode 100644 vendor/github.com/gdamore/tcell/screen.go create mode 100644 vendor/github.com/gdamore/tcell/simulation.go create mode 100644 vendor/github.com/gdamore/tcell/style.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/.gitignore create mode 100644 vendor/github.com/gdamore/tcell/terminfo/README.md create mode 100644 vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md create mode 100644 vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/base/base.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/extended/extended.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/gen.sh create mode 100644 vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/models.txt create mode 100644 vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/terminfo.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go create mode 100644 vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go create mode 100644 vendor/github.com/gdamore/tcell/terms_default.go create mode 100644 vendor/github.com/gdamore/tcell/terms_dynamic.go create mode 100644 vendor/github.com/gdamore/tcell/terms_static.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_bsd.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_darwin.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_linux.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_solaris.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_stub.go create mode 100644 vendor/github.com/gdamore/tcell/tscreen_windows.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/.gitignore create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/.travis.yml create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/LICENSE create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/README.md create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/colorgens.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/colors.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/go.mod create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/go.sum create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go create mode 100644 vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go create mode 100644 vendor/github.com/mattn/go-runewidth/.travis.yml create mode 100644 vendor/github.com/mattn/go-runewidth/LICENSE create mode 100644 vendor/github.com/mattn/go-runewidth/README.md create mode 100644 vendor/github.com/mattn/go-runewidth/go.mod create mode 100644 vendor/github.com/mattn/go-runewidth/go.test.sh create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth.go create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth_appengine.go create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth_js.go create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth_posix.go create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth_table.go create mode 100644 vendor/github.com/mattn/go-runewidth/runewidth_windows.go create mode 100644 vendor/github.com/rivo/tview/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/rivo/tview/CONTRIBUTING.md create mode 100644 vendor/github.com/rivo/tview/LICENSE.txt create mode 100644 vendor/github.com/rivo/tview/README.md create mode 100644 vendor/github.com/rivo/tview/ansi.go create mode 100644 vendor/github.com/rivo/tview/application.go create mode 100644 vendor/github.com/rivo/tview/borders.go create mode 100644 vendor/github.com/rivo/tview/box.go create mode 100644 vendor/github.com/rivo/tview/button.go create mode 100644 vendor/github.com/rivo/tview/checkbox.go create mode 100644 vendor/github.com/rivo/tview/doc.go create mode 100644 vendor/github.com/rivo/tview/dropdown.go create mode 100644 vendor/github.com/rivo/tview/flex.go create mode 100644 vendor/github.com/rivo/tview/focusable.go create mode 100644 vendor/github.com/rivo/tview/form.go create mode 100644 vendor/github.com/rivo/tview/frame.go create mode 100644 vendor/github.com/rivo/tview/go.mod create mode 100644 vendor/github.com/rivo/tview/go.sum create mode 100644 vendor/github.com/rivo/tview/grid.go create mode 100644 vendor/github.com/rivo/tview/inputfield.go create mode 100644 vendor/github.com/rivo/tview/list.go create mode 100644 vendor/github.com/rivo/tview/modal.go create mode 100644 vendor/github.com/rivo/tview/pages.go create mode 100644 vendor/github.com/rivo/tview/primitive.go create mode 100644 vendor/github.com/rivo/tview/semigraphics.go create mode 100644 vendor/github.com/rivo/tview/styles.go create mode 100644 vendor/github.com/rivo/tview/table.go create mode 100644 vendor/github.com/rivo/tview/textview.go create mode 100644 vendor/github.com/rivo/tview/treeview.go create mode 100644 vendor/github.com/rivo/tview/tview.gif create mode 100644 vendor/github.com/rivo/tview/util.go create mode 100644 vendor/github.com/rivo/uniseg/LICENSE.txt create mode 100644 vendor/github.com/rivo/uniseg/README.md create mode 100644 vendor/github.com/rivo/uniseg/doc.go create mode 100644 vendor/github.com/rivo/uniseg/go.mod create mode 100644 vendor/github.com/rivo/uniseg/grapheme.go create mode 100644 vendor/github.com/rivo/uniseg/properties.go create mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go create mode 100644 vendor/golang.org/x/sys/unix/fdset.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go rename vendor/golang.org/x/sys/unix/{zptracearm_linux.go => zptrace_armnn_linux.go} (93%) create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go rename vendor/golang.org/x/sys/unix/{zptracemips_linux.go => zptrace_mipsnn_linux.go} (93%) rename vendor/golang.org/x/sys/unix/{zptracemipsle_linux.go => zptrace_mipsnnle_linux.go} (93%) rename vendor/golang.org/x/sys/unix/{zptrace386_linux.go => zptrace_x86_linux.go} (95%) create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go create mode 100644 vendor/golang.org/x/text/AUTHORS create mode 100644 vendor/golang.org/x/text/CONTRIBUTORS create mode 100644 vendor/golang.org/x/text/LICENSE create mode 100644 vendor/golang.org/x/text/PATENTS create mode 100644 vendor/golang.org/x/text/encoding/encoding.go create mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/identifier.go create mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/mib.go create mode 100644 vendor/golang.org/x/text/transform/transform.go diff --git a/go.mod b/go.mod index a32d0e5..922256e 100644 --- a/go.mod +++ b/go.mod @@ -9,5 +9,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/gdamore/tcell v1.4.0 + github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9 gopkg.in/fsnotify.v1 v1.4.7 // indirect ) diff --git a/go.sum b/go.sum index 89cdf0f..148b9ad 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab h1:8zeQTn3owfeyIA5KIhtvcj9wlMStdFaxbYwPkWhGVgo= github.com/d2r2/go-bh1750 v0.0.0-20181222061755-1195122364ab/go.mod h1:3atw7ac57A1fKlJIGeLBaeXdh80Revqk6uVl7bZyH10= github.com/d2r2/go-i2c v0.0.0-20191123181816-73a8a799d6bc h1:HLRSIWzUGMLCq4ldt0W1GLs3nnAxa5EGoP+9qHgh6j0= @@ -10,7 +11,30 @@ github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f h1:b3QvpXLSx1U1 github.com/dietsche/rfsnotify v0.0.0-20200716145600-b37be6e4177f/go.mod h1:ztitxkMUaBsHRey1tS5xFCd4gm/zAQwA9yfCP5y4cAA= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= +github.com/gdamore/tcell v1.4.0 h1:vUnHwJRvcPQa3tzi+0QI4U9JINXYJlOz9yiaiPQ2wMU= +github.com/gdamore/tcell v1.4.0/go.mod h1:vxEiSDZdW3L+Uhjii9c3375IlDmR05bzxY404ZVSMo0= +github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= +github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9 h1:csnip7QsoiE2Ee0RkELN1YggwejK2EFfcjU6tXOT0Q8= +github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9/go.mod h1:xV4Aw4WIX8cmhg71U7MUHBdpIQ7zSEXdRruGHLaEAOc= +github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443 h1:X18bCaipMcoJGm27Nv7zr4XYPKGUy92GtqboKC2Hxaw= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= diff --git a/vendor/github.com/gdamore/encoding/.appveyor.yml b/vendor/github.com/gdamore/encoding/.appveyor.yml new file mode 100644 index 0000000..19a4c5d --- /dev/null +++ b/vendor/github.com/gdamore/encoding/.appveyor.yml @@ -0,0 +1,13 @@ +version: 1.0.{build} +clone_folder: c:\gopath\src\github.com\gdamore\encoding +environment: + GOPATH: c:\gopath +build_script: +- go version +- go env +- SET PATH=%LOCALAPPDATA%\atom\bin;%GOPATH%\bin;%PATH% +- go get -t ./... +- go build +- go install ./... +test_script: +- go test ./... diff --git a/vendor/github.com/gdamore/encoding/.travis.yml b/vendor/github.com/gdamore/encoding/.travis.yml new file mode 100644 index 0000000..5042413 --- /dev/null +++ b/vendor/github.com/gdamore/encoding/.travis.yml @@ -0,0 +1,7 @@ +language: go + +go: + - 1.9.x + - 1.10.x + - 1.11.x + - tip diff --git a/vendor/github.com/gdamore/encoding/LICENSE b/vendor/github.com/gdamore/encoding/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/vendor/github.com/gdamore/encoding/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/gdamore/encoding/README.md b/vendor/github.com/gdamore/encoding/README.md new file mode 100644 index 0000000..3db2b4c --- /dev/null +++ b/vendor/github.com/gdamore/encoding/README.md @@ -0,0 +1,19 @@ +## encoding + +[![Linux Status](https://img.shields.io/travis/gdamore/encoding.svg?label=linux)](https://travis-ci.org/gdamore/encoding) +[![Windows Status](https://img.shields.io/appveyor/ci/gdamore/encoding.svg?label=windows)](https://ci.appveyor.com/project/gdamore/encoding) +[![Apache License](https://img.shields.io/badge/license-APACHE2-blue.svg)](https://github.com/gdamore/encoding/blob/master/LICENSE) +[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/gdamore/encoding) +[![Go Report Card](http://goreportcard.com/badge/gdamore/encoding)](http://goreportcard.com/report/gdamore/encoding) + +Package encoding provides a number of encodings that are missing from the +standard Go [encoding]("https://godoc.org/golang.org/x/text/encoding") package. + +We hope that we can contribute these to the standard Go library someday. It +turns out that some of these are useful for dealing with I/O streams coming +from non-UTF friendly sources. + +The UTF8 Encoder is also useful for situations where valid UTF-8 might be +carried in streams that contain non-valid UTF; in particular I use it for +helping me cope with terminals that embed escape sequences in otherwise +valid UTF-8. diff --git a/vendor/github.com/gdamore/encoding/ascii.go b/vendor/github.com/gdamore/encoding/ascii.go new file mode 100644 index 0000000..b7321f4 --- /dev/null +++ b/vendor/github.com/gdamore/encoding/ascii.go @@ -0,0 +1,36 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "golang.org/x/text/encoding" +) + +// ASCII represents the 7-bit US-ASCII scheme. It decodes directly to +// UTF-8 without change, as all ASCII values are legal UTF-8. +// Unicode values less than 128 (i.e. 7 bits) map 1:1 with ASCII. +// It encodes runes outside of that to 0x1A, the ASCII substitution character. +var ASCII encoding.Encoding + +func init() { + amap := make(map[byte]rune) + for i := 128; i <= 255; i++ { + amap[byte(i)] = RuneError + } + + cm := &Charmap{Map: amap} + cm.Init() + ASCII = cm +} diff --git a/vendor/github.com/gdamore/encoding/charmap.go b/vendor/github.com/gdamore/encoding/charmap.go new file mode 100644 index 0000000..db1c33e --- /dev/null +++ b/vendor/github.com/gdamore/encoding/charmap.go @@ -0,0 +1,196 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "sync" + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/transform" +) + +const ( + // RuneError is an alias for the UTF-8 replacement rune, '\uFFFD'. + RuneError = '\uFFFD' + + // RuneSelf is the rune below which UTF-8 and the Unicode values are + // identical. Its also the limit for ASCII. + RuneSelf = 0x80 + + // ASCIISub is the ASCII substitution character. + ASCIISub = '\x1a' +) + +// Charmap is a structure for setting up encodings for 8-bit character sets, +// for transforming between UTF8 and that other character set. It has some +// ideas borrowed from golang.org/x/text/encoding/charmap, but it uses a +// different implementation. This implementation uses maps, and supports +// user-defined maps. +// +// We do assume that a character map has a reasonable substitution character, +// and that valid encodings are stable (exactly a 1:1 map) and stateless +// (that is there is no shift character or anything like that.) Hence this +// approach will not work for many East Asian character sets. +// +// Measurement shows little or no measurable difference in the performance of +// the two approaches. The difference was down to a couple of nsec/op, and +// no consistent pattern as to which ran faster. With the conversion to +// UTF-8 the code takes about 25 nsec/op. The conversion in the reverse +// direction takes about 100 nsec/op. (The larger cost for conversion +// from UTF-8 is most likely due to the need to convert the UTF-8 byte stream +// to a rune before conversion. +// +type Charmap struct { + transform.NopResetter + bytes map[rune]byte + runes [256][]byte + once sync.Once + + // The map between bytes and runes. To indicate that a specific + // byte value is invalid for a charcter set, use the rune + // utf8.RuneError. Values that are absent from this map will + // be assumed to have the identity mapping -- that is the default + // is to assume ISO8859-1, where all 8-bit characters have the same + // numeric value as their Unicode runes. (Not to be confused with + // the UTF-8 values, which *will* be different for non-ASCII runes.) + // + // If no values less than RuneSelf are changed (or have non-identity + // mappings), then the character set is assumed to be an ASCII + // superset, and certain assumptions and optimizations become + // available for ASCII bytes. + Map map[byte]rune + + // The ReplacementChar is the byte value to use for substitution. + // It should normally be ASCIISub for ASCII encodings. This may be + // unset (left to zero) for mappings that are strictly ASCII supersets. + // In that case ASCIISub will be assumed instead. + ReplacementChar byte +} + +type cmapDecoder struct { + transform.NopResetter + runes [256][]byte +} + +type cmapEncoder struct { + transform.NopResetter + bytes map[rune]byte + replace byte +} + +// Init initializes internal values of a character map. This should +// be done early, to minimize the cost of allocation of transforms +// later. It is not strictly necessary however, as the allocation +// functions will arrange to call it if it has not already been done. +func (c *Charmap) Init() { + c.once.Do(c.initialize) +} + +func (c *Charmap) initialize() { + c.bytes = make(map[rune]byte) + ascii := true + + for i := 0; i < 256; i++ { + r, ok := c.Map[byte(i)] + if !ok { + r = rune(i) + } + if r < 128 && r != rune(i) { + ascii = false + } + if r != RuneError { + c.bytes[r] = byte(i) + } + utf := make([]byte, utf8.RuneLen(r)) + utf8.EncodeRune(utf, r) + c.runes[i] = utf + } + if ascii && c.ReplacementChar == '\x00' { + c.ReplacementChar = ASCIISub + } +} + +// NewDecoder returns a Decoder the converts from the 8-bit +// character set to UTF-8. Unknown mappings, if any, are mapped +// to '\uFFFD'. +func (c *Charmap) NewDecoder() *encoding.Decoder { + c.Init() + return &encoding.Decoder{Transformer: &cmapDecoder{runes: c.runes}} +} + +// NewEncoder returns a Transformer that converts from UTF8 to the +// 8-bit character set. Unknown mappings are mapped to 0x1A. +func (c *Charmap) NewEncoder() *encoding.Encoder { + c.Init() + return &encoding.Encoder{ + Transformer: &cmapEncoder{ + bytes: c.bytes, + replace: c.ReplacementChar, + }, + } +} + +func (d *cmapDecoder) Transform(dst, src []byte, atEOF bool) (int, int, error) { + var e error + var ndst, nsrc int + + for _, c := range src { + b := d.runes[c] + l := len(b) + + if ndst+l > len(dst) { + e = transform.ErrShortDst + break + } + for i := 0; i < l; i++ { + dst[ndst] = b[i] + ndst++ + } + nsrc++ + } + return ndst, nsrc, e +} + +func (d *cmapEncoder) Transform(dst, src []byte, atEOF bool) (int, int, error) { + var e error + var ndst, nsrc int + for nsrc < len(src) { + if ndst >= len(dst) { + e = transform.ErrShortDst + break + } + + r, sz := utf8.DecodeRune(src[nsrc:]) + if r == utf8.RuneError && sz == 1 { + // If its inconclusive due to insufficient data in + // in the source, report it + if !atEOF && !utf8.FullRune(src[nsrc:]) { + e = transform.ErrShortSrc + break + } + } + + if c, ok := d.bytes[r]; ok { + dst[ndst] = c + } else { + dst[ndst] = d.replace + } + nsrc += sz + ndst++ + } + + return ndst, nsrc, e +} diff --git a/vendor/github.com/gdamore/encoding/doc.go b/vendor/github.com/gdamore/encoding/doc.go new file mode 100644 index 0000000..8a7b48d --- /dev/null +++ b/vendor/github.com/gdamore/encoding/doc.go @@ -0,0 +1,17 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package encoding provides a few of the encoding structures that are +// missing from the Go x/text/encoding tree. +package encoding diff --git a/vendor/github.com/gdamore/encoding/ebcdic.go b/vendor/github.com/gdamore/encoding/ebcdic.go new file mode 100644 index 0000000..8e13f1a --- /dev/null +++ b/vendor/github.com/gdamore/encoding/ebcdic.go @@ -0,0 +1,273 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "golang.org/x/text/encoding" +) + +// EBCDIC represents the 8-bit EBCDIC scheme, found in some mainframe +// environments. If you don't know what this is, consider yourself lucky. +var EBCDIC encoding.Encoding + +func init() { + cm := &Charmap{ + ReplacementChar: '\x3f', + Map: map[byte]rune{ + // 0x00-0x03 match + 0x04: RuneError, + 0x05: '\t', + 0x06: RuneError, + 0x07: '\x7f', + 0x08: RuneError, + 0x09: RuneError, + 0x0a: RuneError, + // 0x0b-0x13 match + 0x14: RuneError, + 0x15: '\x85', // Not in any ISO code + 0x16: '\x08', + 0x17: RuneError, + // 0x18-0x19 match + 0x1a: RuneError, + 0x1b: RuneError, + // 0x1c-0x1f match + 0x20: RuneError, + 0x21: RuneError, + 0x22: RuneError, + 0x23: RuneError, + 0x24: RuneError, + 0x25: '\n', + 0x26: '\x17', + 0x27: '\x1b', + 0x28: RuneError, + 0x29: RuneError, + 0x2a: RuneError, + 0x2b: RuneError, + 0x2c: RuneError, + 0x2d: '\x05', + 0x2e: '\x06', + 0x2f: '\x07', + 0x30: RuneError, + 0x31: RuneError, + 0x32: '\x16', + 0x33: RuneError, + 0x34: RuneError, + 0x35: RuneError, + 0x36: RuneError, + 0x37: '\x04', + 0x38: RuneError, + 0x39: RuneError, + 0x3a: RuneError, + 0x3b: RuneError, + 0x3c: '\x14', + 0x3d: '\x15', + 0x3e: RuneError, + 0x3f: '\x1a', // also replacement char + 0x40: ' ', + 0x41: '\xa0', + 0x42: RuneError, + 0x43: RuneError, + 0x44: RuneError, + 0x45: RuneError, + 0x46: RuneError, + 0x47: RuneError, + 0x48: RuneError, + 0x49: RuneError, + 0x4a: RuneError, + 0x4b: '.', + 0x4c: '<', + 0x4d: '(', + 0x4e: '+', + 0x4f: '|', + 0x50: '&', + 0x51: RuneError, + 0x52: RuneError, + 0x53: RuneError, + 0x54: RuneError, + 0x55: RuneError, + 0x56: RuneError, + 0x57: RuneError, + 0x58: RuneError, + 0x59: RuneError, + 0x5a: '!', + 0x5b: '$', + 0x5c: '*', + 0x5d: ')', + 0x5e: ';', + 0x5f: '¬', + 0x60: '-', + 0x61: '/', + 0x62: RuneError, + 0x63: RuneError, + 0x64: RuneError, + 0x65: RuneError, + 0x66: RuneError, + 0x67: RuneError, + 0x68: RuneError, + 0x69: RuneError, + 0x6a: '¦', + 0x6b: ',', + 0x6c: '%', + 0x6d: '_', + 0x6e: '>', + 0x6f: '?', + 0x70: RuneError, + 0x71: RuneError, + 0x72: RuneError, + 0x73: RuneError, + 0x74: RuneError, + 0x75: RuneError, + 0x76: RuneError, + 0x77: RuneError, + 0x78: RuneError, + 0x79: '`', + 0x7a: ':', + 0x7b: '#', + 0x7c: '@', + 0x7d: '\'', + 0x7e: '=', + 0x7f: '"', + 0x80: RuneError, + 0x81: 'a', + 0x82: 'b', + 0x83: 'c', + 0x84: 'd', + 0x85: 'e', + 0x86: 'f', + 0x87: 'g', + 0x88: 'h', + 0x89: 'i', + 0x8a: RuneError, + 0x8b: RuneError, + 0x8c: RuneError, + 0x8d: RuneError, + 0x8e: RuneError, + 0x8f: '±', + 0x90: RuneError, + 0x91: 'j', + 0x92: 'k', + 0x93: 'l', + 0x94: 'm', + 0x95: 'n', + 0x96: 'o', + 0x97: 'p', + 0x98: 'q', + 0x99: 'r', + 0x9a: RuneError, + 0x9b: RuneError, + 0x9c: RuneError, + 0x9d: RuneError, + 0x9e: RuneError, + 0x9f: RuneError, + 0xa0: RuneError, + 0xa1: '~', + 0xa2: 's', + 0xa3: 't', + 0xa4: 'u', + 0xa5: 'v', + 0xa6: 'w', + 0xa7: 'x', + 0xa8: 'y', + 0xa9: 'z', + 0xaa: RuneError, + 0xab: RuneError, + 0xac: RuneError, + 0xad: RuneError, + 0xae: RuneError, + 0xaf: RuneError, + 0xb0: '^', + 0xb1: RuneError, + 0xb2: RuneError, + 0xb3: RuneError, + 0xb4: RuneError, + 0xb5: RuneError, + 0xb6: RuneError, + 0xb7: RuneError, + 0xb8: RuneError, + 0xb9: RuneError, + 0xba: '[', + 0xbb: ']', + 0xbc: RuneError, + 0xbd: RuneError, + 0xbe: RuneError, + 0xbf: RuneError, + 0xc0: '{', + 0xc1: 'A', + 0xc2: 'B', + 0xc3: 'C', + 0xc4: 'D', + 0xc5: 'E', + 0xc6: 'F', + 0xc7: 'G', + 0xc8: 'H', + 0xc9: 'I', + 0xca: '\xad', // NB: soft hyphen + 0xcb: RuneError, + 0xcc: RuneError, + 0xcd: RuneError, + 0xce: RuneError, + 0xcf: RuneError, + 0xd0: '}', + 0xd1: 'J', + 0xd2: 'K', + 0xd3: 'L', + 0xd4: 'M', + 0xd5: 'N', + 0xd6: 'O', + 0xd7: 'P', + 0xd8: 'Q', + 0xd9: 'R', + 0xda: RuneError, + 0xdb: RuneError, + 0xdc: RuneError, + 0xdd: RuneError, + 0xde: RuneError, + 0xdf: RuneError, + 0xe0: '\\', + 0xe1: '\u2007', // Non-breaking space + 0xe2: 'S', + 0xe3: 'T', + 0xe4: 'U', + 0xe5: 'V', + 0xe6: 'W', + 0xe7: 'X', + 0xe8: 'Y', + 0xe9: 'Z', + 0xea: RuneError, + 0xeb: RuneError, + 0xec: RuneError, + 0xed: RuneError, + 0xee: RuneError, + 0xef: RuneError, + 0xf0: '0', + 0xf1: '1', + 0xf2: '2', + 0xf3: '3', + 0xf4: '4', + 0xf5: '5', + 0xf6: '6', + 0xf7: '7', + 0xf8: '8', + 0xf9: '9', + 0xfa: RuneError, + 0xfb: RuneError, + 0xfc: RuneError, + 0xfd: RuneError, + 0xfe: RuneError, + 0xff: RuneError, + }} + cm.Init() + EBCDIC = cm +} diff --git a/vendor/github.com/gdamore/encoding/go.mod b/vendor/github.com/gdamore/encoding/go.mod new file mode 100644 index 0000000..e91b30d --- /dev/null +++ b/vendor/github.com/gdamore/encoding/go.mod @@ -0,0 +1,5 @@ +module github.com/gdamore/encoding + +go 1.9 + +require golang.org/x/text v0.3.0 diff --git a/vendor/github.com/gdamore/encoding/go.sum b/vendor/github.com/gdamore/encoding/go.sum new file mode 100644 index 0000000..6bad37b --- /dev/null +++ b/vendor/github.com/gdamore/encoding/go.sum @@ -0,0 +1,2 @@ +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/github.com/gdamore/encoding/latin1.go b/vendor/github.com/gdamore/encoding/latin1.go new file mode 100644 index 0000000..226bf01 --- /dev/null +++ b/vendor/github.com/gdamore/encoding/latin1.go @@ -0,0 +1,33 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "golang.org/x/text/encoding" +) + +// ISO8859_1 represents the 8-bit ISO8859-1 scheme. It decodes directly to +// UTF-8 without change, as all ISO8859-1 values are legal UTF-8. +// Unicode values less than 256 (i.e. 8 bits) map 1:1 with 8859-1. +// It encodes runes outside of that to 0x1A, the ASCII substitution character. +var ISO8859_1 encoding.Encoding + +func init() { + cm := &Charmap{} + cm.Init() + + // 8859-1 is the 8-bit identity map for Unicode. + ISO8859_1 = cm +} diff --git a/vendor/github.com/gdamore/encoding/latin5.go b/vendor/github.com/gdamore/encoding/latin5.go new file mode 100644 index 0000000..c75ecf2 --- /dev/null +++ b/vendor/github.com/gdamore/encoding/latin5.go @@ -0,0 +1,35 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "golang.org/x/text/encoding" +) + +// ISO8859_9 represents the 8-bit ISO8859-9 scheme. +var ISO8859_9 encoding.Encoding + +func init() { + cm := &Charmap{Map: map[byte]rune{ + 0xD0: 'Ğ', + 0xDD: 'İ', + 0xDE: 'Ş', + 0xF0: 'ğ', + 0xFD: 'ı', + 0xFE: 'ş', + }} + cm.Init() + ISO8859_9 = cm +} diff --git a/vendor/github.com/gdamore/encoding/utf8.go b/vendor/github.com/gdamore/encoding/utf8.go new file mode 100644 index 0000000..2d59f4b --- /dev/null +++ b/vendor/github.com/gdamore/encoding/utf8.go @@ -0,0 +1,35 @@ +// Copyright 2015 Garrett D'Amore +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package encoding + +import ( + "golang.org/x/text/encoding" +) + +type validUtf8 struct{} + +// UTF8 is an encoding for UTF-8. All it does is verify that the UTF-8 +// in is valid. The main reason for its existence is that it will detect +// and report ErrSrcShort or ErrDstShort, whereas the Nop encoding just +// passes every byte, blithely. +var UTF8 encoding.Encoding = validUtf8{} + +func (validUtf8) NewDecoder() *encoding.Decoder { + return &encoding.Decoder{Transformer: encoding.UTF8Validator} +} + +func (validUtf8) NewEncoder() *encoding.Encoder { + return &encoding.Encoder{Transformer: encoding.UTF8Validator} +} diff --git a/vendor/github.com/gdamore/tcell/.appveyor.yml b/vendor/github.com/gdamore/tcell/.appveyor.yml new file mode 100644 index 0000000..435dfe3 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/.appveyor.yml @@ -0,0 +1,13 @@ +version: 1.0.{build} +clone_folder: c:\gopath\src\github.com\gdamore\tcell +environment: + GOPATH: c:\gopath +build_script: +- go version +- go env +- SET PATH=%LOCALAPPDATA%\atom\bin;%GOPATH%\bin;%PATH% +- go get -t ./... +- go build +- go install ./... +test_script: +- go test ./... diff --git a/vendor/github.com/gdamore/tcell/.gitignore b/vendor/github.com/gdamore/tcell/.gitignore new file mode 100644 index 0000000..c57100a --- /dev/null +++ b/vendor/github.com/gdamore/tcell/.gitignore @@ -0,0 +1 @@ +coverage.txt diff --git a/vendor/github.com/gdamore/tcell/.travis.yml b/vendor/github.com/gdamore/tcell/.travis.yml new file mode 100644 index 0000000..fec3f66 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/.travis.yml @@ -0,0 +1,15 @@ +language: go + +go: + - 1.10.x + - 1.11.x + - master + +before_install: + - go get -t -v ./... + +script: + - go test -race -coverprofile=coverage.txt -covermode=atomic + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/gdamore/tcell/AUTHORS b/vendor/github.com/gdamore/tcell/AUTHORS new file mode 100644 index 0000000..53f87ee --- /dev/null +++ b/vendor/github.com/gdamore/tcell/AUTHORS @@ -0,0 +1,4 @@ +Garrett D'Amore +Zachary Yedidia +Junegunn Choi +Staysail Systems, Inc. diff --git a/vendor/github.com/gdamore/tcell/LICENSE b/vendor/github.com/gdamore/tcell/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/gdamore/tcell/README.adoc b/vendor/github.com/gdamore/tcell/README.adoc new file mode 100644 index 0000000..696b0cf --- /dev/null +++ b/vendor/github.com/gdamore/tcell/README.adoc @@ -0,0 +1,279 @@ += tcell + + +image:https://img.shields.io/travis/gdamore/tcell.svg?label=linux[Linux Status,link="https://travis-ci.org/gdamore/tcell"] +image:https://img.shields.io/appveyor/ci/gdamore/tcell.svg?label=windows[Windows Status,link="https://ci.appveyor.com/project/gdamore/tcell"] +image:https://img.shields.io/badge/license-APACHE2-blue.svg[Apache License,link="https://github.com/gdamore/tcell/blob/master/LICENSE"] +image:https://img.shields.io/badge/godoc-reference-blue.svg[GoDoc,link="https://godoc.org/github.com/gdamore/tcell"] +image:http://goreportcard.com/badge/gdamore/tcell[Go Report Card,link="http://goreportcard.com/report/gdamore/tcell"] +image:https://img.shields.io/discord/639503822733180969?label=discord[Discord,link="https://discord.gg/urTTxDN"] +image:https://codecov.io/gh/gdamore/tcell/branch/master/graph/badge.svg[codecov,link="https://codecov.io/gh/gdamore/tcell"] + +[cols="2",grid="none"] +|=== +|_Tcell_ is a _Go_ package that provides a cell based view for text terminals, like _xterm_. +It was inspired by _termbox_, but includes many additional improvements. +a|[.right] +image::logos/tcell.png[float="right"] +|=== + +## Examples + +* https://github.com/gdamore/proxima5[proxima5] - space shooter (https://youtu.be/jNxKTCmY_bQ[video]) +* https://github.com/gdamore/govisor[govisor] - service management UI (http://2.bp.blogspot.com/--OsvnfzSNow/Vf7aqMw3zXI/AAAAAAAAARo/uOMtOvw4Sbg/s1600/Screen%2BShot%2B2015-09-20%2Bat%2B9.08.41%2BAM.png[screenshot]) +* mouse demo - included mouse test (http://2.bp.blogspot.com/-fWvW5opT0es/VhIdItdKqJI/AAAAAAAAATE/7Ojc0L1SpB0/s1600/Screen%2BShot%2B2015-10-04%2Bat%2B11.47.13%2BPM.png[screenshot]) +* https://github.com/gdamore/gomatrix[gomatrix] - converted from Termbox +* https://github.com/zyedidia/micro/[micro] - lightweight text editor with syntax-highlighting and themes +* https://github.com/viktomas/godu[godu] - simple golang utility helping to discover large files/folders. +* https://github.com/rivo/tview[tview] - rich interactive widgets for terminal UIs +* https://github.com/marcusolsson/tui-go[tui-go] - UI library for terminal apps (_deprecated_) +* https://github.com/rgm3/gomandelbrot[gomandelbrot] - Mandelbrot! +* https://github.com/senorprogrammer/wtf[WTF]- Personal information dashboard for your terminal +* https://github.com/browsh-org/browsh[browsh] - A fully-modern text-based browser, rendering to TTY and browsers (https://www.youtube.com/watch?v=HZq86XfBoRo[video]) +* https://github.com/sachaos/go-life[go-life] - Conway's Game of Life. +* https://github.com/gcla/gowid[gowid] - compositional widgets for terminal UIs, inspired by urwid +* https://termshark.io[termshark] - a terminal UI for tshark, inspired by Wireshark, built on gowid +* https://github.com/MichaelS11/go-tetris[go-tetris] - Go Tetris with AI option +* https://github.com/junegunn/fzf[fzf] - A command-line fuzzy finder +* https://github.com/esimov/ascii-fluid[ascii-fluid] - A terminal based ASCII fluid simulation controlled by webcam +* https://gitlab.com/tslocum/cbind[cbind] - Provides key event encoding, decoding and handling +* https://github.com/spinzed/tpong[tpong] - The old-school Pong remade in terminal + +## Pure Go Terminfo Database + +_Tcell_ includes a full parser and expander for terminfo capability strings, +so that it can avoid hard coding escape strings for formatting. It also favors +portability, and includes support for all POSIX systems. + +The database is also flexible & extensible, and can modified by either running +a program to build the entire database, or an entry for just a single terminal. + +## More Portable + +_Tcell_ is portable to a wide variety of systems. +_Tcell_ is believed +to work with all of the systems officially supported by golang with +the exception of nacl (which lacks any kind of a terminal interface). +(Plan9 is not supported by _Tcell_, but it is experimental status only +in golang.) _Tcell_ is pure Go, without any need for CGO. + +## No Async IO + +_Tcell_ is able to operate without requiring `SIGIO` signals (unlike _termbox_), +or asynchronous I/O, and can instead use standard Go file +objects and Go routines. +This means it should be safe, especially for +use with programs that use exec, or otherwise need to manipulate the +tty streams. +This model is also much closer to idiomatic Go, leading +to fewer surprises. + +## Rich Unicode & non-Unicode support + +_Tcell_ includes enhanced support for Unicode, including wide characters and +combining characters, provided your terminal can support them. +Note that +Windows terminals generally don't support the full Unicode repertoire. + +It will also convert to and from Unicode locales, so that the program +can work with UTF-8 internally, and get reasonable output in other locales. +_Tcell_ tries hard to convert to native characters on both input and output, and +on output _Tcell_ even makes use of the alternate character set to facilitate +drawing certain characters. + +## More Function Keys + +_Tcell_ also has richer support for a larger number of special keys that some terminals can send. + +## Better Color Handling + +_Tcell_ will respect your terminal's color space as specified within your terminfo +entries, so that for example attempts to emit color sequences on VT100 terminals +won't result in unintended consequences. + +In legacy Windows mode, _Tcell_ supports 16 colors, bold, dim, and reverse, +instead of just termbox's 8 colors with reverse. (Note that there is some +conflation with bold/dim and colors.) +Modern Windows 10 can benefit from much richer colors however. + +_Tcell_ maps 16 colors down to 8, for terminals that need it. +(The upper 8 colors are just brighter versions of the lower 8.) + +## Better Mouse Support + +_Tcell_ supports enhanced mouse tracking mode, so your application can receive +regular mouse motion events, and wheel events, if your terminal supports it. + +(Note: The Windows 10 Terminal application suffers from a flaw in this regard, +and does not support mouse interaction. The stock Windows 10 console host +fired up with cmd.exe or PowerShell works fine however.) + +## _Termbox_ Compatibility + +A compatibility layer for _termbox_ is provided in the `compat` directory. +To use it, try importing `github.com/gdamore/tcell/termbox` instead. +Most _termbox-go_ programs will probably work without further modification. + +## Working With Unicode + +Internally Tcell uses UTF-8, just like Go. +However, Tcell understands how to +convert to and from other character sets, using the capabilities of +the `golang.org/x/text/encoding packages`. +Your application must supply +them, as the full set of the most common ones bloats the program by about 2MB. +If you're lazy, and want them all anyway, see the `encoding` sub-directory. + +## Wide & Combining Characters + +The `SetContent()` API takes a primary rune, and an optional list of combining runes. +If any of the runes is a wide (East Asian) rune occupying two cells, +then the library will skip output from the following cell, but care must be +taken in the application to avoid explicitly attempting to set content in the +next cell, otherwise the results are undefined. (Normally wide character +is displayed, and the other character is not; do not depend on that behavior.) + +Experience has shown that the vanilla Windows 8 console application does not +support any of these characters properly, but at least some options like +_ConEmu_ do support Wide characters. + +## Colors + +_Tcell_ assumes the ANSI/XTerm color model, including the 256 color map that +XTerm uses when it supports 256 colors. The terminfo guidance will be +honored, with respect to the number of colors supported. Also, only +terminals which expose ANSI style `setaf` and `setab` will support color; +if you have a color terminal that only has `setf` and `setb`, please let me +know; it wouldn't be hard to add that if there is need. + +## 24-bit Color + +_Tcell_ _supports true color_! (That is, if your terminal can support it, +_Tcell_ can accurately display 24-bit color.) + +To use 24-bit color, you need to use a terminal that supports it. Modern +xterm and similar teminal emulators can support this. As terminfo lacks any +way to describe this capability, we fabricate the capability for +terminals with names ending in `*-truecolor`. The stock distribution ships +with a database that defines `xterm-truecolor`. +To try it out, set your +`TERM` variable to `xterm-truecolor`. + +When using TrueColor, programs will display the colors that the programmer +intended, overriding any "`themes`" you may have set in your terminal +emulator. (For some cases, accurate color fidelity is more important +than respecting themes. For other cases, such as typical text apps that +only use a few colors, its more desirable to respect the themes that +the user has established.) + +If you find this undesirable, you can either use a `TERM` variable +that lacks the `TRUECOLOR` setting, or set `TCELL_TRUECOLOR=disable` in your +environment. + +## Performance + +Reasonable attempts have been made to minimize sending data to terminals, +avoiding repeated sequences or drawing the same cell on refresh updates. + +## Terminfo + +(Not relevent for Windows users.) + +The Terminfo implementation operates with two forms of database. The first +is the built-in go database, which contains a number of real database entries +that are compiled into the program directly. This should minimize calling +out to database file searches. + +The second is in the form of JSON files, that contain the same information, +which can be located either by the `$TCELLDB` environment file, `$HOME/.tcelldb`, +or is located in the Go source directory as `database.json`. + +These files (both the Go and the JSON files) can be generated using the +mkinfo.go program. If you need to regnerate the entire set for some reason, +run the mkdatabase.sh file. The generation uses the infocmp(1) program on +the system to collect the necessary information. + +The `mkinfo.go` program can also be used to generate specific database entries +for named terminals, in case your favorite terminal is missing. (If you +find that this is the case, please let me know and I'll try to add it!) + +_Tcell_ requires that the terminal support the `cup` mode of cursor addressing. +Terminals without absolute cursor addressability are not supported. +This is unlikely to be a problem; such terminals have not been mass produced +since the early 1970s. + +## Mouse Support + +Mouse support is detected via the `kmous` terminfo variable, however, +enablement/disablement and decoding mouse events is done using hard coded +sequences based on the XTerm X11 model. As of this writing all popular +terminals with mouse tracking support this model. (Full terminfo support +is not possible as terminfo sequences are not defined.) + +On Windows, the mouse works normally. + +Mouse wheel buttons on various terminals are known to work, but the support +in terminal emulators, as well as support for various buttons and +live mouse tracking, varies widely. Modern _xterm_, macOS _Terminal_, and _iTerm_ all work well. + +## Testablity + +There is a `SimulationScreen`, that can be used to simulate a real screen +for automated testing. The supplied tests do this. The simulation contains +event delivery, screen resizing support, and capabilities to inject events +and examine "`physical`" screen contents. + +## Platforms + +### POSIX (Linux, FreeBSD, macOS, Solaris, etc.) + +For mainstream systems with a suitably well defined system call interface +to tty settings, everything works using pure Go. + +For the remainder (right now means only Solaris/illumos) we use POSIX function +calls to manage termios, which implies that CGO is required on those platforms. + +### Windows + +Windows console mode applications are supported. Unfortunately _mintty_ +and other _cygwin_ style applications are not supported. + +Modern console applications like ConEmu, as well as the Windows 10 +console itself, support all the good features (resize, mouse tracking, etc.) + +I haven't figured out how to cleanly resolve the dichotomy between cygwin +style termios and the Windows Console API; it seems that perhaps nobody else +has either. If anyone has suggestions, let me know! Really, if you're +using a Windows application, you should use the native Windows console or a +fully compatible console implementation. + +### Plan9 and Native Client (Nacl) + +The nacl and plan9 platforms won't work, but compilation stubs are supplied +for folks that want to include parts of this in software targetting those +platforms. The Simulation screen works, but as Tcell doesn't know how to +allocate a real screen object on those platforms, `NewScreen()` will fail. + +If anyone has wisdom about how to improve support for either of these, +please let me know. PRs are especially welcome. + +### Commercial Support + +_Tcell_ is absolutely free, but if you want to obtain commercial, professional support, there are options. + +[cols="2",align="center",frame="none", grid="none"] +|=== +^.^| +image:logos/tidelift.png[100,100] +a| +https://tidelift.com/[Tidelift] subscriptions include support for _Tcell_, as well as many other open source packages. + +^.^| +image:logos/staysail.png[100,100] +a| +mailto:info@staysail.tech[Staysail Systems, Inc.] offers direct support, and custom development around _Tcell_ on an hourly basis. + +^.^| +image:logos/patreon.png[100,100] +a|I also welcome donations at https://www.patreon.com/gedamore/[Patreon], if you just want to make a contribution. +|=== diff --git a/vendor/github.com/gdamore/tcell/attr.go b/vendor/github.com/gdamore/tcell/attr.go new file mode 100644 index 0000000..8036cdb --- /dev/null +++ b/vendor/github.com/gdamore/tcell/attr.go @@ -0,0 +1,33 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// AttrMask represents a mask of text attributes, apart from color. +// Note that support for attributes may vary widely across terminals. +type AttrMask int + +// Attributes are not colors, but affect the display of text. They can +// be combined. +const ( + AttrBold AttrMask = 1 << (25 + iota) + AttrBlink + AttrReverse + AttrUnderline + AttrDim + AttrItalic + AttrNone AttrMask = 0 // Just normal text. +) + +const attrAll = AttrBold | AttrBlink | AttrReverse | AttrUnderline | AttrDim | AttrItalic diff --git a/vendor/github.com/gdamore/tcell/cell.go b/vendor/github.com/gdamore/tcell/cell.go new file mode 100644 index 0000000..c7f8f1a --- /dev/null +++ b/vendor/github.com/gdamore/tcell/cell.go @@ -0,0 +1,177 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + runewidth "github.com/mattn/go-runewidth" +) + +type cell struct { + currMain rune + currComb []rune + currStyle Style + lastMain rune + lastStyle Style + lastComb []rune + width int +} + +// CellBuffer represents a two dimensional array of character cells. +// This is primarily intended for use by Screen implementors; it +// contains much of the common code they need. To create one, just +// declare a variable of its type; no explicit initialization is necessary. +// +// CellBuffer is not thread safe. +type CellBuffer struct { + w int + h int + cells []cell +} + +// SetContent sets the contents (primary rune, combining runes, +// and style) for a cell at a given location. +func (cb *CellBuffer) SetContent(x int, y int, + mainc rune, combc []rune, style Style) { + + if x >= 0 && y >= 0 && x < cb.w && y < cb.h { + c := &cb.cells[(y*cb.w)+x] + + c.currComb = append([]rune{}, combc...) + + if c.currMain != mainc { + c.width = runewidth.RuneWidth(mainc) + } + c.currMain = mainc + c.currStyle = style + } +} + +// GetContent returns the contents of a character cell, including the +// primary rune, any combining character runes (which will usually be +// nil), the style, and the display width in cells. (The width can be +// either 1, normally, or 2 for East Asian full-width characters.) +func (cb *CellBuffer) GetContent(x, y int) (rune, []rune, Style, int) { + var mainc rune + var combc []rune + var style Style + var width int + if x >= 0 && y >= 0 && x < cb.w && y < cb.h { + c := &cb.cells[(y*cb.w)+x] + mainc, combc, style = c.currMain, c.currComb, c.currStyle + if width = c.width; width == 0 || mainc < ' ' { + width = 1 + mainc = ' ' + } + } + return mainc, combc, style, width +} + +// Size returns the (width, height) in cells of the buffer. +func (cb *CellBuffer) Size() (int, int) { + return cb.w, cb.h +} + +// Invalidate marks all characters within the buffer as dirty. +func (cb *CellBuffer) Invalidate() { + for i := range cb.cells { + cb.cells[i].lastMain = rune(0) + } +} + +// Dirty checks if a character at the given location needs an +// to be refreshed on the physical display. This returns true +// if the cell content is different since the last time it was +// marked clean. +func (cb *CellBuffer) Dirty(x, y int) bool { + if x >= 0 && y >= 0 && x < cb.w && y < cb.h { + c := &cb.cells[(y*cb.w)+x] + if c.lastMain == rune(0) { + return true + } + if c.lastMain != c.currMain { + return true + } + if c.lastStyle != c.currStyle { + return true + } + if len(c.lastComb) != len(c.currComb) { + return true + } + for i := range c.lastComb { + if c.lastComb[i] != c.currComb[i] { + return true + } + } + } + return false +} + +// SetDirty is normally used to indicate that a cell has +// been displayed (in which case dirty is false), or to manually +// force a cell to be marked dirty. +func (cb *CellBuffer) SetDirty(x, y int, dirty bool) { + if x >= 0 && y >= 0 && x < cb.w && y < cb.h { + c := &cb.cells[(y*cb.w)+x] + if dirty { + c.lastMain = rune(0) + } else { + if c.currMain == rune(0) { + c.currMain = ' ' + } + c.lastMain = c.currMain + c.lastComb = c.currComb + c.lastStyle = c.currStyle + } + } +} + +// Resize is used to resize the cells array, with different dimensions, +// while preserving the original contents. The cells will be invalidated +// so that they can be redrawn. +func (cb *CellBuffer) Resize(w, h int) { + + if cb.h == h && cb.w == w { + return + } + + newc := make([]cell, w*h) + for y := 0; y < h && y < cb.h; y++ { + for x := 0; x < w && x < cb.w; x++ { + oc := &cb.cells[(y*cb.w)+x] + nc := &newc[(y*w)+x] + nc.currMain = oc.currMain + nc.currComb = oc.currComb + nc.currStyle = oc.currStyle + nc.width = oc.width + nc.lastMain = rune(0) + } + } + cb.cells = newc + cb.h = h + cb.w = w +} + +// Fill fills the entire cell buffer array with the specified character +// and style. Normally choose ' ' to clear the screen. This API doesn't +// support combining characters, or characters with a width larger than one. +func (cb *CellBuffer) Fill(r rune, style Style) { + for i := range cb.cells { + c := &cb.cells[i] + c.currMain = r + c.currComb = nil + c.currStyle = style + c.width = 1 + } +} diff --git a/vendor/github.com/gdamore/tcell/charset_stub.go b/vendor/github.com/gdamore/tcell/charset_stub.go new file mode 100644 index 0000000..c1c1594 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/charset_stub.go @@ -0,0 +1,21 @@ +// +build plan9 nacl + +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +func getCharset() string { + return "" +} diff --git a/vendor/github.com/gdamore/tcell/charset_unix.go b/vendor/github.com/gdamore/tcell/charset_unix.go new file mode 100644 index 0000000..d9f9d8e --- /dev/null +++ b/vendor/github.com/gdamore/tcell/charset_unix.go @@ -0,0 +1,49 @@ +// +build !windows,!nacl,!plan9 + +// Copyright 2016 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "os" + "strings" +) + +func getCharset() string { + // Determine the character set. This can help us later. + // Per POSIX, we search for LC_ALL first, then LC_CTYPE, and + // finally LANG. First one set wins. + locale := "" + if locale = os.Getenv("LC_ALL"); locale == "" { + if locale = os.Getenv("LC_CTYPE"); locale == "" { + locale = os.Getenv("LANG") + } + } + if locale == "POSIX" || locale == "C" { + return "US-ASCII" + } + if i := strings.IndexRune(locale, '@'); i >= 0 { + locale = locale[:i] + } + if i := strings.IndexRune(locale, '.'); i >= 0 { + locale = locale[i+1:] + } else { + // Default assumption, and on Linux we can see LC_ALL + // without a character set, which we assume implies UTF-8. + return "UTF-8" + } + // XXX: add support for aliases + return locale +} diff --git a/vendor/github.com/gdamore/tcell/charset_windows.go b/vendor/github.com/gdamore/tcell/charset_windows.go new file mode 100644 index 0000000..2400aa8 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/charset_windows.go @@ -0,0 +1,21 @@ +// +build windows + +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +func getCharset() string { + return "UTF-16" +} diff --git a/vendor/github.com/gdamore/tcell/color.go b/vendor/github.com/gdamore/tcell/color.go new file mode 100644 index 0000000..2e096c7 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/color.go @@ -0,0 +1,1019 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import "strconv" + +// Color represents a color. The low numeric values are the same as used +// by ECMA-48, and beyond that XTerm. A 24-bit RGB value may be used by +// adding in the ColorIsRGB flag. For Color names we use the W3C approved +// color names. +// +// Note that on various terminals colors may be approximated however, or +// not supported at all. If no suitable representation for a color is known, +// the library will simply not set any color, deferring to whatever default +// attributes the terminal uses. +type Color int32 + +const ( + // ColorDefault is used to leave the Color unchanged from whatever + // system or teminal default may exist. + ColorDefault Color = -1 + + // ColorIsRGB is used to indicate that the numeric value is not + // a known color constant, but rather an RGB value. The lower + // order 3 bytes are RGB. + ColorIsRGB Color = 1 << 24 +) + +// Note that the order of these options is important -- it follows the +// definitions used by ECMA and XTerm. Hence any further named colors +// must begin at a value not less than 256. +const ( + ColorBlack Color = iota + ColorMaroon + ColorGreen + ColorOlive + ColorNavy + ColorPurple + ColorTeal + ColorSilver + ColorGray + ColorRed + ColorLime + ColorYellow + ColorBlue + ColorFuchsia + ColorAqua + ColorWhite + Color16 + Color17 + Color18 + Color19 + Color20 + Color21 + Color22 + Color23 + Color24 + Color25 + Color26 + Color27 + Color28 + Color29 + Color30 + Color31 + Color32 + Color33 + Color34 + Color35 + Color36 + Color37 + Color38 + Color39 + Color40 + Color41 + Color42 + Color43 + Color44 + Color45 + Color46 + Color47 + Color48 + Color49 + Color50 + Color51 + Color52 + Color53 + Color54 + Color55 + Color56 + Color57 + Color58 + Color59 + Color60 + Color61 + Color62 + Color63 + Color64 + Color65 + Color66 + Color67 + Color68 + Color69 + Color70 + Color71 + Color72 + Color73 + Color74 + Color75 + Color76 + Color77 + Color78 + Color79 + Color80 + Color81 + Color82 + Color83 + Color84 + Color85 + Color86 + Color87 + Color88 + Color89 + Color90 + Color91 + Color92 + Color93 + Color94 + Color95 + Color96 + Color97 + Color98 + Color99 + Color100 + Color101 + Color102 + Color103 + Color104 + Color105 + Color106 + Color107 + Color108 + Color109 + Color110 + Color111 + Color112 + Color113 + Color114 + Color115 + Color116 + Color117 + Color118 + Color119 + Color120 + Color121 + Color122 + Color123 + Color124 + Color125 + Color126 + Color127 + Color128 + Color129 + Color130 + Color131 + Color132 + Color133 + Color134 + Color135 + Color136 + Color137 + Color138 + Color139 + Color140 + Color141 + Color142 + Color143 + Color144 + Color145 + Color146 + Color147 + Color148 + Color149 + Color150 + Color151 + Color152 + Color153 + Color154 + Color155 + Color156 + Color157 + Color158 + Color159 + Color160 + Color161 + Color162 + Color163 + Color164 + Color165 + Color166 + Color167 + Color168 + Color169 + Color170 + Color171 + Color172 + Color173 + Color174 + Color175 + Color176 + Color177 + Color178 + Color179 + Color180 + Color181 + Color182 + Color183 + Color184 + Color185 + Color186 + Color187 + Color188 + Color189 + Color190 + Color191 + Color192 + Color193 + Color194 + Color195 + Color196 + Color197 + Color198 + Color199 + Color200 + Color201 + Color202 + Color203 + Color204 + Color205 + Color206 + Color207 + Color208 + Color209 + Color210 + Color211 + Color212 + Color213 + Color214 + Color215 + Color216 + Color217 + Color218 + Color219 + Color220 + Color221 + Color222 + Color223 + Color224 + Color225 + Color226 + Color227 + Color228 + Color229 + Color230 + Color231 + Color232 + Color233 + Color234 + Color235 + Color236 + Color237 + Color238 + Color239 + Color240 + Color241 + Color242 + Color243 + Color244 + Color245 + Color246 + Color247 + Color248 + Color249 + Color250 + Color251 + Color252 + Color253 + Color254 + Color255 + ColorAliceBlue + ColorAntiqueWhite + ColorAquaMarine + ColorAzure + ColorBeige + ColorBisque + ColorBlanchedAlmond + ColorBlueViolet + ColorBrown + ColorBurlyWood + ColorCadetBlue + ColorChartreuse + ColorChocolate + ColorCoral + ColorCornflowerBlue + ColorCornsilk + ColorCrimson + ColorDarkBlue + ColorDarkCyan + ColorDarkGoldenrod + ColorDarkGray + ColorDarkGreen + ColorDarkKhaki + ColorDarkMagenta + ColorDarkOliveGreen + ColorDarkOrange + ColorDarkOrchid + ColorDarkRed + ColorDarkSalmon + ColorDarkSeaGreen + ColorDarkSlateBlue + ColorDarkSlateGray + ColorDarkTurquoise + ColorDarkViolet + ColorDeepPink + ColorDeepSkyBlue + ColorDimGray + ColorDodgerBlue + ColorFireBrick + ColorFloralWhite + ColorForestGreen + ColorGainsboro + ColorGhostWhite + ColorGold + ColorGoldenrod + ColorGreenYellow + ColorHoneydew + ColorHotPink + ColorIndianRed + ColorIndigo + ColorIvory + ColorKhaki + ColorLavender + ColorLavenderBlush + ColorLawnGreen + ColorLemonChiffon + ColorLightBlue + ColorLightCoral + ColorLightCyan + ColorLightGoldenrodYellow + ColorLightGray + ColorLightGreen + ColorLightPink + ColorLightSalmon + ColorLightSeaGreen + ColorLightSkyBlue + ColorLightSlateGray + ColorLightSteelBlue + ColorLightYellow + ColorLimeGreen + ColorLinen + ColorMediumAquamarine + ColorMediumBlue + ColorMediumOrchid + ColorMediumPurple + ColorMediumSeaGreen + ColorMediumSlateBlue + ColorMediumSpringGreen + ColorMediumTurquoise + ColorMediumVioletRed + ColorMidnightBlue + ColorMintCream + ColorMistyRose + ColorMoccasin + ColorNavajoWhite + ColorOldLace + ColorOliveDrab + ColorOrange + ColorOrangeRed + ColorOrchid + ColorPaleGoldenrod + ColorPaleGreen + ColorPaleTurquoise + ColorPaleVioletRed + ColorPapayaWhip + ColorPeachPuff + ColorPeru + ColorPink + ColorPlum + ColorPowderBlue + ColorRebeccaPurple + ColorRosyBrown + ColorRoyalBlue + ColorSaddleBrown + ColorSalmon + ColorSandyBrown + ColorSeaGreen + ColorSeashell + ColorSienna + ColorSkyblue + ColorSlateBlue + ColorSlateGray + ColorSnow + ColorSpringGreen + ColorSteelBlue + ColorTan + ColorThistle + ColorTomato + ColorTurquoise + ColorViolet + ColorWheat + ColorWhiteSmoke + ColorYellowGreen +) + +// These are aliases for the color gray, because some of us spell +// it as grey. +const ( + ColorGrey = ColorGray + ColorDimGrey = ColorDimGray + ColorDarkGrey = ColorDarkGray + ColorDarkSlateGrey = ColorDarkSlateGray + ColorLightGrey = ColorLightGray + ColorLightSlateGrey = ColorLightSlateGray + ColorSlateGrey = ColorSlateGray +) + +// ColorValues maps color constants to their RGB values. +var ColorValues = map[Color]int32{ + ColorBlack: 0x000000, + ColorMaroon: 0x800000, + ColorGreen: 0x008000, + ColorOlive: 0x808000, + ColorNavy: 0x000080, + ColorPurple: 0x800080, + ColorTeal: 0x008080, + ColorSilver: 0xC0C0C0, + ColorGray: 0x808080, + ColorRed: 0xFF0000, + ColorLime: 0x00FF00, + ColorYellow: 0xFFFF00, + ColorBlue: 0x0000FF, + ColorFuchsia: 0xFF00FF, + ColorAqua: 0x00FFFF, + ColorWhite: 0xFFFFFF, + Color16: 0x000000, // black + Color17: 0x00005F, + Color18: 0x000087, + Color19: 0x0000AF, + Color20: 0x0000D7, + Color21: 0x0000FF, // blue + Color22: 0x005F00, + Color23: 0x005F5F, + Color24: 0x005F87, + Color25: 0x005FAF, + Color26: 0x005FD7, + Color27: 0x005FFF, + Color28: 0x008700, + Color29: 0x00875F, + Color30: 0x008787, + Color31: 0x0087Af, + Color32: 0x0087D7, + Color33: 0x0087FF, + Color34: 0x00AF00, + Color35: 0x00AF5F, + Color36: 0x00AF87, + Color37: 0x00AFAF, + Color38: 0x00AFD7, + Color39: 0x00AFFF, + Color40: 0x00D700, + Color41: 0x00D75F, + Color42: 0x00D787, + Color43: 0x00D7AF, + Color44: 0x00D7D7, + Color45: 0x00D7FF, + Color46: 0x00FF00, // lime + Color47: 0x00FF5F, + Color48: 0x00FF87, + Color49: 0x00FFAF, + Color50: 0x00FFd7, + Color51: 0x00FFFF, // aqua + Color52: 0x5F0000, + Color53: 0x5F005F, + Color54: 0x5F0087, + Color55: 0x5F00AF, + Color56: 0x5F00D7, + Color57: 0x5F00FF, + Color58: 0x5F5F00, + Color59: 0x5F5F5F, + Color60: 0x5F5F87, + Color61: 0x5F5FAF, + Color62: 0x5F5FD7, + Color63: 0x5F5FFF, + Color64: 0x5F8700, + Color65: 0x5F875F, + Color66: 0x5F8787, + Color67: 0x5F87AF, + Color68: 0x5F87D7, + Color69: 0x5F87FF, + Color70: 0x5FAF00, + Color71: 0x5FAF5F, + Color72: 0x5FAF87, + Color73: 0x5FAFAF, + Color74: 0x5FAFD7, + Color75: 0x5FAFFF, + Color76: 0x5FD700, + Color77: 0x5FD75F, + Color78: 0x5FD787, + Color79: 0x5FD7AF, + Color80: 0x5FD7D7, + Color81: 0x5FD7FF, + Color82: 0x5FFF00, + Color83: 0x5FFF5F, + Color84: 0x5FFF87, + Color85: 0x5FFFAF, + Color86: 0x5FFFD7, + Color87: 0x5FFFFF, + Color88: 0x870000, + Color89: 0x87005F, + Color90: 0x870087, + Color91: 0x8700AF, + Color92: 0x8700D7, + Color93: 0x8700FF, + Color94: 0x875F00, + Color95: 0x875F5F, + Color96: 0x875F87, + Color97: 0x875FAF, + Color98: 0x875FD7, + Color99: 0x875FFF, + Color100: 0x878700, + Color101: 0x87875F, + Color102: 0x878787, + Color103: 0x8787AF, + Color104: 0x8787D7, + Color105: 0x8787FF, + Color106: 0x87AF00, + Color107: 0x87AF5F, + Color108: 0x87AF87, + Color109: 0x87AFAF, + Color110: 0x87AFD7, + Color111: 0x87AFFF, + Color112: 0x87D700, + Color113: 0x87D75F, + Color114: 0x87D787, + Color115: 0x87D7AF, + Color116: 0x87D7D7, + Color117: 0x87D7FF, + Color118: 0x87FF00, + Color119: 0x87FF5F, + Color120: 0x87FF87, + Color121: 0x87FFAF, + Color122: 0x87FFD7, + Color123: 0x87FFFF, + Color124: 0xAF0000, + Color125: 0xAF005F, + Color126: 0xAF0087, + Color127: 0xAF00AF, + Color128: 0xAF00D7, + Color129: 0xAF00FF, + Color130: 0xAF5F00, + Color131: 0xAF5F5F, + Color132: 0xAF5F87, + Color133: 0xAF5FAF, + Color134: 0xAF5FD7, + Color135: 0xAF5FFF, + Color136: 0xAF8700, + Color137: 0xAF875F, + Color138: 0xAF8787, + Color139: 0xAF87AF, + Color140: 0xAF87D7, + Color141: 0xAF87FF, + Color142: 0xAFAF00, + Color143: 0xAFAF5F, + Color144: 0xAFAF87, + Color145: 0xAFAFAF, + Color146: 0xAFAFD7, + Color147: 0xAFAFFF, + Color148: 0xAFD700, + Color149: 0xAFD75F, + Color150: 0xAFD787, + Color151: 0xAFD7AF, + Color152: 0xAFD7D7, + Color153: 0xAFD7FF, + Color154: 0xAFFF00, + Color155: 0xAFFF5F, + Color156: 0xAFFF87, + Color157: 0xAFFFAF, + Color158: 0xAFFFD7, + Color159: 0xAFFFFF, + Color160: 0xD70000, + Color161: 0xD7005F, + Color162: 0xD70087, + Color163: 0xD700AF, + Color164: 0xD700D7, + Color165: 0xD700FF, + Color166: 0xD75F00, + Color167: 0xD75F5F, + Color168: 0xD75F87, + Color169: 0xD75FAF, + Color170: 0xD75FD7, + Color171: 0xD75FFF, + Color172: 0xD78700, + Color173: 0xD7875F, + Color174: 0xD78787, + Color175: 0xD787AF, + Color176: 0xD787D7, + Color177: 0xD787FF, + Color178: 0xD7AF00, + Color179: 0xD7AF5F, + Color180: 0xD7AF87, + Color181: 0xD7AFAF, + Color182: 0xD7AFD7, + Color183: 0xD7AFFF, + Color184: 0xD7D700, + Color185: 0xD7D75F, + Color186: 0xD7D787, + Color187: 0xD7D7AF, + Color188: 0xD7D7D7, + Color189: 0xD7D7FF, + Color190: 0xD7FF00, + Color191: 0xD7FF5F, + Color192: 0xD7FF87, + Color193: 0xD7FFAF, + Color194: 0xD7FFD7, + Color195: 0xD7FFFF, + Color196: 0xFF0000, // red + Color197: 0xFF005F, + Color198: 0xFF0087, + Color199: 0xFF00AF, + Color200: 0xFF00D7, + Color201: 0xFF00FF, // fuchsia + Color202: 0xFF5F00, + Color203: 0xFF5F5F, + Color204: 0xFF5F87, + Color205: 0xFF5FAF, + Color206: 0xFF5FD7, + Color207: 0xFF5FFF, + Color208: 0xFF8700, + Color209: 0xFF875F, + Color210: 0xFF8787, + Color211: 0xFF87AF, + Color212: 0xFF87D7, + Color213: 0xFF87FF, + Color214: 0xFFAF00, + Color215: 0xFFAF5F, + Color216: 0xFFAF87, + Color217: 0xFFAFAF, + Color218: 0xFFAFD7, + Color219: 0xFFAFFF, + Color220: 0xFFD700, + Color221: 0xFFD75F, + Color222: 0xFFD787, + Color223: 0xFFD7AF, + Color224: 0xFFD7D7, + Color225: 0xFFD7FF, + Color226: 0xFFFF00, // yellow + Color227: 0xFFFF5F, + Color228: 0xFFFF87, + Color229: 0xFFFFAF, + Color230: 0xFFFFD7, + Color231: 0xFFFFFF, // white + Color232: 0x080808, + Color233: 0x121212, + Color234: 0x1C1C1C, + Color235: 0x262626, + Color236: 0x303030, + Color237: 0x3A3A3A, + Color238: 0x444444, + Color239: 0x4E4E4E, + Color240: 0x585858, + Color241: 0x626262, + Color242: 0x6C6C6C, + Color243: 0x767676, + Color244: 0x808080, // grey + Color245: 0x8A8A8A, + Color246: 0x949494, + Color247: 0x9E9E9E, + Color248: 0xA8A8A8, + Color249: 0xB2B2B2, + Color250: 0xBCBCBC, + Color251: 0xC6C6C6, + Color252: 0xD0D0D0, + Color253: 0xDADADA, + Color254: 0xE4E4E4, + Color255: 0xEEEEEE, + ColorAliceBlue: 0xF0F8FF, + ColorAntiqueWhite: 0xFAEBD7, + ColorAquaMarine: 0x7FFFD4, + ColorAzure: 0xF0FFFF, + ColorBeige: 0xF5F5DC, + ColorBisque: 0xFFE4C4, + ColorBlanchedAlmond: 0xFFEBCD, + ColorBlueViolet: 0x8A2BE2, + ColorBrown: 0xA52A2A, + ColorBurlyWood: 0xDEB887, + ColorCadetBlue: 0x5F9EA0, + ColorChartreuse: 0x7FFF00, + ColorChocolate: 0xD2691E, + ColorCoral: 0xFF7F50, + ColorCornflowerBlue: 0x6495ED, + ColorCornsilk: 0xFFF8DC, + ColorCrimson: 0xDC143C, + ColorDarkBlue: 0x00008B, + ColorDarkCyan: 0x008B8B, + ColorDarkGoldenrod: 0xB8860B, + ColorDarkGray: 0xA9A9A9, + ColorDarkGreen: 0x006400, + ColorDarkKhaki: 0xBDB76B, + ColorDarkMagenta: 0x8B008B, + ColorDarkOliveGreen: 0x556B2F, + ColorDarkOrange: 0xFF8C00, + ColorDarkOrchid: 0x9932CC, + ColorDarkRed: 0x8B0000, + ColorDarkSalmon: 0xE9967A, + ColorDarkSeaGreen: 0x8FBC8F, + ColorDarkSlateBlue: 0x483D8B, + ColorDarkSlateGray: 0x2F4F4F, + ColorDarkTurquoise: 0x00CED1, + ColorDarkViolet: 0x9400D3, + ColorDeepPink: 0xFF1493, + ColorDeepSkyBlue: 0x00BFFF, + ColorDimGray: 0x696969, + ColorDodgerBlue: 0x1E90FF, + ColorFireBrick: 0xB22222, + ColorFloralWhite: 0xFFFAF0, + ColorForestGreen: 0x228B22, + ColorGainsboro: 0xDCDCDC, + ColorGhostWhite: 0xF8F8FF, + ColorGold: 0xFFD700, + ColorGoldenrod: 0xDAA520, + ColorGreenYellow: 0xADFF2F, + ColorHoneydew: 0xF0FFF0, + ColorHotPink: 0xFF69B4, + ColorIndianRed: 0xCD5C5C, + ColorIndigo: 0x4B0082, + ColorIvory: 0xFFFFF0, + ColorKhaki: 0xF0E68C, + ColorLavender: 0xE6E6FA, + ColorLavenderBlush: 0xFFF0F5, + ColorLawnGreen: 0x7CFC00, + ColorLemonChiffon: 0xFFFACD, + ColorLightBlue: 0xADD8E6, + ColorLightCoral: 0xF08080, + ColorLightCyan: 0xE0FFFF, + ColorLightGoldenrodYellow: 0xFAFAD2, + ColorLightGray: 0xD3D3D3, + ColorLightGreen: 0x90EE90, + ColorLightPink: 0xFFB6C1, + ColorLightSalmon: 0xFFA07A, + ColorLightSeaGreen: 0x20B2AA, + ColorLightSkyBlue: 0x87CEFA, + ColorLightSlateGray: 0x778899, + ColorLightSteelBlue: 0xB0C4DE, + ColorLightYellow: 0xFFFFE0, + ColorLimeGreen: 0x32CD32, + ColorLinen: 0xFAF0E6, + ColorMediumAquamarine: 0x66CDAA, + ColorMediumBlue: 0x0000CD, + ColorMediumOrchid: 0xBA55D3, + ColorMediumPurple: 0x9370DB, + ColorMediumSeaGreen: 0x3CB371, + ColorMediumSlateBlue: 0x7B68EE, + ColorMediumSpringGreen: 0x00FA9A, + ColorMediumTurquoise: 0x48D1CC, + ColorMediumVioletRed: 0xC71585, + ColorMidnightBlue: 0x191970, + ColorMintCream: 0xF5FFFA, + ColorMistyRose: 0xFFE4E1, + ColorMoccasin: 0xFFE4B5, + ColorNavajoWhite: 0xFFDEAD, + ColorOldLace: 0xFDF5E6, + ColorOliveDrab: 0x6B8E23, + ColorOrange: 0xFFA500, + ColorOrangeRed: 0xFF4500, + ColorOrchid: 0xDA70D6, + ColorPaleGoldenrod: 0xEEE8AA, + ColorPaleGreen: 0x98FB98, + ColorPaleTurquoise: 0xAFEEEE, + ColorPaleVioletRed: 0xDB7093, + ColorPapayaWhip: 0xFFEFD5, + ColorPeachPuff: 0xFFDAB9, + ColorPeru: 0xCD853F, + ColorPink: 0xFFC0CB, + ColorPlum: 0xDDA0DD, + ColorPowderBlue: 0xB0E0E6, + ColorRebeccaPurple: 0x663399, + ColorRosyBrown: 0xBC8F8F, + ColorRoyalBlue: 0x4169E1, + ColorSaddleBrown: 0x8B4513, + ColorSalmon: 0xFA8072, + ColorSandyBrown: 0xF4A460, + ColorSeaGreen: 0x2E8B57, + ColorSeashell: 0xFFF5EE, + ColorSienna: 0xA0522D, + ColorSkyblue: 0x87CEEB, + ColorSlateBlue: 0x6A5ACD, + ColorSlateGray: 0x708090, + ColorSnow: 0xFFFAFA, + ColorSpringGreen: 0x00FF7F, + ColorSteelBlue: 0x4682B4, + ColorTan: 0xD2B48C, + ColorThistle: 0xD8BFD8, + ColorTomato: 0xFF6347, + ColorTurquoise: 0x40E0D0, + ColorViolet: 0xEE82EE, + ColorWheat: 0xF5DEB3, + ColorWhiteSmoke: 0xF5F5F5, + ColorYellowGreen: 0x9ACD32, +} + +// ColorNames holds the written names of colors. Useful to present a list of +// recognized named colors. +var ColorNames = map[string]Color{ + "black": ColorBlack, + "maroon": ColorMaroon, + "green": ColorGreen, + "olive": ColorOlive, + "navy": ColorNavy, + "purple": ColorPurple, + "teal": ColorTeal, + "silver": ColorSilver, + "gray": ColorGray, + "red": ColorRed, + "lime": ColorLime, + "yellow": ColorYellow, + "blue": ColorBlue, + "fuchsia": ColorFuchsia, + "aqua": ColorAqua, + "white": ColorWhite, + "aliceblue": ColorAliceBlue, + "antiquewhite": ColorAntiqueWhite, + "aquamarine": ColorAquaMarine, + "azure": ColorAzure, + "beige": ColorBeige, + "bisque": ColorBisque, + "blanchedalmond": ColorBlanchedAlmond, + "blueviolet": ColorBlueViolet, + "brown": ColorBrown, + "burlywood": ColorBurlyWood, + "cadetblue": ColorCadetBlue, + "chartreuse": ColorChartreuse, + "chocolate": ColorChocolate, + "coral": ColorCoral, + "cornflowerblue": ColorCornflowerBlue, + "cornsilk": ColorCornsilk, + "crimson": ColorCrimson, + "darkblue": ColorDarkBlue, + "darkcyan": ColorDarkCyan, + "darkgoldenrod": ColorDarkGoldenrod, + "darkgray": ColorDarkGray, + "darkgreen": ColorDarkGreen, + "darkkhaki": ColorDarkKhaki, + "darkmagenta": ColorDarkMagenta, + "darkolivegreen": ColorDarkOliveGreen, + "darkorange": ColorDarkOrange, + "darkorchid": ColorDarkOrchid, + "darkred": ColorDarkRed, + "darksalmon": ColorDarkSalmon, + "darkseagreen": ColorDarkSeaGreen, + "darkslateblue": ColorDarkSlateBlue, + "darkslategray": ColorDarkSlateGray, + "darkturquoise": ColorDarkTurquoise, + "darkviolet": ColorDarkViolet, + "deeppink": ColorDeepPink, + "deepskyblue": ColorDeepSkyBlue, + "dimgray": ColorDimGray, + "dodgerblue": ColorDodgerBlue, + "firebrick": ColorFireBrick, + "floralwhite": ColorFloralWhite, + "forestgreen": ColorForestGreen, + "gainsboro": ColorGainsboro, + "ghostwhite": ColorGhostWhite, + "gold": ColorGold, + "goldenrod": ColorGoldenrod, + "greenyellow": ColorGreenYellow, + "honeydew": ColorHoneydew, + "hotpink": ColorHotPink, + "indianred": ColorIndianRed, + "indigo": ColorIndigo, + "ivory": ColorIvory, + "khaki": ColorKhaki, + "lavender": ColorLavender, + "lavenderblush": ColorLavenderBlush, + "lawngreen": ColorLawnGreen, + "lemonchiffon": ColorLemonChiffon, + "lightblue": ColorLightBlue, + "lightcoral": ColorLightCoral, + "lightcyan": ColorLightCyan, + "lightgoldenrodyellow": ColorLightGoldenrodYellow, + "lightgray": ColorLightGray, + "lightgreen": ColorLightGreen, + "lightpink": ColorLightPink, + "lightsalmon": ColorLightSalmon, + "lightseagreen": ColorLightSeaGreen, + "lightskyblue": ColorLightSkyBlue, + "lightslategray": ColorLightSlateGray, + "lightsteelblue": ColorLightSteelBlue, + "lightyellow": ColorLightYellow, + "limegreen": ColorLimeGreen, + "linen": ColorLinen, + "mediumaquamarine": ColorMediumAquamarine, + "mediumblue": ColorMediumBlue, + "mediumorchid": ColorMediumOrchid, + "mediumpurple": ColorMediumPurple, + "mediumseagreen": ColorMediumSeaGreen, + "mediumslateblue": ColorMediumSlateBlue, + "mediumspringgreen": ColorMediumSpringGreen, + "mediumturquoise": ColorMediumTurquoise, + "mediumvioletred": ColorMediumVioletRed, + "midnightblue": ColorMidnightBlue, + "mintcream": ColorMintCream, + "mistyrose": ColorMistyRose, + "moccasin": ColorMoccasin, + "navajowhite": ColorNavajoWhite, + "oldlace": ColorOldLace, + "olivedrab": ColorOliveDrab, + "orange": ColorOrange, + "orangered": ColorOrangeRed, + "orchid": ColorOrchid, + "palegoldenrod": ColorPaleGoldenrod, + "palegreen": ColorPaleGreen, + "paleturquoise": ColorPaleTurquoise, + "palevioletred": ColorPaleVioletRed, + "papayawhip": ColorPapayaWhip, + "peachpuff": ColorPeachPuff, + "peru": ColorPeru, + "pink": ColorPink, + "plum": ColorPlum, + "powderblue": ColorPowderBlue, + "rebeccapurple": ColorRebeccaPurple, + "rosybrown": ColorRosyBrown, + "royalblue": ColorRoyalBlue, + "saddlebrown": ColorSaddleBrown, + "salmon": ColorSalmon, + "sandybrown": ColorSandyBrown, + "seagreen": ColorSeaGreen, + "seashell": ColorSeashell, + "sienna": ColorSienna, + "skyblue": ColorSkyblue, + "slateblue": ColorSlateBlue, + "slategray": ColorSlateGray, + "snow": ColorSnow, + "springgreen": ColorSpringGreen, + "steelblue": ColorSteelBlue, + "tan": ColorTan, + "thistle": ColorThistle, + "tomato": ColorTomato, + "turquoise": ColorTurquoise, + "violet": ColorViolet, + "wheat": ColorWheat, + "whitesmoke": ColorWhiteSmoke, + "yellowgreen": ColorYellowGreen, + "grey": ColorGray, + "dimgrey": ColorDimGray, + "darkgrey": ColorDarkGray, + "darkslategrey": ColorDarkSlateGray, + "lightgrey": ColorLightGray, + "lightslategrey": ColorLightSlateGray, + "slategrey": ColorSlateGray, +} + +// Hex returns the color's hexadecimal RGB 24-bit value with each component +// consisting of a single byte, ala R << 16 | G << 8 | B. If the color +// is unknown or unset, -1 is returned. +func (c Color) Hex() int32 { + if c&ColorIsRGB != 0 { + return (int32(c) & 0xffffff) + } + if v, ok := ColorValues[c]; ok { + return v + } + return -1 +} + +// RGB returns the red, green, and blue components of the color, with +// each component represented as a value 0-255. In the event that the +// color cannot be broken up (not set usually), -1 is returned for each value. +func (c Color) RGB() (int32, int32, int32) { + v := c.Hex() + if v < 0 { + return -1, -1, -1 + } + return (v >> 16) & 0xff, (v >> 8) & 0xff, v & 0xff +} + +// NewRGBColor returns a new color with the given red, green, and blue values. +// Each value must be represented in the range 0-255. +func NewRGBColor(r, g, b int32) Color { + return NewHexColor(((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff)) +} + +// NewHexColor returns a color using the given 24-bit RGB value. +func NewHexColor(v int32) Color { + return ColorIsRGB | Color(v) +} + +// GetColor creates a Color from a color name (W3C name). A hex value may +// be supplied as a string in the format "#ffffff". +func GetColor(name string) Color { + if c, ok := ColorNames[name]; ok { + return c + } + if len(name) == 7 && name[0] == '#' { + if v, e := strconv.ParseInt(name[1:], 16, 32); e == nil { + return NewHexColor(int32(v)) + } + } + return ColorDefault +} diff --git a/vendor/github.com/gdamore/tcell/colorfit.go b/vendor/github.com/gdamore/tcell/colorfit.go new file mode 100644 index 0000000..b7740b8 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/colorfit.go @@ -0,0 +1,52 @@ +// Copyright 2016 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "github.com/lucasb-eyer/go-colorful" + "math" +) + +// FindColor attempts to find a given color, or the best match possible for it, +// from the palette given. This is an expensive operation, so results should +// be cached by the caller. +func FindColor(c Color, palette []Color) Color { + match := ColorDefault + dist := float64(0) + r, g, b := c.RGB() + c1 := colorful.Color{ + R: float64(r) / 255.0, + G: float64(g) / 255.0, + B: float64(b) / 255.0, + } + for _, d := range palette { + r, g, b = d.RGB() + c2 := colorful.Color{ + R: float64(r) / 255.0, + G: float64(g) / 255.0, + B: float64(b) / 255.0, + } + // CIE94 is more accurate, but really really expensive. + nd := c1.DistanceCIE76(c2) + if math.IsNaN(nd) { + nd = math.Inf(1) + } + if match == ColorDefault || nd < dist { + match = d + dist = nd + } + } + return match +} diff --git a/vendor/github.com/gdamore/tcell/console_stub.go b/vendor/github.com/gdamore/tcell/console_stub.go new file mode 100644 index 0000000..fda2f09 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/console_stub.go @@ -0,0 +1,23 @@ +// +build !windows + +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// NewConsoleScreen returns a console based screen. This platform +// doesn't have support for any, so it returns nil and a suitable error. +func NewConsoleScreen() (Screen, error) { + return nil, ErrNoScreen +} diff --git a/vendor/github.com/gdamore/tcell/console_win.go b/vendor/github.com/gdamore/tcell/console_win.go new file mode 100644 index 0000000..0adb978 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/console_win.go @@ -0,0 +1,1170 @@ +// +build windows + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "errors" + "fmt" + "os" + "strings" + "sync" + "syscall" + "unicode/utf16" + "unsafe" +) + +type cScreen struct { + in syscall.Handle + out syscall.Handle + cancelflag syscall.Handle + scandone chan struct{} + evch chan Event + quit chan struct{} + curx int + cury int + style Style + clear bool + fini bool + vten bool + truecolor bool + + w int + h int + + oscreen consoleInfo + ocursor cursorInfo + oimode uint32 + oomode uint32 + cells CellBuffer + + sync.Mutex +} + +var winLock sync.Mutex + +var winPalette = []Color{ + ColorBlack, + ColorMaroon, + ColorGreen, + ColorNavy, + ColorOlive, + ColorPurple, + ColorTeal, + ColorSilver, + ColorGray, + ColorRed, + ColorLime, + ColorBlue, + ColorYellow, + ColorFuchsia, + ColorAqua, + ColorWhite, +} + +var winColors = map[Color]Color{ + ColorBlack: ColorBlack, + ColorMaroon: ColorMaroon, + ColorGreen: ColorGreen, + ColorNavy: ColorNavy, + ColorOlive: ColorOlive, + ColorPurple: ColorPurple, + ColorTeal: ColorTeal, + ColorSilver: ColorSilver, + ColorGray: ColorGray, + ColorRed: ColorRed, + ColorLime: ColorLime, + ColorBlue: ColorBlue, + ColorYellow: ColorYellow, + ColorFuchsia: ColorFuchsia, + ColorAqua: ColorAqua, + ColorWhite: ColorWhite, +} + +var ( + k32 = syscall.NewLazyDLL("kernel32.dll") + u32 = syscall.NewLazyDLL("user32.dll") +) + +// We have to bring in the kernel32 and user32 DLLs directly, so we can get +// access to some system calls that the core Go API lacks. +// +// Note that Windows appends some functions with W to indicate that wide +// characters (Unicode) are in use. The documentation refers to them +// without this suffix, as the resolution is made via preprocessor. +var ( + procReadConsoleInput = k32.NewProc("ReadConsoleInputW") + procWaitForMultipleObjects = k32.NewProc("WaitForMultipleObjects") + procCreateEvent = k32.NewProc("CreateEventW") + procSetEvent = k32.NewProc("SetEvent") + procGetConsoleCursorInfo = k32.NewProc("GetConsoleCursorInfo") + procSetConsoleCursorInfo = k32.NewProc("SetConsoleCursorInfo") + procSetConsoleCursorPosition = k32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = k32.NewProc("SetConsoleMode") + procGetConsoleMode = k32.NewProc("GetConsoleMode") + procGetConsoleScreenBufferInfo = k32.NewProc("GetConsoleScreenBufferInfo") + procFillConsoleOutputAttribute = k32.NewProc("FillConsoleOutputAttribute") + procFillConsoleOutputCharacter = k32.NewProc("FillConsoleOutputCharacterW") + procSetConsoleWindowInfo = k32.NewProc("SetConsoleWindowInfo") + procSetConsoleScreenBufferSize = k32.NewProc("SetConsoleScreenBufferSize") + procSetConsoleTextAttribute = k32.NewProc("SetConsoleTextAttribute") + procMessageBeep = u32.NewProc("MessageBeep") +) + +const ( + w32Infinite = ^uintptr(0) + w32WaitObject0 = uintptr(0) +) + +const ( + // VT100/XTerm escapes understood by the console + vtShowCursor = "\x1b[?25h" + vtHideCursor = "\x1b[?25l" + vtCursorPos = "\x1b[%d;%dH" // Note that it is Y then X + vtSgr0 = "\x1b[0m" + vtBold = "\x1b[1m" + vtUnderline = "\x1b[4m" + vtBlink = "\x1b[5m" // Not sure this is processed + vtReverse = "\x1b[7m" + vtSetFg = "\x1b[38;2;%d;%d;%dm" // RGB + vtSetBg = "\x1b[48;2;%d;%d;%dm" // RGB +) + +// NewConsoleScreen returns a Screen for the Windows console associated +// with the current process. The Screen makes use of the Windows Console +// API to display content and read events. +func NewConsoleScreen() (Screen, error) { + return &cScreen{}, nil +} + +func (s *cScreen) Init() error { + s.evch = make(chan Event, 10) + s.quit = make(chan struct{}) + s.scandone = make(chan struct{}) + + in, e := syscall.Open("CONIN$", syscall.O_RDWR, 0) + if e != nil { + return e + } + s.in = in + out, e := syscall.Open("CONOUT$", syscall.O_RDWR, 0) + if e != nil { + syscall.Close(s.in) + return e + } + s.out = out + + s.truecolor = true + + // ConEmu handling of colors and scrolling when in terminal + // mode is extremely problematic at the best. The color + // palette will scroll even though characters do not, when + // emiting stuff for the last character. In the future we + // might change this to look at specific versions of ConEmu + // if they fix the bug. + if os.Getenv("ConEmuPID") != "" { + s.truecolor = false + } + switch os.Getenv("TCELL_TRUECOLOR") { + case "disable": + s.truecolor = false + case "enable": + s.truecolor = true + } + + cf, _, e := procCreateEvent.Call( + uintptr(0), + uintptr(1), + uintptr(0), + uintptr(0)) + if cf == uintptr(0) { + return e + } + s.cancelflag = syscall.Handle(cf) + + s.Lock() + + s.curx = -1 + s.cury = -1 + s.style = StyleDefault + s.getCursorInfo(&s.ocursor) + s.getConsoleInfo(&s.oscreen) + s.getOutMode(&s.oomode) + s.getInMode(&s.oimode) + s.resize() + + s.fini = false + s.setInMode(modeResizeEn | modeExtndFlg) + + // 24-bit color is opt-in for now, because we can't figure out + // to make it work consistently. + if s.truecolor { + s.setOutMode(modeVtOutput | modeNoAutoNL | modeCookedOut) + var omode uint32 + s.getOutMode(&omode) + if omode&modeVtOutput == modeVtOutput { + s.vten = true + } else { + s.truecolor = false + } + } else { + s.setOutMode(0) + } + + s.clearScreen(s.style) + s.hideCursor() + s.Unlock() + go s.scanInput() + + return nil +} + +func (s *cScreen) CharacterSet() string { + // We are always UTF-16LE on Windows + return "UTF-16LE" +} + +func (s *cScreen) EnableMouse() { + s.setInMode(modeResizeEn | modeMouseEn | modeExtndFlg) +} + +func (s *cScreen) DisableMouse() { + s.setInMode(modeResizeEn | modeExtndFlg) +} + +func (s *cScreen) Fini() { + s.Lock() + s.style = StyleDefault + s.curx = -1 + s.cury = -1 + s.fini = true + s.vten = false + s.Unlock() + + s.setCursorInfo(&s.ocursor) + s.setInMode(s.oimode) + s.setOutMode(s.oomode) + s.setBufferSize(int(s.oscreen.size.x), int(s.oscreen.size.y)) + s.clearScreen(StyleDefault) + s.setCursorPos(0, 0) + procSetConsoleTextAttribute.Call( + uintptr(s.out), + uintptr(s.mapStyle(StyleDefault))) + + close(s.quit) + procSetEvent.Call(uintptr(s.cancelflag)) + // Block until scanInput returns; this prevents a race condition on Win 8+ + // which causes syscall.Close to block until another keypress is read. + <-s.scandone + syscall.Close(s.in) + syscall.Close(s.out) +} + +func (s *cScreen) PostEventWait(ev Event) { + s.evch <- ev +} + +func (s *cScreen) PostEvent(ev Event) error { + select { + case s.evch <- ev: + return nil + default: + return ErrEventQFull + } +} + +func (s *cScreen) PollEvent() Event { + select { + case <-s.quit: + return nil + case ev := <-s.evch: + return ev + } +} + +type cursorInfo struct { + size uint32 + visible uint32 +} + +type coord struct { + x int16 + y int16 +} + +func (c coord) uintptr() uintptr { + // little endian, put x first + return uintptr(c.x) | (uintptr(c.y) << 16) +} + +type rect struct { + left int16 + top int16 + right int16 + bottom int16 +} + +func (s *cScreen) emitVtString(vs string) { + esc := utf16.Encode([]rune(vs)) + syscall.WriteConsole(s.out, &esc[0], uint32(len(esc)), nil, nil) +} + +func (s *cScreen) showCursor() { + if s.vten { + s.emitVtString(vtShowCursor) + } else { + s.setCursorInfo(&cursorInfo{size: 100, visible: 1}) + } +} + +func (s *cScreen) hideCursor() { + if s.vten { + s.emitVtString(vtHideCursor) + } else { + s.setCursorInfo(&cursorInfo{size: 1, visible: 0}) + } +} + +func (s *cScreen) ShowCursor(x, y int) { + s.Lock() + if !s.fini { + s.curx = x + s.cury = y + } + s.doCursor() + s.Unlock() +} + +func (s *cScreen) doCursor() { + x, y := s.curx, s.cury + + if x < 0 || y < 0 || x >= s.w || y >= s.h { + s.hideCursor() + } else { + s.setCursorPos(x, y) + s.showCursor() + } +} + +func (s *cScreen) HideCursor() { + s.ShowCursor(-1, -1) +} + +type inputRecord struct { + typ uint16 + _ uint16 + data [16]byte +} + +const ( + keyEvent uint16 = 1 + mouseEvent uint16 = 2 + resizeEvent uint16 = 4 + menuEvent uint16 = 8 // don't use + focusEvent uint16 = 16 // don't use +) + +type mouseRecord struct { + x int16 + y int16 + btns uint32 + mod uint32 + flags uint32 +} + +const ( + mouseDoubleClick uint32 = 0x2 + mouseHWheeled uint32 = 0x8 + mouseVWheeled uint32 = 0x4 + mouseMoved uint32 = 0x1 +) + +type resizeRecord struct { + x int16 + y int16 +} + +type keyRecord struct { + isdown int32 + repeat uint16 + kcode uint16 + scode uint16 + ch uint16 + mod uint32 +} + +const ( + // Constants per Microsoft. We don't put the modifiers + // here. + vkCancel = 0x03 + vkBack = 0x08 // Backspace + vkTab = 0x09 + vkClear = 0x0c + vkReturn = 0x0d + vkPause = 0x13 + vkEscape = 0x1b + vkSpace = 0x20 + vkPrior = 0x21 // PgUp + vkNext = 0x22 // PgDn + vkEnd = 0x23 + vkHome = 0x24 + vkLeft = 0x25 + vkUp = 0x26 + vkRight = 0x27 + vkDown = 0x28 + vkPrint = 0x2a + vkPrtScr = 0x2c + vkInsert = 0x2d + vkDelete = 0x2e + vkHelp = 0x2f + vkF1 = 0x70 + vkF2 = 0x71 + vkF3 = 0x72 + vkF4 = 0x73 + vkF5 = 0x74 + vkF6 = 0x75 + vkF7 = 0x76 + vkF8 = 0x77 + vkF9 = 0x78 + vkF10 = 0x79 + vkF11 = 0x7a + vkF12 = 0x7b + vkF13 = 0x7c + vkF14 = 0x7d + vkF15 = 0x7e + vkF16 = 0x7f + vkF17 = 0x80 + vkF18 = 0x81 + vkF19 = 0x82 + vkF20 = 0x83 + vkF21 = 0x84 + vkF22 = 0x85 + vkF23 = 0x86 + vkF24 = 0x87 +) + +var vkKeys = map[uint16]Key{ + vkCancel: KeyCancel, + vkBack: KeyBackspace, + vkTab: KeyTab, + vkClear: KeyClear, + vkPause: KeyPause, + vkPrint: KeyPrint, + vkPrtScr: KeyPrint, + vkPrior: KeyPgUp, + vkNext: KeyPgDn, + vkReturn: KeyEnter, + vkEnd: KeyEnd, + vkHome: KeyHome, + vkLeft: KeyLeft, + vkUp: KeyUp, + vkRight: KeyRight, + vkDown: KeyDown, + vkInsert: KeyInsert, + vkDelete: KeyDelete, + vkHelp: KeyHelp, + vkF1: KeyF1, + vkF2: KeyF2, + vkF3: KeyF3, + vkF4: KeyF4, + vkF5: KeyF5, + vkF6: KeyF6, + vkF7: KeyF7, + vkF8: KeyF8, + vkF9: KeyF9, + vkF10: KeyF10, + vkF11: KeyF11, + vkF12: KeyF12, + vkF13: KeyF13, + vkF14: KeyF14, + vkF15: KeyF15, + vkF16: KeyF16, + vkF17: KeyF17, + vkF18: KeyF18, + vkF19: KeyF19, + vkF20: KeyF20, + vkF21: KeyF21, + vkF22: KeyF22, + vkF23: KeyF23, + vkF24: KeyF24, +} + +// NB: All Windows platforms are little endian. We assume this +// never, ever change. The following code is endian safe. and does +// not use unsafe pointers. +func getu32(v []byte) uint32 { + return uint32(v[0]) + (uint32(v[1]) << 8) + (uint32(v[2]) << 16) + (uint32(v[3]) << 24) +} +func geti32(v []byte) int32 { + return int32(getu32(v)) +} +func getu16(v []byte) uint16 { + return uint16(v[0]) + (uint16(v[1]) << 8) +} +func geti16(v []byte) int16 { + return int16(getu16(v)) +} + +// Convert windows dwControlKeyState to modifier mask +func mod2mask(cks uint32) ModMask { + mm := ModNone + // Left or right control + if (cks & (0x0008 | 0x0004)) != 0 { + mm |= ModCtrl + } + // Left or right alt + if (cks & (0x0002 | 0x0001)) != 0 { + mm |= ModAlt + } + // Any shift + if (cks & 0x0010) != 0 { + mm |= ModShift + } + return mm +} + +func mrec2btns(mbtns, flags uint32) ButtonMask { + btns := ButtonNone + if mbtns&0x1 != 0 { + btns |= Button1 + } + if mbtns&0x2 != 0 { + btns |= Button2 + } + if mbtns&0x4 != 0 { + btns |= Button3 + } + if mbtns&0x8 != 0 { + btns |= Button4 + } + if mbtns&0x10 != 0 { + btns |= Button5 + } + if mbtns&0x20 != 0 { + btns |= Button6 + } + if mbtns&0x40 != 0 { + btns |= Button7 + } + if mbtns&0x80 != 0 { + btns |= Button8 + } + + if flags&mouseVWheeled != 0 { + if mbtns&0x80000000 == 0 { + btns |= WheelUp + } else { + btns |= WheelDown + } + } + if flags&mouseHWheeled != 0 { + if mbtns&0x80000000 == 0 { + btns |= WheelRight + } else { + btns |= WheelLeft + } + } + return btns +} + +func (s *cScreen) getConsoleInput() error { + // cancelFlag comes first as WaitForMultipleObjects returns the lowest index + // in the event that both events are signalled. + waitObjects := []syscall.Handle{s.cancelflag, s.in} + // As arrays are contiguous in memory, a pointer to the first object is the + // same as a pointer to the array itself. + pWaitObjects := unsafe.Pointer(&waitObjects[0]) + + rv, _, er := procWaitForMultipleObjects.Call( + uintptr(len(waitObjects)), + uintptr(pWaitObjects), + uintptr(0), + w32Infinite) + // WaitForMultipleObjects returns WAIT_OBJECT_0 + the index. + switch rv { + case w32WaitObject0: // s.cancelFlag + return errors.New("cancelled") + case w32WaitObject0 + 1: // s.in + rec := &inputRecord{} + var nrec int32 + rv, _, er := procReadConsoleInput.Call( + uintptr(s.in), + uintptr(unsafe.Pointer(rec)), + uintptr(1), + uintptr(unsafe.Pointer(&nrec))) + if rv == 0 { + return er + } + if nrec != 1 { + return nil + } + switch rec.typ { + case keyEvent: + krec := &keyRecord{} + krec.isdown = geti32(rec.data[0:]) + krec.repeat = getu16(rec.data[4:]) + krec.kcode = getu16(rec.data[6:]) + krec.scode = getu16(rec.data[8:]) + krec.ch = getu16(rec.data[10:]) + krec.mod = getu32(rec.data[12:]) + + if krec.isdown == 0 || krec.repeat < 1 { + // its a key release event, ignore it + return nil + } + if krec.ch != 0 { + // synthesized key code + for krec.repeat > 0 { + // convert shift+tab to backtab + if mod2mask(krec.mod) == ModShift && krec.ch == vkTab { + s.PostEvent(NewEventKey(KeyBacktab, 0, + ModNone)) + } else { + s.PostEvent(NewEventKey(KeyRune, rune(krec.ch), + mod2mask(krec.mod))) + } + krec.repeat-- + } + return nil + } + key := KeyNUL // impossible on Windows + ok := false + if key, ok = vkKeys[krec.kcode]; !ok { + return nil + } + for krec.repeat > 0 { + s.PostEvent(NewEventKey(key, rune(krec.ch), + mod2mask(krec.mod))) + krec.repeat-- + } + + case mouseEvent: + var mrec mouseRecord + mrec.x = geti16(rec.data[0:]) + mrec.y = geti16(rec.data[2:]) + mrec.btns = getu32(rec.data[4:]) + mrec.mod = getu32(rec.data[8:]) + mrec.flags = getu32(rec.data[12:]) + btns := mrec2btns(mrec.btns, mrec.flags) + // we ignore double click, events are delivered normally + s.PostEvent(NewEventMouse(int(mrec.x), int(mrec.y), btns, + mod2mask(mrec.mod))) + + case resizeEvent: + var rrec resizeRecord + rrec.x = geti16(rec.data[0:]) + rrec.y = geti16(rec.data[2:]) + s.PostEvent(NewEventResize(int(rrec.x), int(rrec.y))) + + default: + } + default: + return er + } + + return nil +} + +func (s *cScreen) scanInput() { + for { + if e := s.getConsoleInput(); e != nil { + close(s.scandone) + return + } + } +} + +// Windows console can display 8 characters, in either low or high intensity +func (s *cScreen) Colors() int { + if s.vten { + return 1 << 24 + } + return 16 +} + +var vgaColors = map[Color]uint16{ + ColorBlack: 0, + ColorMaroon: 0x4, + ColorGreen: 0x2, + ColorNavy: 0x1, + ColorOlive: 0x6, + ColorPurple: 0x5, + ColorTeal: 0x3, + ColorSilver: 0x7, + ColorGrey: 0x8, + ColorRed: 0xc, + ColorLime: 0xa, + ColorBlue: 0x9, + ColorYellow: 0xe, + ColorFuchsia: 0xd, + ColorAqua: 0xb, + ColorWhite: 0xf, +} + +// Windows uses RGB signals +func mapColor2RGB(c Color) uint16 { + winLock.Lock() + if v, ok := winColors[c]; ok { + c = v + } else { + v = FindColor(c, winPalette) + winColors[c] = v + c = v + } + winLock.Unlock() + + if vc, ok := vgaColors[c]; ok { + return vc + } + return 0 +} + +// Map a tcell style to Windows attributes +func (s *cScreen) mapStyle(style Style) uint16 { + f, b, a := style.Decompose() + fa := s.oscreen.attrs & 0xf + ba := (s.oscreen.attrs) >> 4 & 0xf + if f != ColorDefault { + fa = mapColor2RGB(f) + } + if b != ColorDefault { + ba = mapColor2RGB(b) + } + var attr uint16 + // We simulate reverse by doing the color swap ourselves. + // Apparently windows cannot really do this except in DBCS + // views. + if a&AttrReverse != 0 { + attr = ba + attr |= (fa << 4) + } else { + attr = fa + attr |= (ba << 4) + } + if a&AttrBold != 0 { + attr |= 0x8 + } + if a&AttrDim != 0 { + attr &^= 0x8 + } + if a&AttrUnderline != 0 { + // Best effort -- doesn't seem to work though. + attr |= 0x8000 + } + // Blink is unsupported + return attr +} + +func (s *cScreen) SetCell(x, y int, style Style, ch ...rune) { + if len(ch) > 0 { + s.SetContent(x, y, ch[0], ch[1:], style) + } else { + s.SetContent(x, y, ' ', nil, style) + } +} + +func (s *cScreen) SetContent(x, y int, mainc rune, combc []rune, style Style) { + s.Lock() + if !s.fini { + s.cells.SetContent(x, y, mainc, combc, style) + } + s.Unlock() +} + +func (s *cScreen) GetContent(x, y int) (rune, []rune, Style, int) { + s.Lock() + mainc, combc, style, width := s.cells.GetContent(x, y) + s.Unlock() + return mainc, combc, style, width +} + +func (s *cScreen) sendVtStyle(style Style) { + esc := &strings.Builder{} + + fg, bg, attrs := style.Decompose() + + esc.WriteString(vtSgr0) + + if attrs&(AttrBold|AttrDim) == AttrBold { + esc.WriteString(vtBold) + } + if attrs&AttrBlink != 0 { + esc.WriteString(vtBlink) + } + if attrs&AttrUnderline != 0 { + esc.WriteString(vtUnderline) + } + if attrs&AttrReverse != 0 { + esc.WriteString(vtReverse) + } + if fg != ColorDefault { + r, g, b := fg.RGB() + fmt.Fprintf(esc, vtSetFg, r, g, b) + } + if bg != ColorDefault { + r, g, b := bg.RGB() + fmt.Fprintf(esc, vtSetBg, r, g, b) + } + s.emitVtString(esc.String()) +} + +func (s *cScreen) writeString(x, y int, style Style, ch []uint16) { + // we assume the caller has hidden the cursor + if len(ch) == 0 { + return + } + s.setCursorPos(x, y) + + if s.vten { + s.sendVtStyle(style) + } else { + procSetConsoleTextAttribute.Call( + uintptr(s.out), + uintptr(s.mapStyle(style))) + } + syscall.WriteConsole(s.out, &ch[0], uint32(len(ch)), nil, nil) +} + +func (s *cScreen) draw() { + // allocate a scratch line bit enough for no combining chars. + // if you have combining characters, you may pay for extra allocs. + if s.clear { + s.clearScreen(s.style) + s.clear = false + s.cells.Invalidate() + } + buf := make([]uint16, 0, s.w) + wcs := buf[:] + lstyle := Style(-1) // invalid attribute + + lx, ly := -1, -1 + ra := make([]rune, 1) + + for y := 0; y < int(s.h); y++ { + for x := 0; x < int(s.w); x++ { + mainc, combc, style, width := s.cells.GetContent(x, y) + dirty := s.cells.Dirty(x, y) + if style == StyleDefault { + style = s.style + } + + if !dirty || style != lstyle { + // write out any data queued thus far + // because we are going to skip over some + // cells, or because we need to change styles + s.writeString(lx, ly, lstyle, wcs) + wcs = buf[0:0] + lstyle = Style(-1) + if !dirty { + continue + } + } + if x > s.w-width { + mainc = ' ' + combc = nil + width = 1 + } + if len(wcs) == 0 { + lstyle = style + lx = x + ly = y + } + ra[0] = mainc + wcs = append(wcs, utf16.Encode(ra)...) + if len(combc) != 0 { + wcs = append(wcs, utf16.Encode(combc)...) + } + for dx := 0; dx < width; dx++ { + s.cells.SetDirty(x+dx, y, false) + } + x += width - 1 + } + s.writeString(lx, ly, lstyle, wcs) + wcs = buf[0:0] + lstyle = Style(-1) + } +} + +func (s *cScreen) Show() { + s.Lock() + if !s.fini { + s.hideCursor() + s.resize() + s.draw() + s.doCursor() + } + s.Unlock() +} + +func (s *cScreen) Sync() { + s.Lock() + if !s.fini { + s.cells.Invalidate() + s.hideCursor() + s.resize() + s.draw() + s.doCursor() + } + s.Unlock() +} + +type consoleInfo struct { + size coord + pos coord + attrs uint16 + win rect + maxsz coord +} + +func (s *cScreen) getConsoleInfo(info *consoleInfo) { + procGetConsoleScreenBufferInfo.Call( + uintptr(s.out), + uintptr(unsafe.Pointer(info))) +} + +func (s *cScreen) getCursorInfo(info *cursorInfo) { + procGetConsoleCursorInfo.Call( + uintptr(s.out), + uintptr(unsafe.Pointer(info))) +} + +func (s *cScreen) setCursorInfo(info *cursorInfo) { + procSetConsoleCursorInfo.Call( + uintptr(s.out), + uintptr(unsafe.Pointer(info))) + +} + +func (s *cScreen) setCursorPos(x, y int) { + if s.vten { + // Note that the string is Y first. Origin is 1,1. + s.emitVtString(fmt.Sprintf(vtCursorPos, y+1, x+1)) + } else { + procSetConsoleCursorPosition.Call( + uintptr(s.out), + coord{int16(x), int16(y)}.uintptr()) + } +} + +func (s *cScreen) setBufferSize(x, y int) { + procSetConsoleScreenBufferSize.Call( + uintptr(s.out), + coord{int16(x), int16(y)}.uintptr()) +} + +func (s *cScreen) Size() (int, int) { + s.Lock() + w, h := s.w, s.h + s.Unlock() + + return w, h +} + +func (s *cScreen) resize() { + info := consoleInfo{} + s.getConsoleInfo(&info) + + w := int((info.win.right - info.win.left) + 1) + h := int((info.win.bottom - info.win.top) + 1) + + if s.w == w && s.h == h { + return + } + + s.cells.Resize(w, h) + s.w = w + s.h = h + + s.setBufferSize(w, h) + + r := rect{0, 0, int16(w - 1), int16(h - 1)} + procSetConsoleWindowInfo.Call( + uintptr(s.out), + uintptr(1), + uintptr(unsafe.Pointer(&r))) + s.PostEvent(NewEventResize(w, h)) +} + +func (s *cScreen) Clear() { + s.Fill(' ', s.style) +} + +func (s *cScreen) Fill(r rune, style Style) { + s.Lock() + if !s.fini { + s.cells.Fill(r, style) + s.clear = true + } + s.Unlock() +} + +func (s *cScreen) clearScreen(style Style) { + if s.vten { + s.sendVtStyle(style) + row := strings.Repeat(" ", s.w) + for y := 0; y < s.h; y++ { + s.setCursorPos(0, y) + s.emitVtString(row) + } + s.setCursorPos(0, 0) + + } else { + pos := coord{0, 0} + attr := s.mapStyle(style) + x, y := s.w, s.h + scratch := uint32(0) + count := uint32(x * y) + + procFillConsoleOutputAttribute.Call( + uintptr(s.out), + uintptr(attr), + uintptr(count), + pos.uintptr(), + uintptr(unsafe.Pointer(&scratch))) + procFillConsoleOutputCharacter.Call( + uintptr(s.out), + uintptr(' '), + uintptr(count), + pos.uintptr(), + uintptr(unsafe.Pointer(&scratch))) + } +} + +const ( + // Input modes + modeExtndFlg uint32 = 0x0080 + modeMouseEn = 0x0010 + modeResizeEn = 0x0008 + modeCooked = 0x0001 + modeVtInput = 0x0200 + + // Output modes + modeCookedOut uint32 = 0x0001 + modeWrapEOL = 0x0002 + modeVtOutput = 0x0004 + modeNoAutoNL = 0x0008 +) + +func (s *cScreen) setInMode(mode uint32) error { + rv, _, err := procSetConsoleMode.Call( + uintptr(s.in), + uintptr(mode)) + if rv == 0 { + return err + } + return nil +} + +func (s *cScreen) setOutMode(mode uint32) error { + rv, _, err := procSetConsoleMode.Call( + uintptr(s.out), + uintptr(mode)) + if rv == 0 { + return err + } + return nil +} + +func (s *cScreen) getInMode(v *uint32) { + procGetConsoleMode.Call( + uintptr(s.in), + uintptr(unsafe.Pointer(v))) +} + +func (s *cScreen) getOutMode(v *uint32) { + procGetConsoleMode.Call( + uintptr(s.out), + uintptr(unsafe.Pointer(v))) +} + +func (s *cScreen) SetStyle(style Style) { + s.Lock() + s.style = style + s.Unlock() +} + +// No fallback rune support, since we have Unicode. Yay! + +func (s *cScreen) RegisterRuneFallback(r rune, subst string) { +} + +func (s *cScreen) UnregisterRuneFallback(r rune) { +} + +func (s *cScreen) CanDisplay(r rune, checkFallbacks bool) bool { + // We presume we can display anything -- we're Unicode. + // (Sadly this not precisely true. Combinings are especially + // poorly supported under Windows.) + return true +} + +func (s *cScreen) HasMouse() bool { + return true +} + +func (s *cScreen) Resize(int, int, int, int) {} + +func (s *cScreen) HasKey(k Key) bool { + // Microsoft has codes for some keys, but they are unusual, + // so we don't include them. We include all the typical + // 101, 105 key layout keys. + valid := map[Key]bool{ + KeyBackspace: true, + KeyTab: true, + KeyEscape: true, + KeyPause: true, + KeyPrint: true, + KeyPgUp: true, + KeyPgDn: true, + KeyEnter: true, + KeyEnd: true, + KeyHome: true, + KeyLeft: true, + KeyUp: true, + KeyRight: true, + KeyDown: true, + KeyInsert: true, + KeyDelete: true, + KeyF1: true, + KeyF2: true, + KeyF3: true, + KeyF4: true, + KeyF5: true, + KeyF6: true, + KeyF7: true, + KeyF8: true, + KeyF9: true, + KeyF10: true, + KeyF11: true, + KeyF12: true, + KeyRune: true, + } + + return valid[k] +} + +func (s *cScreen) Beep() error { + // A simple beep. If the sound card is not available, the sound is generated + // using the speaker. + // + // Reference: + // https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebeep + const simpleBeep = 0xffffffff + if rv, _, err := procMessageBeep.Call(simpleBeep); rv == 0 { + return err + } + return nil +} diff --git a/vendor/github.com/gdamore/tcell/doc.go b/vendor/github.com/gdamore/tcell/doc.go new file mode 100644 index 0000000..b671961 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/doc.go @@ -0,0 +1,48 @@ +// Copyright 2018 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package tcell provides a lower-level, portable API for building +// programs that interact with terminals or consoles. It works with +// both common (and many uncommon!) terminals or terminal emulators, +// and Windows console implementations. +// +// It provides support for up to 256 colors, text attributes, and box drawing +// elements. A database of terminals built from a real terminfo database +// is provided, along with code to generate new database entries. +// +// Tcell offers very rich support for mice, dependent upon the terminal +// of course. (Windows, XTerm, and iTerm 2 are known to work very well.) +// +// If the environment is not Unicode by default, such as an ISO8859 based +// locale or GB18030, Tcell can convert input and output, so that your +// terminal can operate in whatever locale is most convenient, while the +// application program can just assume "everything is UTF-8". Reasonable +// defaults are used for updating characters to something suitable for +// display. Unicode box drawing characters will be converted to use the +// alternate character set of your terminal, if native conversions are +// not available. If no ACS is available, then some ASCII fallbacks will +// be used. +// +// Note that support for non-UTF-8 locales (other than C) must be enabled +// by the application using RegisterEncoding() -- we don't have them all +// enabled by default to avoid bloating the application unneccessarily. +// (These days UTF-8 is good enough for almost everyone, and nobody should +// be using legacy locales anymore.) Also, actual glyphs for various code +// point will only be displayed if your terminal or emulator (or the font +// the emulator is using) supports them. +// +// A rich set of keycodes is supported, with support for up to 65 function +// keys, and various other special keys. +// +package tcell diff --git a/vendor/github.com/gdamore/tcell/encoding.go b/vendor/github.com/gdamore/tcell/encoding.go new file mode 100644 index 0000000..596a6e8 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/encoding.go @@ -0,0 +1,139 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "strings" + "sync" + + "golang.org/x/text/encoding" + + gencoding "github.com/gdamore/encoding" +) + +var encodings map[string]encoding.Encoding +var encodingLk sync.Mutex +var encodingFallback EncodingFallback = EncodingFallbackFail + +// RegisterEncoding may be called by the application to register an encoding. +// The presence of additional encodings will facilitate application usage with +// terminal environments where the I/O subsystem does not support Unicode. +// +// Windows systems use Unicode natively, and do not need any of the encoding +// subsystem when using Windows Console screens. +// +// Please see the Go documentation for golang.org/x/text/encoding -- most of +// the common ones exist already as stock variables. For example, ISO8859-15 +// can be registered using the following code: +// +// import "golang.org/x/text/encoding/charmap" +// +// ... +// RegisterEncoding("ISO8859-15", charmap.ISO8859_15) +// +// Aliases can be registered as well, for example "8859-15" could be an alias +// for "ISO8859-15". +// +// For POSIX systems, the tcell package will check the environment variables +// LC_ALL, LC_CTYPE, and LANG (in that order) to determine the character set. +// These are expected to have the following pattern: +// +// $language[.$codeset[@$variant] +// +// We extract only the $codeset part, which will usually be something like +// UTF-8 or ISO8859-15 or KOI8-R. Note that if the locale is either "POSIX" +// or "C", then we assume US-ASCII (the POSIX 'portable character set' +// and assume all other characters are somehow invalid.) +// +// Modern POSIX systems and terminal emulators may use UTF-8, and for those +// systems, this API is also unnecessary. For example, Darwin (MacOS X) and +// modern Linux running modern xterm generally will out of the box without +// any of this. Use of UTF-8 is recommended when possible, as it saves +// quite a lot processing overhead. +// +// Note that some encodings are quite large (for example GB18030 which is a +// superset of Unicode) and so the application size can be expected ot +// increase quite a bit as each encoding is added. The East Asian encodings +// have been seen to add 100-200K per encoding to the application size. +// +func RegisterEncoding(charset string, enc encoding.Encoding) { + encodingLk.Lock() + charset = strings.ToLower(charset) + encodings[charset] = enc + encodingLk.Unlock() +} + +// EncodingFallback describes how the system behavees when the locale +// requires a character set that we do not support. The system always +// supports UTF-8 and US-ASCII. On Windows consoles, UTF-16LE is also +// supported automatically. Other character sets must be added using the +// RegisterEncoding API. (A large group of nearly all of them can be +// added using the RegisterAll function in the encoding sub package.) +type EncodingFallback int + +const ( + // EncodingFallbackFail behavior causes GetEncoding to fail + // when it cannot find an encoding. + EncodingFallbackFail = iota + + // EncodingFallbackASCII behaviore causes GetEncoding to fall back + // to a 7-bit ASCII encoding, if no other encoding can be found. + EncodingFallbackASCII + + // EncodingFallbackUTF8 behavior causes GetEncoding to assume + // UTF8 can pass unmodified upon failure. Note that this behavior + // is not recommended, unless you are sure your terminal can cope + // with real UTF8 sequences. + EncodingFallbackUTF8 +) + +// SetEncodingFallback changes the behavior of GetEncoding when a suitable +// encoding is not found. The default is EncodingFallbackFail, which +// causes GetEncoding to simply return nil. +func SetEncodingFallback(fb EncodingFallback) { + encodingLk.Lock() + encodingFallback = fb + encodingLk.Unlock() +} + +// GetEncoding is used by Screen implementors who want to locate an encoding +// for the given character set name. Note that this will return nil for +// either the Unicode (UTF-8) or ASCII encodings, since we don't use +// encodings for them but instead have our own native methods. +func GetEncoding(charset string) encoding.Encoding { + charset = strings.ToLower(charset) + encodingLk.Lock() + defer encodingLk.Unlock() + if enc, ok := encodings[charset]; ok { + return enc + } + switch encodingFallback { + case EncodingFallbackASCII: + return gencoding.ASCII + case EncodingFallbackUTF8: + return encoding.Nop + } + return nil +} + +func init() { + // We always support UTF-8 and ASCII. + encodings = make(map[string]encoding.Encoding) + encodings["utf-8"] = gencoding.UTF8 + encodings["utf8"] = gencoding.UTF8 + encodings["us-ascii"] = gencoding.ASCII + encodings["ascii"] = gencoding.ASCII + encodings["iso646"] = gencoding.ASCII +} diff --git a/vendor/github.com/gdamore/tcell/errors.go b/vendor/github.com/gdamore/tcell/errors.go new file mode 100644 index 0000000..920b64b --- /dev/null +++ b/vendor/github.com/gdamore/tcell/errors.go @@ -0,0 +1,73 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "errors" + "time" + + "github.com/gdamore/tcell/terminfo" +) + +var ( + // ErrTermNotFound indicates that a suitable terminal entry could + // not be found. This can result from either not having TERM set, + // or from the TERM failing to support certain minimal functionality, + // in particular absolute cursor addressability (the cup capability) + // is required. For example, legacy "adm3" lacks this capability, + // whereas the slightly newer "adm3a" supports it. This failure + // occurs most often with "dumb". + ErrTermNotFound = terminfo.ErrTermNotFound + + // ErrNoScreen indicates that no suitable screen could be found. + // This may result from attempting to run on a platform where there + // is no support for either termios or console I/O (such as nacl), + // or from running in an environment where there is no access to + // a suitable console/terminal device. (For example, running on + // without a controlling TTY or with no /dev/tty on POSIX platforms.) + ErrNoScreen = errors.New("no suitable screen available") + + // ErrNoCharset indicates that the locale environment the + // program is not supported by the program, because no suitable + // encoding was found for it. This problem never occurs if + // the environment is UTF-8 or UTF-16. + ErrNoCharset = errors.New("character set not supported") + + // ErrEventQFull indicates that the event queue is full, and + // cannot accept more events. + ErrEventQFull = errors.New("event queue full") +) + +// An EventError is an event representing some sort of error, and carries +// an error payload. +type EventError struct { + t time.Time + err error +} + +// When returns the time when the event was created. +func (ev *EventError) When() time.Time { + return ev.t +} + +// Error implements the error. +func (ev *EventError) Error() string { + return ev.err.Error() +} + +// NewEventError creates an ErrorEvent with the given error payload. +func NewEventError(err error) *EventError { + return &EventError{t: time.Now(), err: err} +} diff --git a/vendor/github.com/gdamore/tcell/event.go b/vendor/github.com/gdamore/tcell/event.go new file mode 100644 index 0000000..a3b7700 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/event.go @@ -0,0 +1,53 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "time" +) + +// Event is a generic interface used for passing around Events. +// Concrete types follow. +type Event interface { + // When reports the time when the event was generated. + When() time.Time +} + +// EventTime is a simple base event class, suitable for easy reuse. +// It can be used to deliver actual timer events as well. +type EventTime struct { + when time.Time +} + +// When returns the time stamp when the event occurred. +func (e *EventTime) When() time.Time { + return e.when +} + +// SetEventTime sets the time of occurrence for the event. +func (e *EventTime) SetEventTime(t time.Time) { + e.when = t +} + +// SetEventNow sets the time of occurrence for the event to the current time. +func (e *EventTime) SetEventNow() { + e.SetEventTime(time.Now()) +} + +// EventHandler is anything that handles events. If the handler has +// consumed the event, it should return true. False otherwise. +type EventHandler interface { + HandleEvent(Event) bool +} diff --git a/vendor/github.com/gdamore/tcell/go.mod b/vendor/github.com/gdamore/tcell/go.mod new file mode 100644 index 0000000..a76e65d --- /dev/null +++ b/vendor/github.com/gdamore/tcell/go.mod @@ -0,0 +1,11 @@ +module github.com/gdamore/tcell + +go 1.12 + +require ( + github.com/gdamore/encoding v1.0.0 + github.com/lucasb-eyer/go-colorful v1.0.3 + github.com/mattn/go-runewidth v0.0.7 + golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 + golang.org/x/text v0.3.0 +) diff --git a/vendor/github.com/gdamore/tcell/go.sum b/vendor/github.com/gdamore/tcell/go.sum new file mode 100644 index 0000000..9f8691f --- /dev/null +++ b/vendor/github.com/gdamore/tcell/go.sum @@ -0,0 +1,10 @@ +github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/github.com/gdamore/tcell/interrupt.go b/vendor/github.com/gdamore/tcell/interrupt.go new file mode 100644 index 0000000..70dddfc --- /dev/null +++ b/vendor/github.com/gdamore/tcell/interrupt.go @@ -0,0 +1,41 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "time" +) + +// EventInterrupt is a generic wakeup event. Its can be used to +// to request a redraw. It can carry an arbitrary payload, as well. +type EventInterrupt struct { + t time.Time + v interface{} +} + +// When returns the time when this event was created. +func (ev *EventInterrupt) When() time.Time { + return ev.t +} + +// Data is used to obtain the opaque event payload. +func (ev *EventInterrupt) Data() interface{} { + return ev.v +} + +// NewEventInterrupt creates an EventInterrupt with the given payload. +func NewEventInterrupt(data interface{}) *EventInterrupt { + return &EventInterrupt{t: time.Now(), v: data} +} diff --git a/vendor/github.com/gdamore/tcell/key.go b/vendor/github.com/gdamore/tcell/key.go new file mode 100644 index 0000000..3545215 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/key.go @@ -0,0 +1,464 @@ +// Copyright 2016 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "fmt" + "strings" + "time" +) + +// EventKey represents a key press. Usually this is a key press followed +// by a key release, but since terminal programs don't have a way to report +// key release events, we usually get just one event. If a key is held down +// then the terminal may synthesize repeated key presses at some predefined +// rate. We have no control over that, nor visibility into it. +// +// In some cases, we can have a modifier key, such as ModAlt, that can be +// generated with a key press. (This usually is represented by having the +// high bit set, or in some cases, by sending an ESC prior to the rune.) +// +// If the value of Key() is KeyRune, then the actual key value will be +// available with the Rune() method. This will be the case for most keys. +// In most situations, the modifiers will not be set. For example, if the +// rune is 'A', this will be reported without the ModShift bit set, since +// really can't tell if the Shift key was pressed (it might have been CAPSLOCK, +// or a terminal that only can send capitals, or keyboard with separate +// capital letters from lower case letters). +// +// Generally, terminal applications have far less visibility into keyboard +// activity than graphical applications. Hence, they should avoid depending +// overly much on availability of modifiers, or the availability of any +// specific keys. +type EventKey struct { + t time.Time + mod ModMask + key Key + ch rune +} + +// When returns the time when this Event was created, which should closely +// match the time when the key was pressed. +func (ev *EventKey) When() time.Time { + return ev.t +} + +// Rune returns the rune corresponding to the key press, if it makes sense. +// The result is only defined if the value of Key() is KeyRune. +func (ev *EventKey) Rune() rune { + return ev.ch +} + +// Key returns a virtual key code. We use this to identify specific key +// codes, such as KeyEnter, etc. Most control and function keys are reported +// with unique Key values. Normal alphanumeric and punctuation keys will +// generally return KeyRune here; the specific key can be further decoded +// using the Rune() function. +func (ev *EventKey) Key() Key { + return ev.key +} + +// Modifiers returns the modifiers that were present with the key press. Note +// that not all platforms and terminals support this equally well, and some +// cases we will not not know for sure. Hence, applications should avoid +// using this in most circumstances. +func (ev *EventKey) Modifiers() ModMask { + return ev.mod +} + +// KeyNames holds the written names of special keys. Useful to echo back a key +// name, or to look up a key from a string value. +var KeyNames = map[Key]string{ + KeyEnter: "Enter", + KeyBackspace: "Backspace", + KeyTab: "Tab", + KeyBacktab: "Backtab", + KeyEsc: "Esc", + KeyBackspace2: "Backspace2", + KeyDelete: "Delete", + KeyInsert: "Insert", + KeyUp: "Up", + KeyDown: "Down", + KeyLeft: "Left", + KeyRight: "Right", + KeyHome: "Home", + KeyEnd: "End", + KeyUpLeft: "UpLeft", + KeyUpRight: "UpRight", + KeyDownLeft: "DownLeft", + KeyDownRight: "DownRight", + KeyCenter: "Center", + KeyPgDn: "PgDn", + KeyPgUp: "PgUp", + KeyClear: "Clear", + KeyExit: "Exit", + KeyCancel: "Cancel", + KeyPause: "Pause", + KeyPrint: "Print", + KeyF1: "F1", + KeyF2: "F2", + KeyF3: "F3", + KeyF4: "F4", + KeyF5: "F5", + KeyF6: "F6", + KeyF7: "F7", + KeyF8: "F8", + KeyF9: "F9", + KeyF10: "F10", + KeyF11: "F11", + KeyF12: "F12", + KeyF13: "F13", + KeyF14: "F14", + KeyF15: "F15", + KeyF16: "F16", + KeyF17: "F17", + KeyF18: "F18", + KeyF19: "F19", + KeyF20: "F20", + KeyF21: "F21", + KeyF22: "F22", + KeyF23: "F23", + KeyF24: "F24", + KeyF25: "F25", + KeyF26: "F26", + KeyF27: "F27", + KeyF28: "F28", + KeyF29: "F29", + KeyF30: "F30", + KeyF31: "F31", + KeyF32: "F32", + KeyF33: "F33", + KeyF34: "F34", + KeyF35: "F35", + KeyF36: "F36", + KeyF37: "F37", + KeyF38: "F38", + KeyF39: "F39", + KeyF40: "F40", + KeyF41: "F41", + KeyF42: "F42", + KeyF43: "F43", + KeyF44: "F44", + KeyF45: "F45", + KeyF46: "F46", + KeyF47: "F47", + KeyF48: "F48", + KeyF49: "F49", + KeyF50: "F50", + KeyF51: "F51", + KeyF52: "F52", + KeyF53: "F53", + KeyF54: "F54", + KeyF55: "F55", + KeyF56: "F56", + KeyF57: "F57", + KeyF58: "F58", + KeyF59: "F59", + KeyF60: "F60", + KeyF61: "F61", + KeyF62: "F62", + KeyF63: "F63", + KeyF64: "F64", + KeyCtrlA: "Ctrl-A", + KeyCtrlB: "Ctrl-B", + KeyCtrlC: "Ctrl-C", + KeyCtrlD: "Ctrl-D", + KeyCtrlE: "Ctrl-E", + KeyCtrlF: "Ctrl-F", + KeyCtrlG: "Ctrl-G", + KeyCtrlJ: "Ctrl-J", + KeyCtrlK: "Ctrl-K", + KeyCtrlL: "Ctrl-L", + KeyCtrlN: "Ctrl-N", + KeyCtrlO: "Ctrl-O", + KeyCtrlP: "Ctrl-P", + KeyCtrlQ: "Ctrl-Q", + KeyCtrlR: "Ctrl-R", + KeyCtrlS: "Ctrl-S", + KeyCtrlT: "Ctrl-T", + KeyCtrlU: "Ctrl-U", + KeyCtrlV: "Ctrl-V", + KeyCtrlW: "Ctrl-W", + KeyCtrlX: "Ctrl-X", + KeyCtrlY: "Ctrl-Y", + KeyCtrlZ: "Ctrl-Z", + KeyCtrlSpace: "Ctrl-Space", + KeyCtrlUnderscore: "Ctrl-_", + KeyCtrlRightSq: "Ctrl-]", + KeyCtrlBackslash: "Ctrl-\\", + KeyCtrlCarat: "Ctrl-^", +} + +// Name returns a printable value or the key stroke. This can be used +// when printing the event, for example. +func (ev *EventKey) Name() string { + s := "" + m := []string{} + if ev.mod&ModShift != 0 { + m = append(m, "Shift") + } + if ev.mod&ModAlt != 0 { + m = append(m, "Alt") + } + if ev.mod&ModMeta != 0 { + m = append(m, "Meta") + } + if ev.mod&ModCtrl != 0 { + m = append(m, "Ctrl") + } + + ok := false + if s, ok = KeyNames[ev.key]; !ok { + if ev.key == KeyRune { + s = "Rune[" + string(ev.ch) + "]" + } else { + s = fmt.Sprintf("Key[%d,%d]", ev.key, int(ev.ch)) + } + } + if len(m) != 0 { + if ev.mod&ModCtrl != 0 && strings.HasPrefix(s, "Ctrl-") { + s = s[5:] + } + return fmt.Sprintf("%s+%s", strings.Join(m, "+"), s) + } + return s +} + +// NewEventKey attempts to create a suitable event. It parses the various +// ASCII control sequences if KeyRune is passed for Key, but if the caller +// has more precise information it should set that specifically. Callers +// that aren't sure about modifier state (most) should just pass ModNone. +func NewEventKey(k Key, ch rune, mod ModMask) *EventKey { + if k == KeyRune && (ch < ' ' || ch == 0x7f) { + // Turn specials into proper key codes. This is for + // control characters and the DEL. + k = Key(ch) + if mod == ModNone && ch < ' ' { + switch Key(ch) { + case KeyBackspace, KeyTab, KeyEsc, KeyEnter: + // these keys are directly typeable without CTRL + default: + // most likely entered with a CTRL keypress + mod = ModCtrl + } + } + } + return &EventKey{t: time.Now(), key: k, ch: ch, mod: mod} +} + +// ModMask is a mask of modifier keys. Note that it will not always be +// possible to report modifier keys. +type ModMask int16 + +// These are the modifiers keys that can be sent either with a key press, +// or a mouse event. Note that as of now, due to the confusion associated +// with Meta, and the lack of support for it on many/most platforms, the +// current implementations never use it. Instead, they use ModAlt, even for +// events that could possibly have been distinguished from ModAlt. +const ( + ModShift ModMask = 1 << iota + ModCtrl + ModAlt + ModMeta + ModNone ModMask = 0 +) + +// Key is a generic value for representing keys, and especially special +// keys (function keys, cursor movement keys, etc.) For normal keys, like +// ASCII letters, we use KeyRune, and then expect the application to +// inspect the Rune() member of the EventKey. +type Key int16 + +// This is the list of named keys. KeyRune is special however, in that it is +// a place holder key indicating that a printable character was sent. The +// actual value of the rune will be transported in the Rune of the associated +// EventKey. +const ( + KeyRune Key = iota + 256 + KeyUp + KeyDown + KeyRight + KeyLeft + KeyUpLeft + KeyUpRight + KeyDownLeft + KeyDownRight + KeyCenter + KeyPgUp + KeyPgDn + KeyHome + KeyEnd + KeyInsert + KeyDelete + KeyHelp + KeyExit + KeyClear + KeyCancel + KeyPrint + KeyPause + KeyBacktab + KeyF1 + KeyF2 + KeyF3 + KeyF4 + KeyF5 + KeyF6 + KeyF7 + KeyF8 + KeyF9 + KeyF10 + KeyF11 + KeyF12 + KeyF13 + KeyF14 + KeyF15 + KeyF16 + KeyF17 + KeyF18 + KeyF19 + KeyF20 + KeyF21 + KeyF22 + KeyF23 + KeyF24 + KeyF25 + KeyF26 + KeyF27 + KeyF28 + KeyF29 + KeyF30 + KeyF31 + KeyF32 + KeyF33 + KeyF34 + KeyF35 + KeyF36 + KeyF37 + KeyF38 + KeyF39 + KeyF40 + KeyF41 + KeyF42 + KeyF43 + KeyF44 + KeyF45 + KeyF46 + KeyF47 + KeyF48 + KeyF49 + KeyF50 + KeyF51 + KeyF52 + KeyF53 + KeyF54 + KeyF55 + KeyF56 + KeyF57 + KeyF58 + KeyF59 + KeyF60 + KeyF61 + KeyF62 + KeyF63 + KeyF64 +) + +// These are the control keys. Note that they overlap with other keys, +// perhaps. For example, KeyCtrlH is the same as KeyBackspace. +const ( + KeyCtrlSpace Key = iota + KeyCtrlA + KeyCtrlB + KeyCtrlC + KeyCtrlD + KeyCtrlE + KeyCtrlF + KeyCtrlG + KeyCtrlH + KeyCtrlI + KeyCtrlJ + KeyCtrlK + KeyCtrlL + KeyCtrlM + KeyCtrlN + KeyCtrlO + KeyCtrlP + KeyCtrlQ + KeyCtrlR + KeyCtrlS + KeyCtrlT + KeyCtrlU + KeyCtrlV + KeyCtrlW + KeyCtrlX + KeyCtrlY + KeyCtrlZ + KeyCtrlLeftSq // Escape + KeyCtrlBackslash + KeyCtrlRightSq + KeyCtrlCarat + KeyCtrlUnderscore +) + +// Special values - these are fixed in an attempt to make it more likely +// that aliases will encode the same way. + +// These are the defined ASCII values for key codes. They generally match +// with KeyCtrl values. +const ( + KeyNUL Key = iota + KeySOH + KeySTX + KeyETX + KeyEOT + KeyENQ + KeyACK + KeyBEL + KeyBS + KeyTAB + KeyLF + KeyVT + KeyFF + KeyCR + KeySO + KeySI + KeyDLE + KeyDC1 + KeyDC2 + KeyDC3 + KeyDC4 + KeyNAK + KeySYN + KeyETB + KeyCAN + KeyEM + KeySUB + KeyESC + KeyFS + KeyGS + KeyRS + KeyUS + KeyDEL Key = 0x7F +) + +// These keys are aliases for other names. +const ( + KeyBackspace = KeyBS + KeyTab = KeyTAB + KeyEsc = KeyESC + KeyEscape = KeyESC + KeyEnter = KeyCR + KeyBackspace2 = KeyDEL +) diff --git a/vendor/github.com/gdamore/tcell/mouse.go b/vendor/github.com/gdamore/tcell/mouse.go new file mode 100644 index 0000000..8c51c98 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/mouse.go @@ -0,0 +1,97 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "time" +) + +// EventMouse is a mouse event. It is sent on either mouse up or mouse down +// events. It is also sent on mouse motion events - if the terminal supports +// it. We make every effort to ensure that mouse release events are delivered. +// Hence, click drag can be identified by a motion event with the mouse down, +// without any intervening button release. On some terminals only the initiating +// press and terminating release event will be delivered. +// +// Mouse wheel events, when reported, may appear on their own as individual +// impulses; that is, there will normally not be a release event delivered +// for mouse wheel movements. +// +// Most terminals cannot report the state of more than one button at a time -- +// and some cannot report motion events unless a button is pressed. +// +// Applications can inspect the time between events to resolve double or +// triple clicks. +type EventMouse struct { + t time.Time + btn ButtonMask + mod ModMask + x int + y int +} + +// When returns the time when this EventMouse was created. +func (ev *EventMouse) When() time.Time { + return ev.t +} + +// Buttons returns the list of buttons that were pressed or wheel motions. +func (ev *EventMouse) Buttons() ButtonMask { + return ev.btn +} + +// Modifiers returns a list of keyboard modifiers that were pressed +// with the mouse button(s). +func (ev *EventMouse) Modifiers() ModMask { + return ev.mod +} + +// Position returns the mouse position in character cells. The origin +// 0, 0 is at the upper left corner. +func (ev *EventMouse) Position() (int, int) { + return ev.x, ev.y +} + +// NewEventMouse is used to create a new mouse event. Applications +// shouldn't need to use this; its mostly for screen implementors. +func NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse { + return &EventMouse{t: time.Now(), x: x, y: y, btn: btn, mod: mod} +} + +// ButtonMask is a mask of mouse buttons and wheel events. Mouse button presses +// are normally delivered as both press and release events. Mouse wheel events +// are normally just single impulse events. Windows supports up to eight +// separate buttons plus all four wheel directions, but XTerm can only support +// mouse buttons 1-3 and wheel up/down. Its not unheard of for terminals +// to support only one or two buttons (think Macs). Old terminals, and true +// emulations (such as vt100) won't support mice at all, of course. +type ButtonMask int16 + +// These are the actual button values. +const ( + Button1 ButtonMask = 1 << iota // Usually left mouse button. + Button2 // Usually the middle mouse button. + Button3 // Usually the right mouse button. + Button4 // Often a side button (thumb/next). + Button5 // Often a side button (thumb/prev). + Button6 + Button7 + Button8 + WheelUp // Wheel motion up/away from user. + WheelDown // Wheel motion down/towards user. + WheelLeft // Wheel motion to left. + WheelRight // Wheel motion to right. + ButtonNone ButtonMask = 0 // No button or wheel events. +) diff --git a/vendor/github.com/gdamore/tcell/resize.go b/vendor/github.com/gdamore/tcell/resize.go new file mode 100644 index 0000000..0385673 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/resize.go @@ -0,0 +1,42 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "time" +) + +// EventResize is sent when the window size changes. +type EventResize struct { + t time.Time + w int + h int +} + +// NewEventResize creates an EventResize with the new updated window size, +// which is given in character cells. +func NewEventResize(width, height int) *EventResize { + return &EventResize{t: time.Now(), w: width, h: height} +} + +// When returns the time when the Event was created. +func (ev *EventResize) When() time.Time { + return ev.t +} + +// Size returns the new window size as width, height in character cells. +func (ev *EventResize) Size() (int, int) { + return ev.w, ev.h +} diff --git a/vendor/github.com/gdamore/tcell/runes.go b/vendor/github.com/gdamore/tcell/runes.go new file mode 100644 index 0000000..ed9c63b --- /dev/null +++ b/vendor/github.com/gdamore/tcell/runes.go @@ -0,0 +1,111 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// The names of these constants are chosen to match Terminfo names, +// modulo case, and changing the prefix from ACS_ to Rune. These are +// the runes we provide extra special handling for, with ASCII fallbacks +// for terminals that lack them. +const ( + RuneSterling = '£' + RuneDArrow = '↓' + RuneLArrow = '←' + RuneRArrow = '→' + RuneUArrow = '↑' + RuneBullet = '·' + RuneBoard = '░' + RuneCkBoard = '▒' + RuneDegree = '°' + RuneDiamond = '◆' + RuneGEqual = '≥' + RunePi = 'π' + RuneHLine = '─' + RuneLantern = '§' + RunePlus = '┼' + RuneLEqual = '≤' + RuneLLCorner = '└' + RuneLRCorner = '┘' + RuneNEqual = '≠' + RunePlMinus = '±' + RuneS1 = '⎺' + RuneS3 = '⎻' + RuneS7 = '⎼' + RuneS9 = '⎽' + RuneBlock = '█' + RuneTTee = '┬' + RuneRTee = '┤' + RuneLTee = '├' + RuneBTee = '┴' + RuneULCorner = '┌' + RuneURCorner = '┐' + RuneVLine = '│' +) + +// RuneFallbacks is the default map of fallback strings that will be +// used to replace a rune when no other more appropriate transformation +// is available, and the rune cannot be displayed directly. +// +// New entries may be added to this map over time, as it becomes clear +// that such is desirable. Characters that represent either letters or +// numbers should not be added to this list unless it is certain that +// the meaning will still convey unambiguously. +// +// As an example, it would be appropriate to add an ASCII mapping for +// the full width form of the letter 'A', but it would not be appropriate +// to do so a glyph representing the country China. +// +// Programs that desire richer fallbacks may register additional ones, +// or change or even remove these mappings with Screen.RegisterRuneFallback +// Screen.UnregisterRuneFallback methods. +// +// Note that Unicode is presumed to be able to display all glyphs. +// This is a pretty poor assumption, but there is no easy way to +// figure out which glyphs are supported in a given font. Hence, +// some care in selecting the characters you support in your application +// is still appropriate. +var RuneFallbacks = map[rune]string{ + RuneSterling: "f", + RuneDArrow: "v", + RuneLArrow: "<", + RuneRArrow: ">", + RuneUArrow: "^", + RuneBullet: "o", + RuneBoard: "#", + RuneCkBoard: ":", + RuneDegree: "\\", + RuneDiamond: "+", + RuneGEqual: ">", + RunePi: "*", + RuneHLine: "-", + RuneLantern: "#", + RunePlus: "+", + RuneLEqual: "<", + RuneLLCorner: "+", + RuneLRCorner: "+", + RuneNEqual: "!", + RunePlMinus: "#", + RuneS1: "~", + RuneS3: "-", + RuneS7: "-", + RuneS9: "_", + RuneBlock: "#", + RuneTTee: "+", + RuneRTee: "+", + RuneLTee: "+", + RuneBTee: "+", + RuneULCorner: "+", + RuneURCorner: "+", + RuneVLine: "|", +} diff --git a/vendor/github.com/gdamore/tcell/screen.go b/vendor/github.com/gdamore/tcell/screen.go new file mode 100644 index 0000000..c264abb --- /dev/null +++ b/vendor/github.com/gdamore/tcell/screen.go @@ -0,0 +1,213 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// Screen represents the physical (or emulated) screen. +// This can be a terminal window or a physical console. Platforms implement +// this differerently. +type Screen interface { + // Init initializes the screen for use. + Init() error + + // Fini finalizes the screen also releasing resources. + Fini() + + // Clear erases the screen. The contents of any screen buffers + // will also be cleared. This has the logical effect of + // filling the screen with spaces, using the global default style. + Clear() + + // Fill fills the screen with the given character and style. + Fill(rune, Style) + + // SetCell is an older API, and will be removed. Please use + // SetContent instead; SetCell is implemented in terms of SetContent. + SetCell(x int, y int, style Style, ch ...rune) + + // GetContent returns the contents at the given location. If the + // coordinates are out of range, then the values will be 0, nil, + // StyleDefault. Note that the contents returned are logical contents + // and may not actually be what is displayed, but rather are what will + // be displayed if Show() or Sync() is called. The width is the width + // in screen cells; most often this will be 1, but some East Asian + // characters require two cells. + GetContent(x, y int) (mainc rune, combc []rune, style Style, width int) + + // SetContent sets the contents of the given cell location. If + // the coordinates are out of range, then the operation is ignored. + // + // The first rune is the primary non-zero width rune. The array + // that follows is a possible list of combining characters to append, + // and will usually be nil (no combining characters.) + // + // The results are not displayd until Show() or Sync() is called. + // + // Note that wide (East Asian full width) runes occupy two cells, + // and attempts to place character at next cell to the right will have + // undefined effects. Wide runes that are printed in the + // last column will be replaced with a single width space on output. + SetContent(x int, y int, mainc rune, combc []rune, style Style) + + // SetStyle sets the default style to use when clearing the screen + // or when StyleDefault is specified. If it is also StyleDefault, + // then whatever system/terminal default is relevant will be used. + SetStyle(style Style) + + // ShowCursor is used to display the cursor at a given location. + // If the coordinates -1, -1 are given or are otherwise outside the + // dimensions of the screen, the cursor will be hidden. + ShowCursor(x int, y int) + + // HideCursor is used to hide the cursor. Its an alias for + // ShowCursor(-1, -1). + HideCursor() + + // Size returns the screen size as width, height. This changes in + // response to a call to Clear or Flush. + Size() (int, int) + + // PollEvent waits for events to arrive. Main application loops + // must spin on this to prevent the application from stalling. + // Furthermore, this will return nil if the Screen is finalized. + PollEvent() Event + + // PostEvent tries to post an event into the event stream. This + // can fail if the event queue is full. In that case, the event + // is dropped, and ErrEventQFull is returned. + PostEvent(ev Event) error + + // PostEventWait is like PostEvent, but if the queue is full, it + // blocks until there is space in the queue, making delivery + // reliable. However, it is VERY important that this function + // never be called from within whatever event loop is polling + // with PollEvent(), otherwise a deadlock may arise. + // + // For this reason, when using this function, the use of a + // Goroutine is recommended to ensure no deadlock can occur. + PostEventWait(ev Event) + + // EnableMouse enables the mouse. (If your terminal supports it.) + EnableMouse() + + // DisableMouse disables the mouse. + DisableMouse() + + // HasMouse returns true if the terminal (apparently) supports a + // mouse. Note that the a return value of true doesn't guarantee that + // a mouse/pointing device is present; a false return definitely + // indicates no mouse support is available. + HasMouse() bool + + // Colors returns the number of colors. All colors are assumed to + // use the ANSI color map. If a terminal is monochrome, it will + // return 0. + Colors() int + + // Show makes all the content changes made using SetContent() visible + // on the display. + // + // It does so in the most efficient and least visually disruptive + // manner possible. + Show() + + // Sync works like Show(), but it updates every visible cell on the + // physical display, assuming that it is not synchronized with any + // internal model. This may be both expensive and visually jarring, + // so it should only be used when believed to actually be necessary. + // + // Typically this is called as a result of a user-requested redraw + // (e.g. to clear up on screen corruption caused by some other program), + // or during a resize event. + Sync() + + // CharacterSet returns information about the character set. + // This isn't the full locale, but it does give us the input/output + // character set. Note that this is just for diagnostic purposes, + // we normally translate input/output to/from UTF-8, regardless of + // what the user's environment is. + CharacterSet() string + + // RegisterRuneFallback adds a fallback for runes that are not + // part of the character set -- for example one coudld register + // o as a fallback for ø. This should be done cautiously for + // characters that might be displayed ordinarily in language + // specific text -- characters that could change the meaning of + // of written text would be dangerous. The intention here is to + // facilitate fallback characters in pseudo-graphical applications. + // + // If the terminal has fallbacks already in place via an alternate + // character set, those are used in preference. Also, standard + // fallbacks for graphical characters in the ACSC terminfo string + // are registered implicitly. + + // The display string should be the same width as original rune. + // This makes it possible to register two character replacements + // for full width East Asian characters, for example. + // + // It is recommended that replacement strings consist only of + // 7-bit ASCII, since other characters may not display everywhere. + RegisterRuneFallback(r rune, subst string) + + // UnregisterRuneFallback unmaps a replacement. It will unmap + // the implicit ASCII replacements for alternate characters as well. + // When an unmapped char needs to be displayed, but no suitable + // glyph is available, '?' is emitted instead. It is not possible + // to "disable" the use of alternate characters that are supported + // by your terminal except by changing the terminal database. + UnregisterRuneFallback(r rune) + + // CanDisplay returns true if the given rune can be displayed on + // this screen. Note that this is a best guess effort -- whether + // your fonts support the character or not may be questionable. + // Mostly this is for folks who work outside of Unicode. + // + // If checkFallbacks is true, then if any (possibly imperfect) + // fallbacks are registered, this will return true. This will + // also return true if the terminal can replace the glyph with + // one that is visually indistinguishable from the one requested. + CanDisplay(r rune, checkFallbacks bool) bool + + // Resize does nothing, since its generally not possible to + // ask a screen to resize, but it allows the Screen to implement + // the View interface. + Resize(int, int, int, int) + + // HasKey returns true if the keyboard is believed to have the + // key. In some cases a keyboard may have keys with this name + // but no support for them, while in others a key may be reported + // as supported but not actually be usable (such as some emulators + // that hijack certain keys). Its best not to depend to strictly + // on this function, but it can be used for hinting when building + // menus, displayed hot-keys, etc. Note that KeyRune (literal + // runes) is always true. + HasKey(Key) bool + + // Beep attempts to sound an OS-dependent audible alert and returns an error + // when unsuccessful. + Beep() error +} + +// NewScreen returns a default Screen suitable for the user's terminal +// environment. +func NewScreen() (Screen, error) { + // Windows is happier if we try for a console screen first. + if s, _ := NewConsoleScreen(); s != nil { + return s, nil + } else if s, e := NewTerminfoScreen(); s != nil { + return s, nil + } else { + return nil, e + } +} diff --git a/vendor/github.com/gdamore/tcell/simulation.go b/vendor/github.com/gdamore/tcell/simulation.go new file mode 100644 index 0000000..80e282d --- /dev/null +++ b/vendor/github.com/gdamore/tcell/simulation.go @@ -0,0 +1,512 @@ +// Copyright 2016 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "sync" + "unicode/utf8" + + "golang.org/x/text/transform" +) + +// NewSimulationScreen returns a SimulationScreen. Note that +// SimulationScreen is also a Screen. +func NewSimulationScreen(charset string) SimulationScreen { + if charset == "" { + charset = "UTF-8" + } + s := &simscreen{charset: charset} + return s +} + +// SimulationScreen represents a screen simulation. This is intended to +// be a superset of normal Screens, but also adds some important interfaces +// for testing. +type SimulationScreen interface { + // InjectKeyBytes injects a stream of bytes corresponding to + // the native encoding (see charset). It turns true if the entire + // set of bytes were processed and delivered as KeyEvents, false + // if any bytes were not fully understood. Any bytes that are not + // fully converted are discarded. + InjectKeyBytes(buf []byte) bool + + // InjectKey injects a key event. The rune is a UTF-8 rune, post + // any translation. + InjectKey(key Key, r rune, mod ModMask) + + // InjectMouse injects a mouse event. + InjectMouse(x, y int, buttons ButtonMask, mod ModMask) + + // SetSize resizes the underlying physical screen. It also causes + // a resize event to be injected during the next Show() or Sync(). + // A new physical contents array will be allocated (with data from + // the old copied), so any prior value obtained with GetContents + // won't be used anymore + SetSize(width, height int) + + // GetContents returns screen contents as an array of + // cells, along with the physical width & height. Note that the + // physical contents will be used until the next time SetSize() + // is called. + GetContents() (cells []SimCell, width int, height int) + + // GetCursor returns the cursor details. + GetCursor() (x int, y int, visible bool) + + Screen +} + +// SimCell represents a simulated screen cell. The purpose of this +// is to track on screen content. +type SimCell struct { + // Bytes is the actual character bytes. Normally this is + // rune data, but it could be be data in another encoding system. + Bytes []byte + + // Style is the style used to display the data. + Style Style + + // Runes is the list of runes, unadulterated, in UTF-8. + Runes []rune +} + +type simscreen struct { + physw int + physh int + fini bool + style Style + evch chan Event + quit chan struct{} + + front []SimCell + back CellBuffer + clear bool + cursorx int + cursory int + cursorvis bool + mouse bool + charset string + encoder transform.Transformer + decoder transform.Transformer + fillchar rune + fillstyle Style + fallback map[rune]string + + sync.Mutex +} + +func (s *simscreen) Init() error { + s.evch = make(chan Event, 10) + s.quit = make(chan struct{}) + s.fillchar = 'X' + s.fillstyle = StyleDefault + s.mouse = false + s.physw = 80 + s.physh = 25 + s.cursorx = -1 + s.cursory = -1 + s.style = StyleDefault + + if enc := GetEncoding(s.charset); enc != nil { + s.encoder = enc.NewEncoder() + s.decoder = enc.NewDecoder() + } else { + return ErrNoCharset + } + + s.front = make([]SimCell, s.physw*s.physh) + s.back.Resize(80, 25) + + // default fallbacks + s.fallback = make(map[rune]string) + for k, v := range RuneFallbacks { + s.fallback[k] = v + } + return nil +} + +func (s *simscreen) Fini() { + s.Lock() + s.fini = true + s.back.Resize(0, 0) + s.Unlock() + if s.quit != nil { + close(s.quit) + } + s.physw = 0 + s.physh = 0 + s.front = nil +} + +func (s *simscreen) SetStyle(style Style) { + s.Lock() + s.style = style + s.Unlock() +} + +func (s *simscreen) Clear() { + s.Fill(' ', s.style) +} + +func (s *simscreen) Fill(r rune, style Style) { + s.Lock() + s.back.Fill(r, style) + s.Unlock() +} + +func (s *simscreen) SetCell(x, y int, style Style, ch ...rune) { + + if len(ch) > 0 { + s.SetContent(x, y, ch[0], ch[1:], style) + } else { + s.SetContent(x, y, ' ', nil, style) + } +} + +func (s *simscreen) SetContent(x, y int, mainc rune, combc []rune, st Style) { + + s.Lock() + s.back.SetContent(x, y, mainc, combc, st) + s.Unlock() +} + +func (s *simscreen) GetContent(x, y int) (rune, []rune, Style, int) { + var mainc rune + var combc []rune + var style Style + var width int + s.Lock() + mainc, combc, style, width = s.back.GetContent(x, y) + s.Unlock() + return mainc, combc, style, width +} + +func (s *simscreen) drawCell(x, y int) int { + + mainc, combc, style, width := s.back.GetContent(x, y) + if !s.back.Dirty(x, y) { + return width + } + if x >= s.physw || y >= s.physh || x < 0 || y < 0 { + return width + } + simc := &s.front[(y*s.physw)+x] + + if style == StyleDefault { + style = s.style + } + simc.Style = style + simc.Runes = append([]rune{mainc}, combc...) + + // now emit runes - taking care to not overrun width with a + // wide character, and to ensure that we emit exactly one regular + // character followed up by any residual combing characters + + simc.Bytes = nil + + if x > s.physw-width { + simc.Runes = []rune{' '} + simc.Bytes = []byte{' '} + return width + } + + lbuf := make([]byte, 12) + ubuf := make([]byte, 12) + nout := 0 + + for _, r := range simc.Runes { + + l := utf8.EncodeRune(ubuf, r) + + nout, _, _ = s.encoder.Transform(lbuf, ubuf[:l], true) + + if nout == 0 || lbuf[0] == '\x1a' { + + // skip combining + + if subst, ok := s.fallback[r]; ok { + simc.Bytes = append(simc.Bytes, + []byte(subst)...) + + } else if r >= ' ' && r <= '~' { + simc.Bytes = append(simc.Bytes, byte(r)) + + } else if simc.Bytes == nil { + simc.Bytes = append(simc.Bytes, '?') + } + } else { + simc.Bytes = append(simc.Bytes, lbuf[:nout]...) + } + } + s.back.SetDirty(x, y, false) + return width +} + +func (s *simscreen) ShowCursor(x, y int) { + s.Lock() + s.cursorx, s.cursory = x, y + s.showCursor() + s.Unlock() +} + +func (s *simscreen) HideCursor() { + s.ShowCursor(-1, -1) +} + +func (s *simscreen) showCursor() { + + x, y := s.cursorx, s.cursory + if x < 0 || y < 0 || x >= s.physw || y >= s.physh { + s.cursorvis = false + } else { + s.cursorvis = true + } +} + +func (s *simscreen) hideCursor() { + // does not update cursor position + s.cursorvis = false +} + +func (s *simscreen) Show() { + s.Lock() + s.resize() + s.draw() + s.Unlock() +} + +func (s *simscreen) clearScreen() { + // We emulate a hardware clear by filling with a specific pattern + for i := range s.front { + s.front[i].Style = s.fillstyle + s.front[i].Runes = []rune{s.fillchar} + s.front[i].Bytes = []byte{byte(s.fillchar)} + } + s.clear = false +} + +func (s *simscreen) draw() { + s.hideCursor() + if s.clear { + s.clearScreen() + } + + w, h := s.back.Size() + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + width := s.drawCell(x, y) + x += width - 1 + } + } + s.showCursor() +} + +func (s *simscreen) EnableMouse() { + s.mouse = true +} + +func (s *simscreen) DisableMouse() { + s.mouse = false +} + +func (s *simscreen) Size() (int, int) { + s.Lock() + w, h := s.back.Size() + s.Unlock() + return w, h +} + +func (s *simscreen) resize() { + w, h := s.physw, s.physh + ow, oh := s.back.Size() + if w != ow || h != oh { + s.back.Resize(w, h) + ev := NewEventResize(w, h) + s.PostEvent(ev) + } +} + +func (s *simscreen) Colors() int { + return 256 +} + +func (s *simscreen) PollEvent() Event { + select { + case <-s.quit: + return nil + case ev := <-s.evch: + return ev + } +} + +func (s *simscreen) PostEventWait(ev Event) { + s.evch <- ev +} + +func (s *simscreen) PostEvent(ev Event) error { + select { + case s.evch <- ev: + return nil + default: + return ErrEventQFull + } +} + +func (s *simscreen) InjectMouse(x, y int, buttons ButtonMask, mod ModMask) { + ev := NewEventMouse(x, y, buttons, mod) + s.PostEvent(ev) +} + +func (s *simscreen) InjectKey(key Key, r rune, mod ModMask) { + ev := NewEventKey(key, r, mod) + s.PostEvent(ev) +} + +func (s *simscreen) InjectKeyBytes(b []byte) bool { + failed := false + +outer: + for len(b) > 0 { + if b[0] >= ' ' && b[0] <= 0x7F { + // printable ASCII easy to deal with -- no encodings + ev := NewEventKey(KeyRune, rune(b[0]), ModNone) + s.PostEvent(ev) + b = b[1:] + continue + } + + if b[0] < 0x80 { + mod := ModNone + // No encodings start with low numbered values + if Key(b[0]) >= KeyCtrlA && Key(b[0]) <= KeyCtrlZ { + mod = ModCtrl + } + ev := NewEventKey(Key(b[0]), 0, mod) + s.PostEvent(ev) + continue + } + + utfb := make([]byte, len(b)*4) // worst case + for l := 1; l < len(b); l++ { + s.decoder.Reset() + nout, nin, _ := s.decoder.Transform(utfb, b[:l], true) + + if nout != 0 { + r, _ := utf8.DecodeRune(utfb[:nout]) + if r != utf8.RuneError { + ev := NewEventKey(KeyRune, r, ModNone) + s.PostEvent(ev) + } + b = b[nin:] + continue outer + } + } + failed = true + b = b[1:] + continue + } + + return !failed +} + +func (s *simscreen) Sync() { + s.Lock() + s.clear = true + s.resize() + s.back.Invalidate() + s.draw() + s.Unlock() +} + +func (s *simscreen) CharacterSet() string { + return s.charset +} + +func (s *simscreen) SetSize(w, h int) { + s.Lock() + newc := make([]SimCell, w*h) + for row := 0; row < h && row < s.physh; row++ { + for col := 0; col < w && col < s.physw; col++ { + newc[(row*w)+col] = s.front[(row*s.physw)+col] + } + } + s.cursorx, s.cursory = -1, -1 + s.physw, s.physh = w, h + s.front = newc + s.back.Resize(w, h) + s.Unlock() +} + +func (s *simscreen) GetContents() ([]SimCell, int, int) { + s.Lock() + cells, w, h := s.front, s.physw, s.physh + s.Unlock() + return cells, w, h +} + +func (s *simscreen) GetCursor() (int, int, bool) { + s.Lock() + x, y, vis := s.cursorx, s.cursory, s.cursorvis + s.Unlock() + return x, y, vis +} + +func (s *simscreen) RegisterRuneFallback(r rune, subst string) { + s.Lock() + s.fallback[r] = subst + s.Unlock() +} + +func (s *simscreen) UnregisterRuneFallback(r rune) { + s.Lock() + delete(s.fallback, r) + s.Unlock() +} + +func (s *simscreen) CanDisplay(r rune, checkFallbacks bool) bool { + + if enc := s.encoder; enc != nil { + nb := make([]byte, 6) + ob := make([]byte, 6) + num := utf8.EncodeRune(ob, r) + + enc.Reset() + dst, _, err := enc.Transform(nb, ob[:num], true) + if dst != 0 && err == nil && nb[0] != '\x1A' { + return true + } + } + if !checkFallbacks { + return false + } + if _, ok := s.fallback[r]; ok { + return true + } + return false +} + +func (s *simscreen) HasMouse() bool { + return false +} + +func (s *simscreen) Resize(int, int, int, int) {} + +func (s *simscreen) HasKey(Key) bool { + return true +} + +func (s *simscreen) Beep() error { + return nil +} diff --git a/vendor/github.com/gdamore/tcell/style.go b/vendor/github.com/gdamore/tcell/style.go new file mode 100644 index 0000000..c7ea997 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/style.go @@ -0,0 +1,132 @@ +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// Style represents a complete text style, including both foreground +// and background color. We encode it in a 64-bit int for efficiency. +// The coding is (MSB): <7b flags><1b><24b fgcolor><7b attr><1b><24b bgcolor>. +// The <1b> is set true to indicate that the color is an RGB color, rather +// than a named index. +// +// This gives 24bit color options, if it ever becomes truly necessary. +// However, applications must not rely on this encoding. +// +// Note that not all terminals can display all colors or attributes, and +// many might have specific incompatibilities between specific attributes +// and color combinations. +// +// The intention is to extend styles to support paletting, in which case +// some flag bit(s) would be set, and the foreground and background colors +// would be replaced with a palette number and palette index. +// +// To use Style, just declare a variable of its type. +type Style int64 + +// StyleDefault represents a default style, based upon the context. +// It is the zero value. +const StyleDefault Style = 0 + +// styleFlags -- used internally for now. +const ( + styleBgSet = 1 << (iota + 57) + styleFgSet + stylePalette +) + +// Foreground returns a new style based on s, with the foreground color set +// as requested. ColorDefault can be used to select the global default. +func (s Style) Foreground(c Color) Style { + if c == ColorDefault { + return (s &^ (0x1ffffff00000000 | styleFgSet)) + } + return (s &^ Style(0x1ffffff00000000)) | + ((Style(c) & 0x1ffffff) << 32) | styleFgSet +} + +// Background returns a new style based on s, with the background color set +// as requested. ColorDefault can be used to select the global default. +func (s Style) Background(c Color) Style { + if c == ColorDefault { + return (s &^ (0x1ffffff | styleBgSet)) + } + return (s &^ (0x1ffffff)) | (Style(c) & 0x1ffffff) | styleBgSet +} + +// Decompose breaks a style up, returning the foreground, background, +// and other attributes. +func (s Style) Decompose() (fg Color, bg Color, attr AttrMask) { + if s&styleFgSet != 0 { + fg = Color(s>>32) & 0x1ffffff + } else { + fg = ColorDefault + } + if s&styleBgSet != 0 { + bg = Color(s & 0x1ffffff) + } else { + bg = ColorDefault + } + attr = AttrMask(s) & attrAll + + return fg, bg, attr +} + +func (s Style) setAttrs(attrs Style, on bool) Style { + if on { + return s | attrs + } + return s &^ attrs +} + +// Normal returns the style with all attributes disabled. +func (s Style) Normal() Style { + return s &^ Style(attrAll) +} + +// Bold returns a new style based on s, with the bold attribute set +// as requested. +func (s Style) Bold(on bool) Style { + return s.setAttrs(Style(AttrBold), on) +} + +// Blink returns a new style based on s, with the blink attribute set +// as requested. +func (s Style) Blink(on bool) Style { + return s.setAttrs(Style(AttrBlink), on) +} + +// Dim returns a new style based on s, with the dim attribute set +// as requested. +func (s Style) Dim(on bool) Style { + return s.setAttrs(Style(AttrDim), on) +} + +// Italic returns a new style based on s, with the italic attribute set +// as requested. +func (s Style) Italic(on bool) Style { + return s.setAttrs(Style(AttrItalic), on) +} + +// Reverse returns a new style based on s, with the reverse attribute set +// as requested. (Reverse usually changes the foreground and background +// colors.) +func (s Style) Reverse(on bool) Style { + return s.setAttrs(Style(AttrReverse), on) +} + +// Underline returns a new style based on s, with the underline attribute set +// as requested. +func (s Style) Underline(on bool) Style { + return s.setAttrs(Style(AttrUnderline), on) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/.gitignore b/vendor/github.com/gdamore/tcell/terminfo/.gitignore new file mode 100644 index 0000000..74f3c04 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/.gitignore @@ -0,0 +1 @@ +mkinfo diff --git a/vendor/github.com/gdamore/tcell/terminfo/README.md b/vendor/github.com/gdamore/tcell/terminfo/README.md new file mode 100644 index 0000000..20ae937 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/README.md @@ -0,0 +1,25 @@ +This package represents the parent for all terminals. + +In older versions of tcell we had (a couple of) different +external file formats for the terminal database. Those are +now removed. All terminal definitions are supplied by +one of two methods: + +1. Compiled Go code + +2. For systems with terminfo and infocmp, dynamically + generated at runtime. + +The Go code can be generated using the mkinfo utility in +this directory. The database entry should be generated +into a package in a directory named as the first character +of the package name. (This permits us to group them all +without having a huge directory of little packages.) + +It may be desirable to add new packages to the extended +package, or -- rarely -- the base package. + +Applications which want to have the large set of terminal +descriptions built into the binary can simply import the +extended package. Otherwise a smaller reasonable default +set (the base package) will be included instead. diff --git a/vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md b/vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md new file mode 100644 index 0000000..85c1e61 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/TERMINALS.md @@ -0,0 +1,7 @@ +TERMINALS +========= + +The best way to populate terminals on Debian is to install ncurses, +ncurses-term, screen, tmux, rxvt-unicode, and dvtm. This populates the +the terminfo database so that we can have a reasonable set of starting +terminals. diff --git a/vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go b/vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go new file mode 100644 index 0000000..dd8cf0f --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/a/adm3a/term.go @@ -0,0 +1,25 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package adm3a + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // lsi adm3a + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "adm3a", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1a$<1/>", + PadChar: "\x00", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\n", + KeyRight: "\f", + KeyLeft: "\b", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go new file mode 100644 index 0000000..9dc082c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/a/aixterm/term.go @@ -0,0 +1,81 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package aixterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // IBM Aixterm Terminal Emulator + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "aixterm", + Columns: 80, + Lines: 25, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[0;10m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "jjkkllmmnnqqttuuvvwwxx", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[139q", + KeyDelete: "\x1b[P", + KeyBackspace: "\b", + KeyHome: "\x1b[H", + KeyEnd: "\x1b[146q", + KeyPgUp: "\x1b[150q", + KeyPgDn: "\x1b[154q", + KeyF1: "\x1b[001q", + KeyF2: "\x1b[002q", + KeyF3: "\x1b[003q", + KeyF4: "\x1b[004q", + KeyF5: "\x1b[005q", + KeyF6: "\x1b[006q", + KeyF7: "\x1b[007q", + KeyF8: "\x1b[008q", + KeyF9: "\x1b[009q", + KeyF10: "\x1b[010q", + KeyF11: "\x1b[011q", + KeyF12: "\x1b[012q", + KeyF13: "\x1b[013q", + KeyF14: "\x1b[014q", + KeyF15: "\x1b[015q", + KeyF16: "\x1b[016q", + KeyF17: "\x1b[017q", + KeyF18: "\x1b[018q", + KeyF19: "\x1b[019q", + KeyF20: "\x1b[020q", + KeyF21: "\x1b[021q", + KeyF22: "\x1b[022q", + KeyF23: "\x1b[023q", + KeyF24: "\x1b[024q", + KeyF25: "\x1b[025q", + KeyF26: "\x1b[026q", + KeyF27: "\x1b[027q", + KeyF28: "\x1b[028q", + KeyF29: "\x1b[029q", + KeyF30: "\x1b[030q", + KeyF31: "\x1b[031q", + KeyF32: "\x1b[032q", + KeyF33: "\x1b[033q", + KeyF34: "\x1b[034q", + KeyF35: "\x1b[035q", + KeyF36: "\x1b[036q", + KeyClear: "\x1b[144q", + KeyBacktab: "\x1b[Z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go b/vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go new file mode 100644 index 0000000..09d56e1 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/a/alacritty/term.go @@ -0,0 +1,158 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package alacritty + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // alacritty terminal emulator + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "alacritty", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h\x1b[22;0;0t", + ExitCA: "\x1b[?1049l\x1b[23;0;0t", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go b/vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go new file mode 100644 index 0000000..4500c17 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/a/ansi/term.go @@ -0,0 +1,41 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package ansi + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // ansi/pc-term compatible with color + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "ansi", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[0;10m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe", + EnterAcs: "\x1b[11m", + ExitAcs: "\x1b[10m", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\x1b[D", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[L", + KeyBackspace: "\b", + KeyHome: "\x1b[H", + KeyBacktab: "\x1b[Z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go new file mode 100644 index 0000000..4a6d6e6 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/a/aterm/term.go @@ -0,0 +1,110 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package aterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // AfterStep terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "aterm", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go new file mode 100644 index 0000000..184d046 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/b/beterm/term.go @@ -0,0 +1,54 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package beterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // BeOS Terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "beterm", + Columns: 80, + Lines: 25, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[0;10m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?4h", + ExitKeypad: "\x1b[?4l", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[16~", + KeyF7: "\x1b[17~", + KeyF8: "\x1b[18~", + KeyF9: "\x1b[19~", + KeyF10: "\x1b[20~", + KeyF11: "\x1b[21~", + KeyF12: "\x1b[22~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go b/vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go new file mode 100644 index 0000000..3174cc7 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/b/bsdos_pc/term.go @@ -0,0 +1,42 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package bsdos_pc + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // IBM PC BSD/OS Console + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "bsdos-pc", + Columns: 80, + Lines: 25, + Colors: 8, + Bell: "\a", + Clear: "\x1bc", + AttrOff: "\x1b[0;10m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe", + EnterAcs: "\x1b[11m", + ExitAcs: "\x1b[10m", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[L", + KeyBackspace: "\b", + KeyHome: "\x1b[H", + KeyPgUp: "\x1b[I", + KeyPgDn: "\x1b[G", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/base/base.go b/vendor/github.com/gdamore/tcell/terminfo/base/base.go new file mode 100644 index 0000000..49e6c01 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/base/base.go @@ -0,0 +1,32 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This is just a "minimalist" set of the base terminal descriptions. +// It should be sufficient for most applications. + +// Package base contains the base terminal descriptions that are likely +// to be needed by any stock application. It is imported by default in the +// terminfo package, so terminal types listed here will be available to any +// tcell application. +package base + +import ( + // The following imports just register themselves -- + // thse are the terminal types we aggregate in this package. + _ "github.com/gdamore/tcell/terminfo/a/ansi" + _ "github.com/gdamore/tcell/terminfo/v/vt100" + _ "github.com/gdamore/tcell/terminfo/v/vt102" + _ "github.com/gdamore/tcell/terminfo/v/vt220" + _ "github.com/gdamore/tcell/terminfo/x/xterm" +) diff --git a/vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go b/vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go new file mode 100644 index 0000000..d4d1041 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/c/cygwin/term.go @@ -0,0 +1,63 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package cygwin + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // ANSI emulation for Cygwin + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "cygwin", + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + AttrOff: "\x1b[0;10m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe", + EnterAcs: "\x1b[11m", + ExitAcs: "\x1b[10m", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[[A", + KeyF2: "\x1b[[B", + KeyF3: "\x1b[[C", + KeyF4: "\x1b[[D", + KeyF5: "\x1b[[E", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go b/vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go new file mode 100644 index 0000000..5950d5c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/d/d200/term.go @@ -0,0 +1,97 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package d200 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Data General DASHER D200 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "d200", + Aliases: []string{"d200-dg"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\f", + AttrOff: "\x0f\x15\x1d\x1eE", + Underline: "\x14", + Bold: "\x1eD\x14", + Dim: "\x1c", + Blink: "\x0e", + Reverse: "\x1eD", + PadChar: "\x00", + SetCursor: "\x10%p2%c%p1%c", + CursorBack1: "\x19", + CursorUp1: "\x17", + KeyUp: "\x17", + KeyDown: "\x1a", + KeyRight: "\x18", + KeyLeft: "\x19", + KeyHome: "\b", + KeyF1: "\x1eq", + KeyF2: "\x1er", + KeyF3: "\x1es", + KeyF4: "\x1et", + KeyF5: "\x1eu", + KeyF6: "\x1ev", + KeyF7: "\x1ew", + KeyF8: "\x1ex", + KeyF9: "\x1ey", + KeyF10: "\x1ez", + KeyF11: "\x1e{", + KeyF12: "\x1e|", + KeyF13: "\x1e}", + KeyF14: "\x1e~", + KeyF15: "\x1ep", + KeyF16: "\x1ea", + KeyF17: "\x1eb", + KeyF18: "\x1ec", + KeyF19: "\x1ed", + KeyF20: "\x1ee", + KeyF21: "\x1ef", + KeyF22: "\x1eg", + KeyF23: "\x1eh", + KeyF24: "\x1ei", + KeyF25: "\x1ej", + KeyF26: "\x1ek", + KeyF27: "\x1el", + KeyF28: "\x1em", + KeyF29: "\x1en", + KeyF30: "\x1e`", + KeyF31: "\x1e1", + KeyF32: "\x1e2", + KeyF33: "\x1e3", + KeyF34: "\x1e4", + KeyF35: "\x1e5", + KeyF36: "\x1e6", + KeyF37: "\x1e7", + KeyF38: "\x1e8", + KeyF39: "\x1e9", + KeyF40: "\x1e:", + KeyF41: "\x1e;", + KeyF42: "\x1e<", + KeyF43: "\x1e=", + KeyF44: "\x1e>", + KeyF45: "\x1e0", + KeyF46: "\x1e!", + KeyF47: "\x1e\"", + KeyF48: "\x1e#", + KeyF49: "\x1e$", + KeyF50: "\x1e%%", + KeyF51: "\x1e&", + KeyF52: "\x1e'", + KeyF53: "\x1e(", + KeyF54: "\x1e)", + KeyF55: "\x1e*", + KeyF56: "\x1e+", + KeyF57: "\x1e,", + KeyF58: "\x1e-", + KeyF59: "\x1e.", + KeyF60: "\x1e ", + KeyClear: "\f", + KeyShfLeft: "\x1e\x19", + KeyShfRight: "\x1e\x18", + KeyShfHome: "\x1e\b", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go b/vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go new file mode 100644 index 0000000..13a56cc --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/d/d210/term.go @@ -0,0 +1,95 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package d210 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Data General DASHER D210 series + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "d210", + Aliases: []string{"d214"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[2J", + AttrOff: "\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[4;7m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyHome: "\x1b[H", + KeyF1: "\x1b[001z", + KeyF2: "\x1b[002z", + KeyF3: "\x1b[003z", + KeyF4: "\x1b[004z", + KeyF5: "\x1b[005z", + KeyF6: "\x1b[006z", + KeyF7: "\x1b[007z", + KeyF8: "\x1b[008z", + KeyF9: "\x1b[009z", + KeyF10: "\x1b[010z", + KeyF11: "\x1b[011z", + KeyF12: "\x1b[012z", + KeyF13: "\x1b[013z", + KeyF14: "\x1b[014z", + KeyF15: "\x1b[000z", + KeyF16: "\x1b[101z", + KeyF17: "\x1b[102z", + KeyF18: "\x1b[103z", + KeyF19: "\x1b[104z", + KeyF20: "\x1b[105z", + KeyF21: "\x1b[106z", + KeyF22: "\x1b[107z", + KeyF23: "\x1b[108z", + KeyF24: "\x1b[109z", + KeyF25: "\x1b[110z", + KeyF26: "\x1b[111z", + KeyF27: "\x1b[112z", + KeyF28: "\x1b[113z", + KeyF29: "\x1b[114z", + KeyF30: "\x1b[100z", + KeyF31: "\x1b[201z", + KeyF32: "\x1b[202z", + KeyF33: "\x1b[203z", + KeyF34: "\x1b[204z", + KeyF35: "\x1b[205z", + KeyF36: "\x1b[206z", + KeyF37: "\x1b[207z", + KeyF38: "\x1b[208z", + KeyF39: "\x1b[209z", + KeyF40: "\x1b[210z", + KeyF41: "\x1b[211z", + KeyF42: "\x1b[212z", + KeyF43: "\x1b[213z", + KeyF44: "\x1b[214z", + KeyF45: "\x1b[200z", + KeyF46: "\x1b[301z", + KeyF47: "\x1b[302z", + KeyF48: "\x1b[303z", + KeyF49: "\x1b[304z", + KeyF50: "\x1b[305z", + KeyF51: "\x1b[306z", + KeyF52: "\x1b[307z", + KeyF53: "\x1b[308z", + KeyF54: "\x1b[309z", + KeyF55: "\x1b[310z", + KeyF56: "\x1b[311z", + KeyF57: "\x1b[312z", + KeyF58: "\x1b[313z", + KeyF59: "\x1b[314z", + KeyF60: "\x1b[300z", + KeyPrint: "\x1b[i", + KeyClear: "\x1b[2J", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go new file mode 100644 index 0000000..a6366f2 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/d/dtterm/term.go @@ -0,0 +1,67 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package dtterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // CDE desktop terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "dtterm", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyHelp: "\x1b[28~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go b/vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go new file mode 100644 index 0000000..2cb7480 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/dynamic/dynamic.go @@ -0,0 +1,429 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The dynamic package is used to generate a terminal description dynamically, +// using infocmp. This is really a method of last resort, as the performance +// will be slow, and it requires a working infocmp. But, the hope is that it +// will assist folks who have to deal with a terminal description that isn't +// already built in. This requires infocmp to be in the user's path, and to +// support reasonably the -1 option. + +package dynamic + +import ( + "bytes" + "errors" + "os/exec" + "regexp" + "strconv" + "strings" + + "github.com/gdamore/tcell/terminfo" +) + +type termcap struct { + name string + desc string + aliases []string + bools map[string]bool + nums map[string]int + strs map[string]string +} + +func (tc *termcap) getnum(s string) int { + return (tc.nums[s]) +} + +func (tc *termcap) getflag(s string) bool { + return (tc.bools[s]) +} + +func (tc *termcap) getstr(s string) string { + return (tc.strs[s]) +} + +const ( + none = iota + control + escaped +) + +var errNotAddressable = errors.New("terminal not cursor addressable") + +func unescape(s string) string { + // Various escapes are in \x format. Control codes are + // encoded as ^M (carat followed by ASCII equivalent). + // escapes are: \e, \E - escape + // \0 NULL, \n \l \r \t \b \f \s for equivalent C escape. + buf := &bytes.Buffer{} + esc := none + + for i := 0; i < len(s); i++ { + c := s[i] + switch esc { + case none: + switch c { + case '\\': + esc = escaped + case '^': + esc = control + default: + buf.WriteByte(c) + } + case control: + buf.WriteByte(c ^ 1<<6) + esc = none + case escaped: + switch c { + case 'E', 'e': + buf.WriteByte(0x1b) + case '0', '1', '2', '3', '4', '5', '6', '7': + if i+2 < len(s) && s[i+1] >= '0' && s[i+1] <= '7' && s[i+2] >= '0' && s[i+2] <= '7' { + buf.WriteByte(((c - '0') * 64) + ((s[i+1] - '0') * 8) + (s[i+2] - '0')) + i = i + 2 + } else if c == '0' { + buf.WriteByte(0) + } + case 'n': + buf.WriteByte('\n') + case 'r': + buf.WriteByte('\r') + case 't': + buf.WriteByte('\t') + case 'b': + buf.WriteByte('\b') + case 'f': + buf.WriteByte('\f') + case 's': + buf.WriteByte(' ') + default: + buf.WriteByte(c) + } + esc = none + } + } + return (buf.String()) +} + +func (tc *termcap) setupterm(name string) error { + cmd := exec.Command("infocmp", "-1", name) + output := &bytes.Buffer{} + cmd.Stdout = output + + tc.strs = make(map[string]string) + tc.bools = make(map[string]bool) + tc.nums = make(map[string]int) + + if err := cmd.Run(); err != nil { + return err + } + + // Now parse the output. + // We get comment lines (starting with "#"), followed by + // a header line that looks like "||...|" + // then capabilities, one per line, starting with a tab and ending + // with a comma and newline. + lines := strings.Split(output.String(), "\n") + for len(lines) > 0 && strings.HasPrefix(lines[0], "#") { + lines = lines[1:] + } + + // Ditch trailing empty last line + if lines[len(lines)-1] == "" { + lines = lines[:len(lines)-1] + } + header := lines[0] + if strings.HasSuffix(header, ",") { + header = header[:len(header)-1] + } + names := strings.Split(header, "|") + tc.name = names[0] + names = names[1:] + if len(names) > 0 { + tc.desc = names[len(names)-1] + names = names[:len(names)-1] + } + tc.aliases = names + for _, val := range lines[1:] { + if (!strings.HasPrefix(val, "\t")) || + (!strings.HasSuffix(val, ",")) { + return (errors.New("malformed infocmp: " + val)) + } + + val = val[1:] + val = val[:len(val)-1] + + if k := strings.SplitN(val, "=", 2); len(k) == 2 { + tc.strs[k[0]] = unescape(k[1]) + } else if k := strings.SplitN(val, "#", 2); len(k) == 2 { + u, err := strconv.ParseUint(k[1], 0, 0) + if err != nil { + return (err) + } + tc.nums[k[0]] = int(u) + } else { + tc.bools[val] = true + } + } + return nil +} + +// LoadTerminfo creates a Terminfo by for named terminal by attempting to parse +// the output from infocmp. This returns the terminfo entry, a description of +// the terminal, and either nil or an error. +func LoadTerminfo(name string) (*terminfo.Terminfo, string, error) { + var tc termcap + if err := tc.setupterm(name); err != nil { + if err != nil { + return nil, "", err + } + } + t := &terminfo.Terminfo{} + // If this is an alias record, then just emit the alias + t.Name = tc.name + if t.Name != name { + return t, "", nil + } + t.Aliases = tc.aliases + t.Colors = tc.getnum("colors") + t.Columns = tc.getnum("cols") + t.Lines = tc.getnum("lines") + t.Bell = tc.getstr("bel") + t.Clear = tc.getstr("clear") + t.EnterCA = tc.getstr("smcup") + t.ExitCA = tc.getstr("rmcup") + t.ShowCursor = tc.getstr("cnorm") + t.HideCursor = tc.getstr("civis") + t.AttrOff = tc.getstr("sgr0") + t.Underline = tc.getstr("smul") + t.Bold = tc.getstr("bold") + t.Blink = tc.getstr("blink") + t.Dim = tc.getstr("dim") + t.Italic = tc.getstr("sitm") + t.Reverse = tc.getstr("rev") + t.EnterKeypad = tc.getstr("smkx") + t.ExitKeypad = tc.getstr("rmkx") + t.SetFg = tc.getstr("setaf") + t.SetBg = tc.getstr("setab") + t.SetCursor = tc.getstr("cup") + t.CursorBack1 = tc.getstr("cub1") + t.CursorUp1 = tc.getstr("cuu1") + t.KeyF1 = tc.getstr("kf1") + t.KeyF2 = tc.getstr("kf2") + t.KeyF3 = tc.getstr("kf3") + t.KeyF4 = tc.getstr("kf4") + t.KeyF5 = tc.getstr("kf5") + t.KeyF6 = tc.getstr("kf6") + t.KeyF7 = tc.getstr("kf7") + t.KeyF8 = tc.getstr("kf8") + t.KeyF9 = tc.getstr("kf9") + t.KeyF10 = tc.getstr("kf10") + t.KeyF11 = tc.getstr("kf11") + t.KeyF12 = tc.getstr("kf12") + t.KeyF13 = tc.getstr("kf13") + t.KeyF14 = tc.getstr("kf14") + t.KeyF15 = tc.getstr("kf15") + t.KeyF16 = tc.getstr("kf16") + t.KeyF17 = tc.getstr("kf17") + t.KeyF18 = tc.getstr("kf18") + t.KeyF19 = tc.getstr("kf19") + t.KeyF20 = tc.getstr("kf20") + t.KeyF21 = tc.getstr("kf21") + t.KeyF22 = tc.getstr("kf22") + t.KeyF23 = tc.getstr("kf23") + t.KeyF24 = tc.getstr("kf24") + t.KeyF25 = tc.getstr("kf25") + t.KeyF26 = tc.getstr("kf26") + t.KeyF27 = tc.getstr("kf27") + t.KeyF28 = tc.getstr("kf28") + t.KeyF29 = tc.getstr("kf29") + t.KeyF30 = tc.getstr("kf30") + t.KeyF31 = tc.getstr("kf31") + t.KeyF32 = tc.getstr("kf32") + t.KeyF33 = tc.getstr("kf33") + t.KeyF34 = tc.getstr("kf34") + t.KeyF35 = tc.getstr("kf35") + t.KeyF36 = tc.getstr("kf36") + t.KeyF37 = tc.getstr("kf37") + t.KeyF38 = tc.getstr("kf38") + t.KeyF39 = tc.getstr("kf39") + t.KeyF40 = tc.getstr("kf40") + t.KeyF41 = tc.getstr("kf41") + t.KeyF42 = tc.getstr("kf42") + t.KeyF43 = tc.getstr("kf43") + t.KeyF44 = tc.getstr("kf44") + t.KeyF45 = tc.getstr("kf45") + t.KeyF46 = tc.getstr("kf46") + t.KeyF47 = tc.getstr("kf47") + t.KeyF48 = tc.getstr("kf48") + t.KeyF49 = tc.getstr("kf49") + t.KeyF50 = tc.getstr("kf50") + t.KeyF51 = tc.getstr("kf51") + t.KeyF52 = tc.getstr("kf52") + t.KeyF53 = tc.getstr("kf53") + t.KeyF54 = tc.getstr("kf54") + t.KeyF55 = tc.getstr("kf55") + t.KeyF56 = tc.getstr("kf56") + t.KeyF57 = tc.getstr("kf57") + t.KeyF58 = tc.getstr("kf58") + t.KeyF59 = tc.getstr("kf59") + t.KeyF60 = tc.getstr("kf60") + t.KeyF61 = tc.getstr("kf61") + t.KeyF62 = tc.getstr("kf62") + t.KeyF63 = tc.getstr("kf63") + t.KeyF64 = tc.getstr("kf64") + t.KeyInsert = tc.getstr("kich1") + t.KeyDelete = tc.getstr("kdch1") + t.KeyBackspace = tc.getstr("kbs") + t.KeyHome = tc.getstr("khome") + t.KeyEnd = tc.getstr("kend") + t.KeyUp = tc.getstr("kcuu1") + t.KeyDown = tc.getstr("kcud1") + t.KeyRight = tc.getstr("kcuf1") + t.KeyLeft = tc.getstr("kcub1") + t.KeyPgDn = tc.getstr("knp") + t.KeyPgUp = tc.getstr("kpp") + t.KeyBacktab = tc.getstr("kcbt") + t.KeyExit = tc.getstr("kext") + t.KeyCancel = tc.getstr("kcan") + t.KeyPrint = tc.getstr("kprt") + t.KeyHelp = tc.getstr("khlp") + t.KeyClear = tc.getstr("kclr") + t.AltChars = tc.getstr("acsc") + t.EnterAcs = tc.getstr("smacs") + t.ExitAcs = tc.getstr("rmacs") + t.EnableAcs = tc.getstr("enacs") + t.Mouse = tc.getstr("kmous") + t.KeyShfRight = tc.getstr("kRIT") + t.KeyShfLeft = tc.getstr("kLFT") + t.KeyShfHome = tc.getstr("kHOM") + t.KeyShfEnd = tc.getstr("kEND") + + // Terminfo lacks descriptions for a bunch of modified keys, + // but modern XTerm and emulators often have them. Let's add them, + // if the shifted right and left arrows are defined. + if t.KeyShfRight == "\x1b[1;2C" && t.KeyShfLeft == "\x1b[1;2D" { + t.KeyShfUp = "\x1b[1;2A" + t.KeyShfDown = "\x1b[1;2B" + t.KeyMetaUp = "\x1b[1;9A" + t.KeyMetaDown = "\x1b[1;9B" + t.KeyMetaRight = "\x1b[1;9C" + t.KeyMetaLeft = "\x1b[1;9D" + t.KeyAltUp = "\x1b[1;3A" + t.KeyAltDown = "\x1b[1;3B" + t.KeyAltRight = "\x1b[1;3C" + t.KeyAltLeft = "\x1b[1;3D" + t.KeyCtrlUp = "\x1b[1;5A" + t.KeyCtrlDown = "\x1b[1;5B" + t.KeyCtrlRight = "\x1b[1;5C" + t.KeyCtrlLeft = "\x1b[1;5D" + t.KeyAltShfUp = "\x1b[1;4A" + t.KeyAltShfDown = "\x1b[1;4B" + t.KeyAltShfRight = "\x1b[1;4C" + t.KeyAltShfLeft = "\x1b[1;4D" + + t.KeyMetaShfUp = "\x1b[1;10A" + t.KeyMetaShfDown = "\x1b[1;10B" + t.KeyMetaShfRight = "\x1b[1;10C" + t.KeyMetaShfLeft = "\x1b[1;10D" + + t.KeyCtrlShfUp = "\x1b[1;6A" + t.KeyCtrlShfDown = "\x1b[1;6B" + t.KeyCtrlShfRight = "\x1b[1;6C" + t.KeyCtrlShfLeft = "\x1b[1;6D" + + t.KeyShfPgUp = "\x1b[5;2~" + t.KeyShfPgDn = "\x1b[6;2~" + } + // And also for Home and End + if t.KeyShfHome == "\x1b[1;2H" && t.KeyShfEnd == "\x1b[1;2F" { + t.KeyCtrlHome = "\x1b[1;5H" + t.KeyCtrlEnd = "\x1b[1;5F" + t.KeyAltHome = "\x1b[1;9H" + t.KeyAltEnd = "\x1b[1;9F" + t.KeyCtrlShfHome = "\x1b[1;6H" + t.KeyCtrlShfEnd = "\x1b[1;6F" + t.KeyAltShfHome = "\x1b[1;4H" + t.KeyAltShfEnd = "\x1b[1;4F" + t.KeyMetaShfHome = "\x1b[1;10H" + t.KeyMetaShfEnd = "\x1b[1;10F" + } + + // And the same thing for rxvt and workalikes (Eterm, aterm, etc.) + // It seems that urxvt at least send escaped as ALT prefix for these, + // although some places seem to indicate a separate ALT key sesquence. + if t.KeyShfRight == "\x1b[c" && t.KeyShfLeft == "\x1b[d" { + t.KeyShfUp = "\x1b[a" + t.KeyShfDown = "\x1b[b" + t.KeyCtrlUp = "\x1b[Oa" + t.KeyCtrlDown = "\x1b[Ob" + t.KeyCtrlRight = "\x1b[Oc" + t.KeyCtrlLeft = "\x1b[Od" + } + if t.KeyShfHome == "\x1b[7$" && t.KeyShfEnd == "\x1b[8$" { + t.KeyCtrlHome = "\x1b[7^" + t.KeyCtrlEnd = "\x1b[8^" + } + + // If the kmous entry is present, then we need to record the + // the codes to enter and exit mouse mode. Sadly, this is not + // part of the terminfo databases anywhere that I've found, but + // is an extension. The escapedape codes are documented in the XTerm + // manual, and all terminals that have kmous are expected to + // use these same codes, unless explicitly configured otherwise + // vi XM. Note that in any event, we only known how to parse either + // x11 or SGR mouse events -- if your terminal doesn't support one + // of these two forms, you maybe out of luck. + t.MouseMode = tc.getstr("XM") + if t.Mouse != "" && t.MouseMode == "" { + // we anticipate that all xterm mouse tracking compatible + // terminals understand mouse tracking (1000), but we hope + // that those that don't understand any-event tracking (1003) + // will at least ignore it. Likewise we hope that terminals + // that don't understand SGR reporting (1006) just ignore it. + t.MouseMode = "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;" + + "\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c" + } + + // We only support colors in ANSI 8 or 256 color mode. + if t.Colors < 8 || t.SetFg == "" { + t.Colors = 0 + } + if t.SetCursor == "" { + return nil, "", errNotAddressable + } + + // For padding, we lookup the pad char. If that isn't present, + // and npc is *not* set, then we assume a null byte. + t.PadChar = tc.getstr("pad") + if t.PadChar == "" { + if !tc.getflag("npc") { + t.PadChar = "\u0000" + } + } + + // For terminals that use "standard" SGR sequences, lets combine the + // foreground and background together. + if strings.HasPrefix(t.SetFg, "\x1b[") && + strings.HasPrefix(t.SetBg, "\x1b[") && + strings.HasSuffix(t.SetFg, "m") && + strings.HasSuffix(t.SetBg, "m") { + fg := t.SetFg[:len(t.SetFg)-1] + r := regexp.MustCompile("%p1") + bg := r.ReplaceAllString(t.SetBg[2:], "%p2") + t.SetFgBg = fg + ";" + bg + } + + return t, tc.desc, nil +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go b/vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go new file mode 100644 index 0000000..4d08753 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/e/emacs/term.go @@ -0,0 +1,60 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package emacs + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // gnu emacs term.el terminal emulation + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "eterm", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + AttrOff: "\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + }) + + // Emacs term.el terminal emulator term-protocol-version 0.96 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "eterm-color", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[%p1%{30}%+%dm", + SetBg: "\x1b[%p1%'('%+%dm", + SetFgBg: "\x1b[%p1%{30}%+%d;%p2%'('%+%dm", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go new file mode 100644 index 0000000..65f0ec3 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/e/eterm/term.go @@ -0,0 +1,309 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package eterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Eterm with xterm-style color support (X Window System) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "Eterm", + Aliases: []string{"Eterm-color"}, + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyHelp: "\x1b[28~", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // Eterm with 88 colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "Eterm-88color", + Columns: 80, + Lines: 24, + Colors: 88, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyHelp: "\x1b[28~", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // Eterm with xterm 256-colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "Eterm-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyHelp: "\x1b[28~", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/extended/extended.go b/vendor/github.com/gdamore/tcell/terminfo/extended/extended.go new file mode 100644 index 0000000..cc0af12 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/extended/extended.go @@ -0,0 +1,69 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package extended contains an extended set of terminal descriptions. +// Applications desiring to have a better chance of Just Working by +// default should include this package. This will significantly increase +// the size of the program. +package extended + +import ( + // The following imports just register themselves -- + // these are the terminal types we aggregate in this package. + _ "github.com/gdamore/tcell/terminfo/a/adm3a" + _ "github.com/gdamore/tcell/terminfo/a/aixterm" + _ "github.com/gdamore/tcell/terminfo/a/alacritty" + _ "github.com/gdamore/tcell/terminfo/a/ansi" + _ "github.com/gdamore/tcell/terminfo/a/aterm" + _ "github.com/gdamore/tcell/terminfo/b/beterm" + _ "github.com/gdamore/tcell/terminfo/b/bsdos_pc" + _ "github.com/gdamore/tcell/terminfo/c/cygwin" + _ "github.com/gdamore/tcell/terminfo/d/d200" + _ "github.com/gdamore/tcell/terminfo/d/d210" + _ "github.com/gdamore/tcell/terminfo/d/dtterm" + _ "github.com/gdamore/tcell/terminfo/e/emacs" + _ "github.com/gdamore/tcell/terminfo/e/eterm" + _ "github.com/gdamore/tcell/terminfo/g/gnome" + _ "github.com/gdamore/tcell/terminfo/h/hpterm" + _ "github.com/gdamore/tcell/terminfo/h/hz1500" + _ "github.com/gdamore/tcell/terminfo/k/konsole" + _ "github.com/gdamore/tcell/terminfo/k/kterm" + _ "github.com/gdamore/tcell/terminfo/l/linux" + _ "github.com/gdamore/tcell/terminfo/p/pcansi" + _ "github.com/gdamore/tcell/terminfo/r/rxvt" + _ "github.com/gdamore/tcell/terminfo/s/screen" + _ "github.com/gdamore/tcell/terminfo/s/simpleterm" + _ "github.com/gdamore/tcell/terminfo/s/sun" + _ "github.com/gdamore/tcell/terminfo/t/termite" + _ "github.com/gdamore/tcell/terminfo/t/tvi910" + _ "github.com/gdamore/tcell/terminfo/t/tvi912" + _ "github.com/gdamore/tcell/terminfo/t/tvi921" + _ "github.com/gdamore/tcell/terminfo/t/tvi925" + _ "github.com/gdamore/tcell/terminfo/t/tvi950" + _ "github.com/gdamore/tcell/terminfo/t/tvi970" + _ "github.com/gdamore/tcell/terminfo/v/vt100" + _ "github.com/gdamore/tcell/terminfo/v/vt102" + _ "github.com/gdamore/tcell/terminfo/v/vt220" + _ "github.com/gdamore/tcell/terminfo/v/vt320" + _ "github.com/gdamore/tcell/terminfo/v/vt400" + _ "github.com/gdamore/tcell/terminfo/v/vt420" + _ "github.com/gdamore/tcell/terminfo/v/vt52" + _ "github.com/gdamore/tcell/terminfo/w/wy50" + _ "github.com/gdamore/tcell/terminfo/w/wy60" + _ "github.com/gdamore/tcell/terminfo/w/wy99_ansi" + _ "github.com/gdamore/tcell/terminfo/x/xfce" + _ "github.com/gdamore/tcell/terminfo/x/xnuppc" + _ "github.com/gdamore/tcell/terminfo/x/xterm" + _ "github.com/gdamore/tcell/terminfo/x/xterm_kitty" +) diff --git a/vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go b/vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go new file mode 100644 index 0000000..8ad3562 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/g/gnome/term.go @@ -0,0 +1,312 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package gnome + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // GNOME Terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "gnome", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1bO1;2P", + KeyF14: "\x1bO1;2Q", + KeyF15: "\x1bO1;2R", + KeyF16: "\x1bO1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1bO1;5P", + KeyF26: "\x1bO1;5Q", + KeyF27: "\x1bO1;5R", + KeyF28: "\x1bO1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1bO1;6P", + KeyF38: "\x1bO1;6Q", + KeyF39: "\x1bO1;6R", + KeyF40: "\x1bO1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1bO1;3P", + KeyF50: "\x1bO1;3Q", + KeyF51: "\x1bO1;3R", + KeyF52: "\x1bO1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1bO1;4P", + KeyF62: "\x1bO1;4Q", + KeyF63: "\x1bO1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) + + // GNOME Terminal with xterm 256-colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "gnome-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[<", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/gen.sh b/vendor/github.com/gdamore/tcell/terminfo/gen.sh new file mode 100644 index 0000000..2fc0611 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/gen.sh @@ -0,0 +1,18 @@ +while read line +do + case "$line" in + *'|'*) + alias=${line#*|} + line=${line%|*} + ;; + *) + alias=${line%%,*} + ;; + esac + + alias=${alias//-/_} + direc=${alias:0:1} + + mkdir -p ${direc}/${alias} + go run mkinfo.go -P ${alias} -go ${direc}/${alias}/term.go ${line//,/ } +done < models.txt diff --git a/vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go new file mode 100644 index 0000000..5e73e04 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/h/hpterm/term.go @@ -0,0 +1,50 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package hpterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // hp X11 terminal emulator + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "hpterm", + Aliases: []string{"X-hpterm"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b&a0y0C\x1bJ", + AttrOff: "\x1b&d@\x0f", + Underline: "\x1b&dD", + Bold: "\x1b&dB", + Dim: "\x1b&dH", + Reverse: "\x1b&dB", + EnterKeypad: "\x1b&s1A", + ExitKeypad: "\x1b&s0A", + PadChar: "\x00", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + SetCursor: "\x1b&a%p1%dy%p2%dC", + CursorBack1: "\b", + CursorUp1: "\x1bA", + KeyUp: "\x1bA", + KeyDown: "\x1bB", + KeyRight: "\x1bC", + KeyLeft: "\x1bD", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bP", + KeyBackspace: "\b", + KeyHome: "\x1bh", + KeyPgUp: "\x1bV", + KeyPgDn: "\x1bU", + KeyF1: "\x1bp", + KeyF2: "\x1bq", + KeyF3: "\x1br", + KeyF4: "\x1bs", + KeyF5: "\x1bt", + KeyF6: "\x1bu", + KeyF7: "\x1bv", + KeyF8: "\x1bw", + KeyClear: "\x1bJ", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go b/vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go new file mode 100644 index 0000000..3ad1810 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/h/hz1500/term.go @@ -0,0 +1,26 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package hz1500 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // hazeltine 1500 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "hz1500", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "~\x1c", + PadChar: "\x00", + SetCursor: "~\x11%p2%p2%?%{30}%>%t%' '%+%;%'`'%+%c%p1%'`'%+%c", + CursorBack1: "\b", + CursorUp1: "~\f", + KeyUp: "~\f", + KeyDown: "\n", + KeyRight: "\x10", + KeyLeft: "\b", + KeyHome: "~\x12", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go b/vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go new file mode 100644 index 0000000..d88881d --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/k/konsole/term.go @@ -0,0 +1,310 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package konsole + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // KDE console window + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "konsole", + Columns: 80, + Lines: 24, + Colors: 8, + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1bO2P", + KeyF14: "\x1bO2Q", + KeyF15: "\x1bO2R", + KeyF16: "\x1bO2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1bO5P", + KeyF26: "\x1bO5Q", + KeyF27: "\x1bO5R", + KeyF28: "\x1bO5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1bO6P", + KeyF38: "\x1bO6Q", + KeyF39: "\x1bO6R", + KeyF40: "\x1bO6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1bO3P", + KeyF50: "\x1bO3Q", + KeyF51: "\x1bO3R", + KeyF52: "\x1bO3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1bO4P", + KeyF62: "\x1bO4Q", + KeyF63: "\x1bO4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) + + // KDE console window with xterm 256-colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "konsole-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1bO2P", + KeyF14: "\x1bO2Q", + KeyF15: "\x1bO2R", + KeyF16: "\x1bO2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1bO5P", + KeyF26: "\x1bO5Q", + KeyF27: "\x1bO5R", + KeyF28: "\x1bO5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1bO6P", + KeyF38: "\x1bO6Q", + KeyF39: "\x1bO6R", + KeyF40: "\x1bO6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1bO3P", + KeyF50: "\x1bO3Q", + KeyF51: "\x1bO3R", + KeyF52: "\x1bO3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1bO4P", + KeyF62: "\x1bO4Q", + KeyF63: "\x1bO4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go new file mode 100644 index 0000000..12daad6 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/k/kterm/term.go @@ -0,0 +1,67 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package kterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // kterm kanji terminal emulator (X window system) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "kterm", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aajjkkllmmnnooppqqrrssttuuvvwwxx~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go b/vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go new file mode 100644 index 0000000..684688f --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/l/linux/term.go @@ -0,0 +1,69 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package linux + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // linux console + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "linux", + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + ShowCursor: "\x1b[?25h\x1b[?0c", + HideCursor: "\x1b[?25l\x1b[?1c", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[[A", + KeyF2: "\x1b[[B", + KeyF3: "\x1b[[C", + KeyF4: "\x1b[[D", + KeyF5: "\x1b[[E", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyBacktab: "\x1b[Z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/models.txt b/vendor/github.com/gdamore/tcell/terminfo/models.txt new file mode 100644 index 0000000..7ed2adb --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/models.txt @@ -0,0 +1,43 @@ +adm3a +aixterm +ansi +aterm +beterm +bsdos-pc +cygwin +d200 +d210 +dtterm +eterm,eterm-color|emacs +Eterm,Eterm-88color,Eterm-256color|eterm +gnome,gnome-256color +hpterm +hz1500 +konsole,konsole-256color +kterm +linux +pcansi +rxvt,rxvt-256color,rxvt-88color,rxvt-unicode,rxvt-unicode-256color +screen,screen-256color +st,st-256color|simpleterm +sun,sun-color +termite +tvi910 +tvi912 +tvi921 +tvi925 +tvi950 +tvi970 +vt52 +vt100 +vt102 +vt220 +vt320 +vt400 +vt420 +wy50 +wy60 +wy99-ansi,wy99a-ansi +xfce +xnuppc +xterm,xterm-88color,xterm-256color diff --git a/vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go b/vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go new file mode 100644 index 0000000..84bc400 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/p/pcansi/term.go @@ -0,0 +1,39 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package pcansi + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // ibm-pc terminal programs claiming to be ansi + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "pcansi", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[0;10m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "+\x10,\x11-\x18.\x190\xdb`\x04a\xb1f\xf8g\xf1h\xb0j\xd9k\xbfl\xdam\xc0n\xc5o~p\xc4q\xc4r\xc4s_t\xc3u\xb4v\xc1w\xc2x\xb3y\xf3z\xf2{\xe3|\xd8}\x9c~\xfe", + EnterAcs: "\x1b[12m", + ExitAcs: "\x1b[10m", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\x1b[D", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyBackspace: "\b", + KeyHome: "\x1b[H", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go b/vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go new file mode 100644 index 0000000..b8f2829 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/r/rxvt/term.go @@ -0,0 +1,468 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package rxvt + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // rxvt terminal emulator (X Window System) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "rxvt", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // rxvt 2.7.9 with xterm 256-colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "rxvt-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // rxvt 2.7.9 with xterm 88-colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "rxvt-88color", + Columns: 80, + Lines: 24, + Colors: 88, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyF21: "\x1b[23$", + KeyF22: "\x1b[24$", + KeyF23: "\x1b[11^", + KeyF24: "\x1b[12^", + KeyF25: "\x1b[13^", + KeyF26: "\x1b[14^", + KeyF27: "\x1b[15^", + KeyF28: "\x1b[17^", + KeyF29: "\x1b[18^", + KeyF30: "\x1b[19^", + KeyF31: "\x1b[20^", + KeyF32: "\x1b[21^", + KeyF33: "\x1b[23^", + KeyF34: "\x1b[24^", + KeyF35: "\x1b[25^", + KeyF36: "\x1b[26^", + KeyF37: "\x1b[28^", + KeyF38: "\x1b[29^", + KeyF39: "\x1b[31^", + KeyF40: "\x1b[32^", + KeyF41: "\x1b[33^", + KeyF42: "\x1b[34^", + KeyF43: "\x1b[23@", + KeyF44: "\x1b[24@", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // rxvt-unicode terminal (X Window System) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "rxvt-unicode", + Columns: 80, + Lines: 24, + Colors: 88, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[r\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[38;5;%p1%dm", + SetBg: "\x1b[48;5;%p1%dm", + SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm", + AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) + + // rxvt-unicode terminal with 256 colors (X Window System) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "rxvt-unicode-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[r\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + SetFg: "\x1b[38;5;%p1%dm", + SetBg: "\x1b[48;5;%p1%dm", + SetFgBg: "\x1b[38;5;%p1%d;48;5;%p2%dm", + AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[7~", + KeyEnd: "\x1b[8~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1b[11~", + KeyF2: "\x1b[12~", + KeyF3: "\x1b[13~", + KeyF4: "\x1b[14~", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[d", + KeyShfRight: "\x1b[c", + KeyShfUp: "\x1b[a", + KeyShfDown: "\x1b[b", + KeyCtrlLeft: "\x1b[Od", + KeyCtrlRight: "\x1b[Oc", + KeyCtrlUp: "\x1b[Oa", + KeyCtrlDown: "\x1b[Ob", + KeyShfHome: "\x1b[7$", + KeyShfEnd: "\x1b[8$", + KeyCtrlHome: "\x1b[7^", + KeyCtrlEnd: "\x1b[8^", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go b/vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go new file mode 100644 index 0000000..2afe1f4 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/s/screen/term.go @@ -0,0 +1,126 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package screen + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // VT 100/ANSI X3.64 virtual terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "screen", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[34h\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1bM", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyBacktab: "\x1b[Z", + }) + + // GNU Screen with 256 colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "screen-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[34h\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + PadChar: "\x00", + AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1bM", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyBacktab: "\x1b[Z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go new file mode 100644 index 0000000..3a1125f --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/s/simpleterm/term.go @@ -0,0 +1,314 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package simpleterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // simpleterm + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "st", + Aliases: []string{"stterm"}, + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyClear: "\x1b[3;5~", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) + + // simpleterm with 256 colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "st-256color", + Aliases: []string{"stterm-256color"}, + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyEnd: "\x1b[4~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyClear: "\x1b[3;5~", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go b/vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go new file mode 100644 index 0000000..ff6353c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/s/sun/term.go @@ -0,0 +1,90 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package sun + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Sun Microsystems Inc. workstation console + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "sun", + Aliases: []string{"sun1", "sun2"}, + Columns: 80, + Lines: 34, + Bell: "\a", + Clear: "\f", + AttrOff: "\x1b[m", + Reverse: "\x1b[7m", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[247z", + KeyDelete: "\u007f", + KeyBackspace: "\b", + KeyHome: "\x1b[214z", + KeyEnd: "\x1b[220z", + KeyPgUp: "\x1b[216z", + KeyPgDn: "\x1b[222z", + KeyF1: "\x1b[224z", + KeyF2: "\x1b[225z", + KeyF3: "\x1b[226z", + KeyF4: "\x1b[227z", + KeyF5: "\x1b[228z", + KeyF6: "\x1b[229z", + KeyF7: "\x1b[230z", + KeyF8: "\x1b[231z", + KeyF9: "\x1b[232z", + KeyF10: "\x1b[233z", + KeyF11: "\x1b[234z", + KeyF12: "\x1b[235z", + }) + + // Sun Microsystems Workstation console with color support (IA systems) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "sun-color", + Columns: 80, + Lines: 34, + Colors: 8, + Bell: "\a", + Clear: "\f", + AttrOff: "\x1b[m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[247z", + KeyDelete: "\u007f", + KeyBackspace: "\b", + KeyHome: "\x1b[214z", + KeyEnd: "\x1b[220z", + KeyPgUp: "\x1b[216z", + KeyPgDn: "\x1b[222z", + KeyF1: "\x1b[224z", + KeyF2: "\x1b[225z", + KeyF3: "\x1b[226z", + KeyF4: "\x1b[227z", + KeyF5: "\x1b[228z", + KeyF6: "\x1b[229z", + KeyF7: "\x1b[230z", + KeyF8: "\x1b[231z", + KeyF9: "\x1b[232z", + KeyF10: "\x1b[233z", + KeyF11: "\x1b[234z", + KeyF12: "\x1b[235z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go new file mode 100644 index 0000000..7a10f63 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/termite/term.go @@ -0,0 +1,157 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package termite + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // VTE-based terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "termite", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Italic: "\x1b[3m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go new file mode 100644 index 0000000..1c5f7a3 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi910/term.go @@ -0,0 +1,39 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi910 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // televideo model 910 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi910", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1a", + AttrOff: "\x1bG0", + Underline: "\x1bG8", + Reverse: "\x1bG4", + PadChar: "\x00", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\n", + KeyRight: "\f", + KeyLeft: "\b", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go new file mode 100644 index 0000000..5e52f5c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi912/term.go @@ -0,0 +1,38 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi912 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // old televideo 912/914/920 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi912", + Aliases: []string{"tvi914", "tvi920"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1a", + Underline: "\x1bl", + PadChar: "\x00", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\n", + KeyRight: "\f", + KeyLeft: "\b", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go new file mode 100644 index 0000000..1ec0287 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi921/term.go @@ -0,0 +1,34 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi921 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // televideo model 921 with sysline same as page & real vi function + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi921", + Columns: 80, + Lines: 24, + Clear: "\x1a", + ShowCursor: "\x1b.3", + AttrOff: "\x1bG0", + Underline: "\x1bG8", + Reverse: "\x1bG4", + PadChar: "\x00", + EnterAcs: "\x1b$", + ExitAcs: "\x1b%%", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c$<3/>", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\x16", + KeyRight: "\f", + KeyLeft: "\b", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bW", + KeyBackspace: "\b", + KeyClear: "\x1a", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go new file mode 100644 index 0000000..2020ccb --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi925/term.go @@ -0,0 +1,43 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi925 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // televideo 925 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi925", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1a", + ShowCursor: "\x1b.4", + AttrOff: "\x1bG0", + Underline: "\x1bG8", + Reverse: "\x1bG4", + PadChar: "\x00", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\x16", + KeyRight: "\f", + KeyLeft: "\b", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bW", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + KeyClear: "\x1a", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go new file mode 100644 index 0000000..fc6f257 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi950/term.go @@ -0,0 +1,46 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi950 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // televideo 950 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi950", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b*", + AttrOff: "\x1bG0", + Underline: "\x1bG8", + Reverse: "\x1bG4", + PadChar: "\x00", + AltChars: "b\tc\fd\re\ni\v", + EnterAcs: "\x15", + ExitAcs: "\x18", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\x16", + KeyRight: "\f", + KeyLeft: "\b", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bW", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + KeyClear: "\x1b*", + KeyBacktab: "\x1bI", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go b/vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go new file mode 100644 index 0000000..e6a1dfb --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/t/tvi970/term.go @@ -0,0 +1,40 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package tvi970 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // televideo 970 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "tvi970", + Columns: 80, + Lines: 24, + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?20l\x1b[?7h\x1b[1Q", + AttrOff: "\x1b[m", + Underline: "\x1b[4m", + PadChar: "\x00", + EnterAcs: "\x1b(B", + ExitAcs: "\x1b(B", + SetCursor: "\x1b[%i%p1%d;%p2%df", + CursorBack1: "\b", + CursorUp1: "\x1bM", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyBackspace: "\b", + KeyHome: "\x1b[H", + KeyF1: "\x1b?a", + KeyF2: "\x1b?b", + KeyF3: "\x1b?c", + KeyF4: "\x1b?d", + KeyF5: "\x1b?e", + KeyF6: "\x1b?f", + KeyF7: "\x1b?g", + KeyF8: "\x1b?h", + KeyF9: "\x1b?i", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/terminfo.go b/vendor/github.com/gdamore/tcell/terminfo/terminfo.go new file mode 100644 index 0000000..d4cb215 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/terminfo.go @@ -0,0 +1,784 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package terminfo + +import ( + "bytes" + "errors" + "fmt" + "io" + "os" + "strconv" + "strings" + "sync" + "time" +) + +var ( + // ErrTermNotFound indicates that a suitable terminal entry could + // not be found. This can result from either not having TERM set, + // or from the TERM failing to support certain minimal functionality, + // in particular absolute cursor addressability (the cup capability) + // is required. For example, legacy "adm3" lacks this capability, + // whereas the slightly newer "adm3a" supports it. This failure + // occurs most often with "dumb". + ErrTermNotFound = errors.New("terminal entry not found") +) + +// Terminfo represents a terminfo entry. Note that we use friendly names +// in Go, but when we write out JSON, we use the same names as terminfo. +// The name, aliases and smous, rmous fields do not come from terminfo directly. +type Terminfo struct { + Name string + Aliases []string + Columns int // cols + Lines int // lines + Colors int // colors + Bell string // bell + Clear string // clear + EnterCA string // smcup + ExitCA string // rmcup + ShowCursor string // cnorm + HideCursor string // civis + AttrOff string // sgr0 + Underline string // smul + Bold string // bold + Blink string // blink + Reverse string // rev + Dim string // dim + Italic string // sitm + EnterKeypad string // smkx + ExitKeypad string // rmkx + SetFg string // setaf + SetBg string // setab + SetCursor string // cup + CursorBack1 string // cub1 + CursorUp1 string // cuu1 + PadChar string // pad + KeyBackspace string // kbs + KeyF1 string // kf1 + KeyF2 string // kf2 + KeyF3 string // kf3 + KeyF4 string // kf4 + KeyF5 string // kf5 + KeyF6 string // kf6 + KeyF7 string // kf7 + KeyF8 string // kf8 + KeyF9 string // kf9 + KeyF10 string // kf10 + KeyF11 string // kf11 + KeyF12 string // kf12 + KeyF13 string // kf13 + KeyF14 string // kf14 + KeyF15 string // kf15 + KeyF16 string // kf16 + KeyF17 string // kf17 + KeyF18 string // kf18 + KeyF19 string // kf19 + KeyF20 string // kf20 + KeyF21 string // kf21 + KeyF22 string // kf22 + KeyF23 string // kf23 + KeyF24 string // kf24 + KeyF25 string // kf25 + KeyF26 string // kf26 + KeyF27 string // kf27 + KeyF28 string // kf28 + KeyF29 string // kf29 + KeyF30 string // kf30 + KeyF31 string // kf31 + KeyF32 string // kf32 + KeyF33 string // kf33 + KeyF34 string // kf34 + KeyF35 string // kf35 + KeyF36 string // kf36 + KeyF37 string // kf37 + KeyF38 string // kf38 + KeyF39 string // kf39 + KeyF40 string // kf40 + KeyF41 string // kf41 + KeyF42 string // kf42 + KeyF43 string // kf43 + KeyF44 string // kf44 + KeyF45 string // kf45 + KeyF46 string // kf46 + KeyF47 string // kf47 + KeyF48 string // kf48 + KeyF49 string // kf49 + KeyF50 string // kf50 + KeyF51 string // kf51 + KeyF52 string // kf52 + KeyF53 string // kf53 + KeyF54 string // kf54 + KeyF55 string // kf55 + KeyF56 string // kf56 + KeyF57 string // kf57 + KeyF58 string // kf58 + KeyF59 string // kf59 + KeyF60 string // kf60 + KeyF61 string // kf61 + KeyF62 string // kf62 + KeyF63 string // kf63 + KeyF64 string // kf64 + KeyInsert string // kich1 + KeyDelete string // kdch1 + KeyHome string // khome + KeyEnd string // kend + KeyHelp string // khlp + KeyPgUp string // kpp + KeyPgDn string // knp + KeyUp string // kcuu1 + KeyDown string // kcud1 + KeyLeft string // kcub1 + KeyRight string // kcuf1 + KeyBacktab string // kcbt + KeyExit string // kext + KeyClear string // kclr + KeyPrint string // kprt + KeyCancel string // kcan + Mouse string // kmous + MouseMode string // XM + AltChars string // acsc + EnterAcs string // smacs + ExitAcs string // rmacs + EnableAcs string // enacs + KeyShfRight string // kRIT + KeyShfLeft string // kLFT + KeyShfHome string // kHOM + KeyShfEnd string // kEND + + // These are non-standard extensions to terminfo. This includes + // true color support, and some additional keys. Its kind of bizarre + // that shifted variants of left and right exist, but not up and down. + // Terminal support for these are going to vary amongst XTerm + // emulations, so don't depend too much on them in your application. + + SetFgBg string // setfgbg + SetFgBgRGB string // setfgbgrgb + SetFgRGB string // setfrgb + SetBgRGB string // setbrgb + KeyShfUp string // shift-up + KeyShfDown string // shift-down + KeyShfPgUp string // shift-kpp + KeyShfPgDn string // shift-knp + KeyCtrlUp string // ctrl-up + KeyCtrlDown string // ctrl-left + KeyCtrlRight string // ctrl-right + KeyCtrlLeft string // ctrl-left + KeyMetaUp string // meta-up + KeyMetaDown string // meta-left + KeyMetaRight string // meta-right + KeyMetaLeft string // meta-left + KeyAltUp string // alt-up + KeyAltDown string // alt-left + KeyAltRight string // alt-right + KeyAltLeft string // alt-left + KeyCtrlHome string + KeyCtrlEnd string + KeyMetaHome string + KeyMetaEnd string + KeyAltHome string + KeyAltEnd string + KeyAltShfUp string + KeyAltShfDown string + KeyAltShfLeft string + KeyAltShfRight string + KeyMetaShfUp string + KeyMetaShfDown string + KeyMetaShfLeft string + KeyMetaShfRight string + KeyCtrlShfUp string + KeyCtrlShfDown string + KeyCtrlShfLeft string + KeyCtrlShfRight string + KeyCtrlShfHome string + KeyCtrlShfEnd string + KeyAltShfHome string + KeyAltShfEnd string + KeyMetaShfHome string + KeyMetaShfEnd string +} + +type stackElem struct { + s string + i int + isStr bool + isInt bool +} + +type stack []stackElem + +func (st stack) Push(v string) stack { + e := stackElem{ + s: v, + isStr: true, + } + return append(st, e) +} + +func (st stack) Pop() (string, stack) { + v := "" + if len(st) > 0 { + e := st[len(st)-1] + st = st[:len(st)-1] + if e.isStr { + v = e.s + } else { + v = strconv.Itoa(e.i) + } + } + return v, st +} + +func (st stack) PopInt() (int, stack) { + if len(st) > 0 { + e := st[len(st)-1] + st = st[:len(st)-1] + if e.isInt { + return e.i, st + } else if e.isStr { + i, _ := strconv.Atoi(e.s) + return i, st + } + } + return 0, st +} + +func (st stack) PopBool() (bool, stack) { + if len(st) > 0 { + e := st[len(st)-1] + st = st[:len(st)-1] + if e.isStr { + if e.s == "1" { + return true, st + } + return false, st + } else if e.i == 1 { + return true, st + } else { + return false, st + } + } + return false, st +} + +func (st stack) PushInt(i int) stack { + e := stackElem{ + i: i, + isInt: true, + } + return append(st, e) +} + +func (st stack) PushBool(i bool) stack { + if i { + return st.PushInt(1) + } + return st.PushInt(0) +} + +func nextch(s string, index int) (byte, int) { + if index < len(s) { + return s[index], index + 1 + } + return 0, index +} + +// static vars +var svars [26]string + +// paramsBuffer handles some persistent state for TParam. Technically we +// could probably dispense with this, but caching buffer arrays gives us +// a nice little performance boost. Furthermore, we know that TParam is +// rarely (never?) called re-entrantly, so we can just reuse the same +// buffers, making it thread-safe by stashing a lock. +type paramsBuffer struct { + out bytes.Buffer + buf bytes.Buffer + lk sync.Mutex +} + +// Start initializes the params buffer with the initial string data. +// It also locks the paramsBuffer. The caller must call End() when +// finished. +func (pb *paramsBuffer) Start(s string) { + pb.lk.Lock() + pb.out.Reset() + pb.buf.Reset() + pb.buf.WriteString(s) +} + +// End returns the final output from TParam, but it also releases the lock. +func (pb *paramsBuffer) End() string { + s := pb.out.String() + pb.lk.Unlock() + return s +} + +// NextCh returns the next input character to the expander. +func (pb *paramsBuffer) NextCh() (byte, error) { + return pb.buf.ReadByte() +} + +// PutCh "emits" (rather schedules for output) a single byte character. +func (pb *paramsBuffer) PutCh(ch byte) { + pb.out.WriteByte(ch) +} + +// PutString schedules a string for output. +func (pb *paramsBuffer) PutString(s string) { + pb.out.WriteString(s) +} + +var pb = ¶msBuffer{} + +// TParm takes a terminfo parameterized string, such as setaf or cup, and +// evaluates the string, and returns the result with the parameter +// applied. +func (t *Terminfo) TParm(s string, p ...int) string { + var stk stack + var a, b string + var ai, bi int + var ab bool + var dvars [26]string + var params [9]int + + pb.Start(s) + + // make sure we always have 9 parameters -- makes it easier + // later to skip checks + for i := 0; i < len(params) && i < len(p); i++ { + params[i] = p[i] + } + + nest := 0 + + for { + + ch, err := pb.NextCh() + if err != nil { + break + } + + if ch != '%' { + pb.PutCh(ch) + continue + } + + ch, err = pb.NextCh() + if err != nil { + // XXX Error + break + } + + switch ch { + case '%': // quoted % + pb.PutCh(ch) + + case 'i': // increment both parameters (ANSI cup support) + params[0]++ + params[1]++ + + case 'c', 's': + // NB: these, and 'd' below are special cased for + // efficiency. They could be handled by the richer + // format support below, less efficiently. + a, stk = stk.Pop() + pb.PutString(a) + + case 'd': + ai, stk = stk.PopInt() + pb.PutString(strconv.Itoa(ai)) + + case '0', '1', '2', '3', '4', 'x', 'X', 'o', ':': + // This is pretty suboptimal, but this is rarely used. + // None of the mainstream terminals use any of this, + // and it would surprise me if this code is ever + // executed outside of test cases. + f := "%" + if ch == ':' { + ch, _ = pb.NextCh() + } + f += string(ch) + for ch == '+' || ch == '-' || ch == '#' || ch == ' ' { + ch, _ = pb.NextCh() + f += string(ch) + } + for (ch >= '0' && ch <= '9') || ch == '.' { + ch, _ = pb.NextCh() + f += string(ch) + } + switch ch { + case 'd', 'x', 'X', 'o': + ai, stk = stk.PopInt() + pb.PutString(fmt.Sprintf(f, ai)) + case 'c', 's': + a, stk = stk.Pop() + pb.PutString(fmt.Sprintf(f, a)) + } + + case 'p': // push parameter + ch, _ = pb.NextCh() + ai = int(ch - '1') + if ai >= 0 && ai < len(params) { + stk = stk.PushInt(params[ai]) + } else { + stk = stk.PushInt(0) + } + + case 'P': // pop & store variable + ch, _ = pb.NextCh() + if ch >= 'A' && ch <= 'Z' { + svars[int(ch-'A')], stk = stk.Pop() + } else if ch >= 'a' && ch <= 'z' { + dvars[int(ch-'a')], stk = stk.Pop() + } + + case 'g': // recall & push variable + ch, _ = pb.NextCh() + if ch >= 'A' && ch <= 'Z' { + stk = stk.Push(svars[int(ch-'A')]) + } else if ch >= 'a' && ch <= 'z' { + stk = stk.Push(dvars[int(ch-'a')]) + } + + case '\'': // push(char) + ch, _ = pb.NextCh() + pb.NextCh() // must be ' but we don't check + stk = stk.Push(string(ch)) + + case '{': // push(int) + ai = 0 + ch, _ = pb.NextCh() + for ch >= '0' && ch <= '9' { + ai *= 10 + ai += int(ch - '0') + ch, _ = pb.NextCh() + } + // ch must be '}' but no verification + stk = stk.PushInt(ai) + + case 'l': // push(strlen(pop)) + a, stk = stk.Pop() + stk = stk.PushInt(len(a)) + + case '+': + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai + bi) + + case '-': + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai - bi) + + case '*': + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai * bi) + + case '/': + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + if bi != 0 { + stk = stk.PushInt(ai / bi) + } else { + stk = stk.PushInt(0) + } + + case 'm': // push(pop mod pop) + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + if bi != 0 { + stk = stk.PushInt(ai % bi) + } else { + stk = stk.PushInt(0) + } + + case '&': // AND + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai & bi) + + case '|': // OR + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai | bi) + + case '^': // XOR + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushInt(ai ^ bi) + + case '~': // bit complement + ai, stk = stk.PopInt() + stk = stk.PushInt(ai ^ -1) + + case '!': // logical NOT + ai, stk = stk.PopInt() + stk = stk.PushBool(ai != 0) + + case '=': // numeric compare or string compare + b, stk = stk.Pop() + a, stk = stk.Pop() + stk = stk.PushBool(a == b) + + case '>': // greater than, numeric + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushBool(ai > bi) + + case '<': // less than, numeric + bi, stk = stk.PopInt() + ai, stk = stk.PopInt() + stk = stk.PushBool(ai < bi) + + case '?': // start conditional + + case 't': + ab, stk = stk.PopBool() + if ab { + // just keep going + break + } + nest = 0 + ifloop: + // this loop consumes everything until we hit our else, + // or the end of the conditional + for { + ch, err = pb.NextCh() + if err != nil { + break + } + if ch != '%' { + continue + } + ch, _ = pb.NextCh() + switch ch { + case ';': + if nest == 0 { + break ifloop + } + nest-- + case '?': + nest++ + case 'e': + if nest == 0 { + break ifloop + } + } + } + + case 'e': + // if we got here, it means we didn't use the else + // in the 't' case above, and we should skip until + // the end of the conditional + nest = 0 + elloop: + for { + ch, err = pb.NextCh() + if err != nil { + break + } + if ch != '%' { + continue + } + ch, _ = pb.NextCh() + switch ch { + case ';': + if nest == 0 { + break elloop + } + nest-- + case '?': + nest++ + } + } + + case ';': // endif + + } + } + + return pb.End() +} + +// TPuts emits the string to the writer, but expands inline padding +// indications (of the form $<[delay]> where [delay] is msec) to +// a suitable time (unless the terminfo string indicates this isn't needed +// by specifying npc - no padding). All Terminfo based strings should be +// emitted using this function. +func (t *Terminfo) TPuts(w io.Writer, s string) { + for { + beg := strings.Index(s, "$<") + if beg < 0 { + // Most strings don't need padding, which is good news! + io.WriteString(w, s) + return + } + io.WriteString(w, s[:beg]) + s = s[beg+2:] + end := strings.Index(s, ">") + if end < 0 { + // unterminated.. just emit bytes unadulterated + io.WriteString(w, "$<"+s) + return + } + val := s[:end] + s = s[end+1:] + padus := 0 + unit := time.Millisecond + dot := false + loop: + for i := range val { + switch val[i] { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + padus *= 10 + padus += int(val[i] - '0') + if dot { + unit /= 10 + } + case '.': + if !dot { + dot = true + } else { + break loop + } + default: + break loop + } + } + + // Curses historically uses padding to achieve "fine grained" + // delays. We have much better clocks these days, and so we + // do not rely on padding but simply sleep a bit. + if len(t.PadChar) > 0 { + time.Sleep(unit * time.Duration(padus)) + } + } +} + +// TGoto returns a string suitable for addressing the cursor at the given +// row and column. The origin 0, 0 is in the upper left corner of the screen. +func (t *Terminfo) TGoto(col, row int) string { + return t.TParm(t.SetCursor, row, col) +} + +// TColor returns a string corresponding to the given foreground and background +// colors. Either fg or bg can be set to -1 to elide. +func (t *Terminfo) TColor(fi, bi int) string { + rv := "" + // As a special case, we map bright colors to lower versions if the + // color table only holds 8. For the remaining 240 colors, the user + // is out of luck. Someday we could create a mapping table, but its + // not worth it. + if t.Colors == 8 { + if fi > 7 && fi < 16 { + fi -= 8 + } + if bi > 7 && bi < 16 { + bi -= 8 + } + } + if t.Colors > fi && fi >= 0 { + rv += t.TParm(t.SetFg, fi) + } + if t.Colors > bi && bi >= 0 { + rv += t.TParm(t.SetBg, bi) + } + return rv +} + +var ( + dblock sync.Mutex + terminfos = make(map[string]*Terminfo) + aliases = make(map[string]string) +) + +// AddTerminfo can be called to register a new Terminfo entry. +func AddTerminfo(t *Terminfo) { + dblock.Lock() + terminfos[t.Name] = t + for _, x := range t.Aliases { + terminfos[x] = t + } + dblock.Unlock() +} + +// LookupTerminfo attempts to find a definition for the named $TERM. +func LookupTerminfo(name string) (*Terminfo, error) { + if name == "" { + // else on windows: index out of bounds + // on the name[0] reference below + return nil, ErrTermNotFound + } + + addtruecolor := false + switch os.Getenv("COLORTERM") { + case "truecolor", "24bit", "24-bit": + addtruecolor = true + } + dblock.Lock() + t := terminfos[name] + dblock.Unlock() + + // If the name ends in -truecolor, then fabricate an entry + // from the corresponding -256color, -color, or bare terminal. + if t == nil && strings.HasSuffix(name, "-truecolor") { + + suffixes := []string{ + "-256color", + "-88color", + "-color", + "", + } + base := name[:len(name)-len("-truecolor")] + for _, s := range suffixes { + if t, _ = LookupTerminfo(base + s); t != nil { + addtruecolor = true + break + } + } + } + + if t == nil { + return nil, ErrTermNotFound + } + + switch os.Getenv("TCELL_TRUECOLOR") { + case "": + case "disable": + addtruecolor = false + default: + addtruecolor = true + } + + // If the user has requested 24-bit color with $COLORTERM, then + // amend the value (unless already present). This means we don't + // need to have a value present. + if addtruecolor && + t.SetFgBgRGB == "" && + t.SetFgRGB == "" && + t.SetBgRGB == "" { + + // Supply vanilla ISO 8613-6:1994 24-bit color sequences. + t.SetFgRGB = "\x1b[38;2;%p1%d;%p2%d;%p3%dm" + t.SetBgRGB = "\x1b[48;2;%p1%d;%p2%d;%p3%dm" + t.SetFgBgRGB = "\x1b[38;2;%p1%d;%p2%d;%p3%d;" + + "48;2;%p4%d;%p5%d;%p6%dm" + } + + return t, nil +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go new file mode 100644 index 0000000..666e8b1 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt100/term.go @@ -0,0 +1,48 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt100 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt100 (w/advanced video) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt100", + Aliases: []string{"vt100-am"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[J$<50>", + AttrOff: "\x1b[m\x0f$<2>", + Underline: "\x1b[4m$<2>", + Bold: "\x1b[1m$<2>", + Blink: "\x1b[5m$<2>", + Reverse: "\x1b[7m$<2>", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>", + CursorBack1: "\b", + CursorUp1: "\x1b[A$<2>", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\b", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1bOt", + KeyF6: "\x1bOu", + KeyF7: "\x1bOv", + KeyF8: "\x1bOl", + KeyF9: "\x1bOw", + KeyF10: "\x1bOx", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go new file mode 100644 index 0000000..0dfbe61 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt102/term.go @@ -0,0 +1,47 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt102 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt102 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt102", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[J$<50>", + AttrOff: "\x1b[m\x0f$<2>", + Underline: "\x1b[4m$<2>", + Bold: "\x1b[1m$<2>", + Blink: "\x1b[5m$<2>", + Reverse: "\x1b[7m$<2>", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b(B\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH$<5>", + CursorBack1: "\b", + CursorUp1: "\x1b[A$<2>", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\b", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1bOt", + KeyF6: "\x1bOu", + KeyF7: "\x1bOv", + KeyF8: "\x1bOl", + KeyF9: "\x1bOw", + KeyF10: "\x1bOx", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go new file mode 100644 index 0000000..9104b17 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt220/term.go @@ -0,0 +1,58 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt220 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt220 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt220", + Aliases: []string{"vt200"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0$<2>", + ExitAcs: "\x1b(B$<4>", + EnableAcs: "\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + KeyHelp: "\x1b[28~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go new file mode 100644 index 0000000..49d6703 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt320/term.go @@ -0,0 +1,63 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt320 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt320 7 bit terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt320", + Aliases: []string{"vt300"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1b[1~", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[25~", + KeyF14: "\x1b[26~", + KeyF15: "\x1b[28~", + KeyF16: "\x1b[29~", + KeyF17: "\x1b[31~", + KeyF18: "\x1b[32~", + KeyF19: "\x1b[33~", + KeyF20: "\x1b[34~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go new file mode 100644 index 0000000..4c7b8bc --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt400/term.go @@ -0,0 +1,46 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt400 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt400 24x80 column autowrap + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt400", + Aliases: []string{"vt400-24", "dec-vt400"}, + Columns: 80, + Lines: 24, + Clear: "\x1b[H\x1b[J$<10/>", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\b", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go new file mode 100644 index 0000000..5ec1cef --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt420/term.go @@ -0,0 +1,53 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt420 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // DEC VT420 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt420", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b[H\x1b[2J$<50>", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x1b(B$<2>", + Underline: "\x1b[4m", + Bold: "\x1b[1m$<2>", + Blink: "\x1b[5m$<2>", + Reverse: "\x1b[7m$<2>", + EnterKeypad: "\x1b=", + ExitKeypad: "\x1b>", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0$<2>", + ExitAcs: "\x1b(B$<4>", + EnableAcs: "\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH$<10>", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1b[A", + KeyDown: "\x1b[B", + KeyRight: "\x1b[C", + KeyLeft: "\x1b[D", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[17~", + KeyF6: "\x1b[18~", + KeyF7: "\x1b[19~", + KeyF8: "\x1b[20~", + KeyF9: "\x1b[21~", + KeyF10: "\x1b[29~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go b/vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go new file mode 100644 index 0000000..c9560ae --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/v/vt52/term.go @@ -0,0 +1,29 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package vt52 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // dec vt52 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "vt52", + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1bH\x1bJ", + PadChar: "\x00", + AltChars: "+h.k0affggolpnqprrss", + EnterAcs: "\x1bF", + ExitAcs: "\x1bG", + SetCursor: "\x1bY%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\x1bD", + CursorUp1: "\x1bA", + KeyUp: "\x1bA", + KeyDown: "\x1bB", + KeyRight: "\x1bC", + KeyLeft: "\x1bD", + KeyBackspace: "\b", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go b/vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go new file mode 100644 index 0000000..4521932 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/w/wy50/term.go @@ -0,0 +1,59 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package wy50 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Wyse 50 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "wy50", + Aliases: []string{"wyse50"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b+$<20>", + ShowCursor: "\x1b`1", + HideCursor: "\x1b`0", + AttrOff: "\x1b(\x1bH\x03", + Dim: "\x1b`7\x1b)", + Reverse: "\x1b`6\x1b)", + PadChar: "\x00", + AltChars: "0wa_h[jukslrmqnxqzttuyv]wpxv", + EnterAcs: "\x1bH\x02", + ExitAcs: "\x1bH\x03", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\n", + KeyRight: "\f", + KeyLeft: "\b", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bW", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyPgUp: "\x1bJ", + KeyPgDn: "\x1bK", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + KeyF10: "\x01I\r", + KeyF11: "\x01J\r", + KeyF12: "\x01K\r", + KeyF13: "\x01L\r", + KeyF14: "\x01M\r", + KeyF15: "\x01N\r", + KeyF16: "\x01O\r", + KeyPrint: "\x1bP", + KeyBacktab: "\x1bI", + KeyShfHome: "\x1b{", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go b/vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go new file mode 100644 index 0000000..ff51940 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/w/wy60/term.go @@ -0,0 +1,63 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package wy60 + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Wyse 60 + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "wy60", + Aliases: []string{"wyse60"}, + Columns: 80, + Lines: 24, + Bell: "\a", + Clear: "\x1b+$<100>", + EnterCA: "\x1bw0", + ExitCA: "\x1bw1", + ShowCursor: "\x1b`1", + HideCursor: "\x1b`0", + AttrOff: "\x1b(\x1bH\x03\x1bG0\x1bcD", + Underline: "\x1bG8", + Dim: "\x1bGp", + Blink: "\x1bG2", + Reverse: "\x1bG4", + PadChar: "\x00", + AltChars: "+/,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~", + EnterAcs: "\x1bcE", + ExitAcs: "\x1bcD", + SetCursor: "\x1b=%p1%' '%+%c%p2%' '%+%c", + CursorBack1: "\b", + CursorUp1: "\v", + KeyUp: "\v", + KeyDown: "\n", + KeyRight: "\f", + KeyLeft: "\b", + KeyInsert: "\x1bQ", + KeyDelete: "\x1bW", + KeyBackspace: "\b", + KeyHome: "\x1e", + KeyPgUp: "\x1bJ", + KeyPgDn: "\x1bK", + KeyF1: "\x01@\r", + KeyF2: "\x01A\r", + KeyF3: "\x01B\r", + KeyF4: "\x01C\r", + KeyF5: "\x01D\r", + KeyF6: "\x01E\r", + KeyF7: "\x01F\r", + KeyF8: "\x01G\r", + KeyF9: "\x01H\r", + KeyF10: "\x01I\r", + KeyF11: "\x01J\r", + KeyF12: "\x01K\r", + KeyF13: "\x01L\r", + KeyF14: "\x01M\r", + KeyF15: "\x01N\r", + KeyF16: "\x01O\r", + KeyPrint: "\x1bP", + KeyBacktab: "\x1bI", + KeyShfHome: "\x1b{", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go b/vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go new file mode 100644 index 0000000..fbe8569 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/w/wy99_ansi/term.go @@ -0,0 +1,114 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package wy99_ansi + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Wyse WY-99GT in ansi mode (int'l PC keyboard) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "wy99-ansi", + Columns: 80, + Lines: 25, + Bell: "\a", + Clear: "\x1b[H\x1b[J$<200>", + ShowCursor: "\x1b[34h\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f\x1b[\"q", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h", + ExitKeypad: "\x1b[?1l", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b$<1>", + CursorUp1: "\x1bM", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\b", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[M", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF17: "\x1b[K", + KeyF18: "\x1b[31~", + KeyF19: "\x1b[32~", + KeyF20: "\x1b[33~", + KeyF21: "\x1b[34~", + KeyF22: "\x1b[35~", + KeyF23: "\x1b[1~", + KeyF24: "\x1b[2~", + KeyBacktab: "\x1b[z", + }) + + // Wyse WY-99GT in ansi mode (US PC keyboard) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "wy99a-ansi", + Columns: 80, + Lines: 25, + Bell: "\a", + Clear: "\x1b[H\x1b[J$<200>", + ShowCursor: "\x1b[34h\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[m\x0f\x1b[\"q", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h", + ExitKeypad: "\x1b[?1l", + PadChar: "\x00", + AltChars: "``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b$<1>", + CursorUp1: "\x1bM", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\b", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[M", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF17: "\x1b[K", + KeyF18: "\x1b[31~", + KeyF19: "\x1b[32~", + KeyF20: "\x1b[33~", + KeyF21: "\x1b[34~", + KeyF22: "\x1b[35~", + KeyF23: "\x1b[1~", + KeyF24: "\x1b[2~", + KeyBacktab: "\x1b[z", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go b/vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go new file mode 100644 index 0000000..b105cde --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/x/xfce/term.go @@ -0,0 +1,158 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package xfce + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Xfce Terminal + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xfce", + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b7\x1b[?47h", + ExitCA: "\x1b[2J\x1b[?47l\x1b8", + ShowCursor: "\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b[0m\x0f", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x0e", + ExitAcs: "\x0f", + EnableAcs: "\x1b)0", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1bO1;2P", + KeyF14: "\x1bO1;2Q", + KeyF15: "\x1bO1;2R", + KeyF16: "\x1bO1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1bO1;5P", + KeyF26: "\x1bO1;5Q", + KeyF27: "\x1bO1;5R", + KeyF28: "\x1bO1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1bO1;6P", + KeyF38: "\x1bO1;6Q", + KeyF39: "\x1bO1;6R", + KeyF40: "\x1bO1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1bO1;3P", + KeyF50: "\x1bO1;3Q", + KeyF51: "\x1bO1;3R", + KeyF52: "\x1bO1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1bO1;4P", + KeyF62: "\x1bO1;4Q", + KeyF63: "\x1bO1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go b/vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go new file mode 100644 index 0000000..eb023bd --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/x/xnuppc/term.go @@ -0,0 +1,34 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package xnuppc + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // Darwin PowerPC Console (color) + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xnuppc", + Aliases: []string{"darwin"}, + Colors: 8, + Clear: "\x1b[H\x1b[J", + AttrOff: "\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + PadChar: "\x00", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\x1b[D", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyBackspace: "\u007f", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go b/vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go new file mode 100644 index 0000000..bc7735c --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/x/xterm/term.go @@ -0,0 +1,462 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package xterm + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // X11 terminal emulator + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xterm", + Aliases: []string{"xterm-debian"}, + Columns: 80, + Lines: 24, + Colors: 8, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h\x1b[22;0;0t", + ExitCA: "\x1b[?1049l\x1b[23;0;0t", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[3%p1%dm", + SetBg: "\x1b[4%p1%dm", + SetFgBg: "\x1b[3%p1%d;4%p2%dm", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) + + // xterm with 88 colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xterm-88color", + Columns: 80, + Lines: 24, + Colors: 88, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h\x1b[22;0;0t", + ExitCA: "\x1b[?1049l\x1b[23;0;0t", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) + + // xterm with 256 colors + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xterm-256color", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h\x1b[22;0;0t", + ExitCA: "\x1b[?1049l\x1b[23;0;0t", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Italic: "\x1b[3m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\u007f", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go b/vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go new file mode 100644 index 0000000..801a4de --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terminfo/x/xterm_kitty/term.go @@ -0,0 +1,157 @@ +// Generated automatically. DO NOT HAND-EDIT. + +package xterm_kitty + +import "github.com/gdamore/tcell/terminfo" + +func init() { + + // KovIdTTY + terminfo.AddTerminfo(&terminfo.Terminfo{ + Name: "xterm-kitty", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h", + ExitCA: "\x1b[?1049l", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h", + ExitKeypad: "\x1b[?1l", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\xff", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", + KeyMetaShfRight: "\x1b[1;10C", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", + KeyCtrlShfRight: "\x1b[1;6C", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", + }) +} diff --git a/vendor/github.com/gdamore/tcell/terms_default.go b/vendor/github.com/gdamore/tcell/terms_default.go new file mode 100644 index 0000000..cf2dbaa --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terms_default.go @@ -0,0 +1,23 @@ +// +build !tcell_minimal + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + // This imports the default terminal entries. To disable, use the + // tcell_minimal build tag. + _ "github.com/gdamore/tcell/terminfo/extended" +) diff --git a/vendor/github.com/gdamore/tcell/terms_dynamic.go b/vendor/github.com/gdamore/tcell/terms_dynamic.go new file mode 100644 index 0000000..a06c087 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terms_dynamic.go @@ -0,0 +1,37 @@ +// +build !tcell_minimal,!nacl,!js,!zos,!plan9,!windows,!android + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + // This imports a dynamic version of the terminal database, which + // is built using infocmp. This relies on a working installation + // of infocmp (typically supplied with ncurses). We only do this + // for systems likely to have that -- i.e. UNIX based hosts. We + // also don't support Android here, because you really don't want + // to run external programs there. Generally the android terminals + // will be automatically included anyway. + "github.com/gdamore/tcell/terminfo" + "github.com/gdamore/tcell/terminfo/dynamic" +) + +func loadDynamicTerminfo(term string) (*terminfo.Terminfo, error) { + ti, _, e := dynamic.LoadTerminfo(term) + if e != nil { + return nil, e + } + return ti, nil +} diff --git a/vendor/github.com/gdamore/tcell/terms_static.go b/vendor/github.com/gdamore/tcell/terms_static.go new file mode 100644 index 0000000..379dbe1 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/terms_static.go @@ -0,0 +1,27 @@ +// +build tcell_minimal nacl js zos plan9 windows android + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "errors" + + "github.com/gdamore/tcell/terminfo" +) + +func loadDynamicTerminfo(term string) (*terminfo.Terminfo, error) { + return nil, errors.New("terminal type unsupported") +} diff --git a/vendor/github.com/gdamore/tcell/tscreen.go b/vendor/github.com/gdamore/tcell/tscreen.go new file mode 100644 index 0000000..259d211 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen.go @@ -0,0 +1,1439 @@ +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "bytes" + "io" + "os" + "strconv" + "sync" + "time" + "unicode/utf8" + + "golang.org/x/text/transform" + + "github.com/gdamore/tcell/terminfo" + + // import the stock terminals + _ "github.com/gdamore/tcell/terminfo/base" +) + +// NewTerminfoScreen returns a Screen that uses the stock TTY interface +// and POSIX termios, combined with a terminfo description taken from +// the $TERM environment variable. It returns an error if the terminal +// is not supported for any reason. +// +// For terminals that do not support dynamic resize events, the $LINES +// $COLUMNS environment variables can be set to the actual window size, +// otherwise defaults taken from the terminal database are used. +func NewTerminfoScreen() (Screen, error) { + ti, e := terminfo.LookupTerminfo(os.Getenv("TERM")) + if e != nil { + ti, e = loadDynamicTerminfo(os.Getenv("TERM")) + if e != nil { + return nil, e + } + terminfo.AddTerminfo(ti) + } + t := &tScreen{ti: ti} + + t.keyexist = make(map[Key]bool) + t.keycodes = make(map[string]*tKeyCode) + if len(ti.Mouse) > 0 { + t.mouse = []byte(ti.Mouse) + } + t.prepareKeys() + t.buildAcsMap() + t.sigwinch = make(chan os.Signal, 10) + t.fallback = make(map[rune]string) + for k, v := range RuneFallbacks { + t.fallback[k] = v + } + + return t, nil +} + +// tKeyCode represents a combination of a key code and modifiers. +type tKeyCode struct { + key Key + mod ModMask +} + +// tScreen represents a screen backed by a terminfo implementation. +type tScreen struct { + ti *terminfo.Terminfo + h int + w int + fini bool + cells CellBuffer + in *os.File + out *os.File + buffering bool // true if we are collecting writes to buf instead of sending directly to out + buf bytes.Buffer + curstyle Style + style Style + evch chan Event + sigwinch chan os.Signal + quit chan struct{} + indoneq chan struct{} + keyexist map[Key]bool + keycodes map[string]*tKeyCode + keychan chan []byte + keytimer *time.Timer + keyexpire time.Time + cx int + cy int + mouse []byte + clear bool + cursorx int + cursory int + tiosp *termiosPrivate + wasbtn bool + acs map[rune]string + charset string + encoder transform.Transformer + decoder transform.Transformer + fallback map[rune]string + colors map[Color]Color + palette []Color + truecolor bool + escaped bool + buttondn bool + + sync.Mutex +} + +func (t *tScreen) Init() error { + t.evch = make(chan Event, 10) + t.indoneq = make(chan struct{}) + t.keychan = make(chan []byte, 10) + t.keytimer = time.NewTimer(time.Millisecond * 50) + t.charset = "UTF-8" + + t.charset = getCharset() + if enc := GetEncoding(t.charset); enc != nil { + t.encoder = enc.NewEncoder() + t.decoder = enc.NewDecoder() + } else { + return ErrNoCharset + } + ti := t.ti + + // environment overrides + w := ti.Columns + h := ti.Lines + if i, _ := strconv.Atoi(os.Getenv("LINES")); i != 0 { + h = i + } + if i, _ := strconv.Atoi(os.Getenv("COLUMNS")); i != 0 { + w = i + } + if e := t.termioInit(); e != nil { + return e + } + + if t.ti.SetFgBgRGB != "" || t.ti.SetFgRGB != "" || t.ti.SetBgRGB != "" { + t.truecolor = true + } + // A user who wants to have his themes honored can + // set this environment variable. + if os.Getenv("TCELL_TRUECOLOR") == "disable" { + t.truecolor = false + } + if !t.truecolor { + t.colors = make(map[Color]Color) + t.palette = make([]Color, t.Colors()) + for i := 0; i < t.Colors(); i++ { + t.palette[i] = Color(i) + // identity map for our builtin colors + t.colors[Color(i)] = Color(i) + } + } + + t.TPuts(ti.EnterCA) + t.TPuts(ti.HideCursor) + t.TPuts(ti.EnableAcs) + t.TPuts(ti.Clear) + + t.quit = make(chan struct{}) + + t.Lock() + t.cx = -1 + t.cy = -1 + t.style = StyleDefault + t.cells.Resize(w, h) + t.cursorx = -1 + t.cursory = -1 + t.resize() + t.Unlock() + + go t.mainLoop() + go t.inputLoop() + + return nil +} + +func (t *tScreen) prepareKeyMod(key Key, mod ModMask, val string) { + if val != "" { + // Do not overrride codes that already exist + if _, exist := t.keycodes[val]; !exist { + t.keyexist[key] = true + t.keycodes[val] = &tKeyCode{key: key, mod: mod} + } + } +} + +func (t *tScreen) prepareKey(key Key, val string) { + t.prepareKeyMod(key, ModNone, val) +} + +func (t *tScreen) prepareKeys() { + ti := t.ti + t.prepareKey(KeyBackspace, ti.KeyBackspace) + t.prepareKey(KeyF1, ti.KeyF1) + t.prepareKey(KeyF2, ti.KeyF2) + t.prepareKey(KeyF3, ti.KeyF3) + t.prepareKey(KeyF4, ti.KeyF4) + t.prepareKey(KeyF5, ti.KeyF5) + t.prepareKey(KeyF6, ti.KeyF6) + t.prepareKey(KeyF7, ti.KeyF7) + t.prepareKey(KeyF8, ti.KeyF8) + t.prepareKey(KeyF9, ti.KeyF9) + t.prepareKey(KeyF10, ti.KeyF10) + t.prepareKey(KeyF11, ti.KeyF11) + t.prepareKey(KeyF12, ti.KeyF12) + t.prepareKey(KeyF13, ti.KeyF13) + t.prepareKey(KeyF14, ti.KeyF14) + t.prepareKey(KeyF15, ti.KeyF15) + t.prepareKey(KeyF16, ti.KeyF16) + t.prepareKey(KeyF17, ti.KeyF17) + t.prepareKey(KeyF18, ti.KeyF18) + t.prepareKey(KeyF19, ti.KeyF19) + t.prepareKey(KeyF20, ti.KeyF20) + t.prepareKey(KeyF21, ti.KeyF21) + t.prepareKey(KeyF22, ti.KeyF22) + t.prepareKey(KeyF23, ti.KeyF23) + t.prepareKey(KeyF24, ti.KeyF24) + t.prepareKey(KeyF25, ti.KeyF25) + t.prepareKey(KeyF26, ti.KeyF26) + t.prepareKey(KeyF27, ti.KeyF27) + t.prepareKey(KeyF28, ti.KeyF28) + t.prepareKey(KeyF29, ti.KeyF29) + t.prepareKey(KeyF30, ti.KeyF30) + t.prepareKey(KeyF31, ti.KeyF31) + t.prepareKey(KeyF32, ti.KeyF32) + t.prepareKey(KeyF33, ti.KeyF33) + t.prepareKey(KeyF34, ti.KeyF34) + t.prepareKey(KeyF35, ti.KeyF35) + t.prepareKey(KeyF36, ti.KeyF36) + t.prepareKey(KeyF37, ti.KeyF37) + t.prepareKey(KeyF38, ti.KeyF38) + t.prepareKey(KeyF39, ti.KeyF39) + t.prepareKey(KeyF40, ti.KeyF40) + t.prepareKey(KeyF41, ti.KeyF41) + t.prepareKey(KeyF42, ti.KeyF42) + t.prepareKey(KeyF43, ti.KeyF43) + t.prepareKey(KeyF44, ti.KeyF44) + t.prepareKey(KeyF45, ti.KeyF45) + t.prepareKey(KeyF46, ti.KeyF46) + t.prepareKey(KeyF47, ti.KeyF47) + t.prepareKey(KeyF48, ti.KeyF48) + t.prepareKey(KeyF49, ti.KeyF49) + t.prepareKey(KeyF50, ti.KeyF50) + t.prepareKey(KeyF51, ti.KeyF51) + t.prepareKey(KeyF52, ti.KeyF52) + t.prepareKey(KeyF53, ti.KeyF53) + t.prepareKey(KeyF54, ti.KeyF54) + t.prepareKey(KeyF55, ti.KeyF55) + t.prepareKey(KeyF56, ti.KeyF56) + t.prepareKey(KeyF57, ti.KeyF57) + t.prepareKey(KeyF58, ti.KeyF58) + t.prepareKey(KeyF59, ti.KeyF59) + t.prepareKey(KeyF60, ti.KeyF60) + t.prepareKey(KeyF61, ti.KeyF61) + t.prepareKey(KeyF62, ti.KeyF62) + t.prepareKey(KeyF63, ti.KeyF63) + t.prepareKey(KeyF64, ti.KeyF64) + t.prepareKey(KeyInsert, ti.KeyInsert) + t.prepareKey(KeyDelete, ti.KeyDelete) + t.prepareKey(KeyHome, ti.KeyHome) + t.prepareKey(KeyEnd, ti.KeyEnd) + t.prepareKey(KeyUp, ti.KeyUp) + t.prepareKey(KeyDown, ti.KeyDown) + t.prepareKey(KeyLeft, ti.KeyLeft) + t.prepareKey(KeyRight, ti.KeyRight) + t.prepareKey(KeyPgUp, ti.KeyPgUp) + t.prepareKey(KeyPgDn, ti.KeyPgDn) + t.prepareKey(KeyHelp, ti.KeyHelp) + t.prepareKey(KeyPrint, ti.KeyPrint) + t.prepareKey(KeyCancel, ti.KeyCancel) + t.prepareKey(KeyExit, ti.KeyExit) + t.prepareKey(KeyBacktab, ti.KeyBacktab) + + t.prepareKeyMod(KeyRight, ModShift, ti.KeyShfRight) + t.prepareKeyMod(KeyLeft, ModShift, ti.KeyShfLeft) + t.prepareKeyMod(KeyUp, ModShift, ti.KeyShfUp) + t.prepareKeyMod(KeyDown, ModShift, ti.KeyShfDown) + t.prepareKeyMod(KeyHome, ModShift, ti.KeyShfHome) + t.prepareKeyMod(KeyEnd, ModShift, ti.KeyShfEnd) + t.prepareKeyMod(KeyPgUp, ModShift, ti.KeyShfPgUp) + t.prepareKeyMod(KeyPgDn, ModShift, ti.KeyShfPgDn) + + t.prepareKeyMod(KeyRight, ModCtrl, ti.KeyCtrlRight) + t.prepareKeyMod(KeyLeft, ModCtrl, ti.KeyCtrlLeft) + t.prepareKeyMod(KeyUp, ModCtrl, ti.KeyCtrlUp) + t.prepareKeyMod(KeyDown, ModCtrl, ti.KeyCtrlDown) + t.prepareKeyMod(KeyHome, ModCtrl, ti.KeyCtrlHome) + t.prepareKeyMod(KeyEnd, ModCtrl, ti.KeyCtrlEnd) + + t.prepareKeyMod(KeyRight, ModAlt, ti.KeyAltRight) + t.prepareKeyMod(KeyLeft, ModAlt, ti.KeyAltLeft) + t.prepareKeyMod(KeyUp, ModAlt, ti.KeyAltUp) + t.prepareKeyMod(KeyDown, ModAlt, ti.KeyAltDown) + t.prepareKeyMod(KeyHome, ModAlt, ti.KeyAltHome) + t.prepareKeyMod(KeyEnd, ModAlt, ti.KeyAltEnd) + + t.prepareKeyMod(KeyRight, ModAlt, ti.KeyMetaRight) + t.prepareKeyMod(KeyLeft, ModAlt, ti.KeyMetaLeft) + t.prepareKeyMod(KeyUp, ModAlt, ti.KeyMetaUp) + t.prepareKeyMod(KeyDown, ModAlt, ti.KeyMetaDown) + t.prepareKeyMod(KeyHome, ModAlt, ti.KeyMetaHome) + t.prepareKeyMod(KeyEnd, ModAlt, ti.KeyMetaEnd) + + t.prepareKeyMod(KeyRight, ModAlt|ModShift, ti.KeyAltShfRight) + t.prepareKeyMod(KeyLeft, ModAlt|ModShift, ti.KeyAltShfLeft) + t.prepareKeyMod(KeyUp, ModAlt|ModShift, ti.KeyAltShfUp) + t.prepareKeyMod(KeyDown, ModAlt|ModShift, ti.KeyAltShfDown) + t.prepareKeyMod(KeyHome, ModAlt|ModShift, ti.KeyAltShfHome) + t.prepareKeyMod(KeyEnd, ModAlt|ModShift, ti.KeyAltShfEnd) + + t.prepareKeyMod(KeyRight, ModAlt|ModShift, ti.KeyMetaShfRight) + t.prepareKeyMod(KeyLeft, ModAlt|ModShift, ti.KeyMetaShfLeft) + t.prepareKeyMod(KeyUp, ModAlt|ModShift, ti.KeyMetaShfUp) + t.prepareKeyMod(KeyDown, ModAlt|ModShift, ti.KeyMetaShfDown) + t.prepareKeyMod(KeyHome, ModAlt|ModShift, ti.KeyMetaShfHome) + t.prepareKeyMod(KeyEnd, ModAlt|ModShift, ti.KeyMetaShfEnd) + + t.prepareKeyMod(KeyRight, ModCtrl|ModShift, ti.KeyCtrlShfRight) + t.prepareKeyMod(KeyLeft, ModCtrl|ModShift, ti.KeyCtrlShfLeft) + t.prepareKeyMod(KeyUp, ModCtrl|ModShift, ti.KeyCtrlShfUp) + t.prepareKeyMod(KeyDown, ModCtrl|ModShift, ti.KeyCtrlShfDown) + t.prepareKeyMod(KeyHome, ModCtrl|ModShift, ti.KeyCtrlShfHome) + t.prepareKeyMod(KeyEnd, ModCtrl|ModShift, ti.KeyCtrlShfEnd) + + // Sadly, xterm handling of keycodes is somewhat erratic. In + // particular, different codes are sent depending on application + // mode is in use or not, and the entries for many of these are + // simply absent from terminfo on many systems. So we insert + // a number of escape sequences if they are not already used, in + // order to have the widest correct usage. Note that prepareKey + // will not inject codes if the escape sequence is already known. + // We also only do this for terminals that have the application + // mode present. + + // Cursor mode + if ti.EnterKeypad != "" { + t.prepareKey(KeyUp, "\x1b[A") + t.prepareKey(KeyDown, "\x1b[B") + t.prepareKey(KeyRight, "\x1b[C") + t.prepareKey(KeyLeft, "\x1b[D") + t.prepareKey(KeyEnd, "\x1b[F") + t.prepareKey(KeyHome, "\x1b[H") + t.prepareKey(KeyDelete, "\x1b[3~") + t.prepareKey(KeyHome, "\x1b[1~") + t.prepareKey(KeyEnd, "\x1b[4~") + t.prepareKey(KeyPgUp, "\x1b[5~") + t.prepareKey(KeyPgDn, "\x1b[6~") + + // Application mode + t.prepareKey(KeyUp, "\x1bOA") + t.prepareKey(KeyDown, "\x1bOB") + t.prepareKey(KeyRight, "\x1bOC") + t.prepareKey(KeyLeft, "\x1bOD") + t.prepareKey(KeyHome, "\x1bOH") + } + +outer: + // Add key mappings for control keys. + for i := 0; i < ' '; i++ { + // Do not insert direct key codes for ambiguous keys. + // For example, ESC is used for lots of other keys, so + // when parsing this we don't want to fast path handling + // of it, but instead wait a bit before parsing it as in + // isolation. + for esc := range t.keycodes { + if []byte(esc)[0] == byte(i) { + continue outer + } + } + + t.keyexist[Key(i)] = true + + mod := ModCtrl + switch Key(i) { + case KeyBS, KeyTAB, KeyESC, KeyCR: + // directly typeable- no control sequence + mod = ModNone + } + t.keycodes[string(rune(i))] = &tKeyCode{key: Key(i), mod: mod} + } +} + +func (t *tScreen) Fini() { + t.Lock() + defer t.Unlock() + + ti := t.ti + t.cells.Resize(0, 0) + t.TPuts(ti.ShowCursor) + t.TPuts(ti.AttrOff) + t.TPuts(ti.Clear) + t.TPuts(ti.ExitCA) + t.TPuts(ti.ExitKeypad) + t.TPuts(ti.TParm(ti.MouseMode, 0)) + t.curstyle = Style(-1) + t.clear = false + t.fini = true + + select { + case <-t.quit: + // do nothing, already closed + + default: + close(t.quit) + } + + t.termioFini() +} + +func (t *tScreen) SetStyle(style Style) { + t.Lock() + if !t.fini { + t.style = style + } + t.Unlock() +} + +func (t *tScreen) Clear() { + t.Fill(' ', t.style) +} + +func (t *tScreen) Fill(r rune, style Style) { + t.Lock() + if !t.fini { + t.cells.Fill(r, style) + } + t.Unlock() +} + +func (t *tScreen) SetContent(x, y int, mainc rune, combc []rune, style Style) { + t.Lock() + if !t.fini { + t.cells.SetContent(x, y, mainc, combc, style) + } + t.Unlock() +} + +func (t *tScreen) GetContent(x, y int) (rune, []rune, Style, int) { + t.Lock() + mainc, combc, style, width := t.cells.GetContent(x, y) + t.Unlock() + return mainc, combc, style, width +} + +func (t *tScreen) SetCell(x, y int, style Style, ch ...rune) { + if len(ch) > 0 { + t.SetContent(x, y, ch[0], ch[1:], style) + } else { + t.SetContent(x, y, ' ', nil, style) + } +} + +func (t *tScreen) encodeRune(r rune, buf []byte) []byte { + + nb := make([]byte, 6) + ob := make([]byte, 6) + num := utf8.EncodeRune(ob, r) + ob = ob[:num] + dst := 0 + var err error + if enc := t.encoder; enc != nil { + enc.Reset() + dst, _, err = enc.Transform(nb, ob, true) + } + if err != nil || dst == 0 || nb[0] == '\x1a' { + // Combining characters are elided + if len(buf) == 0 { + if acs, ok := t.acs[r]; ok { + buf = append(buf, []byte(acs)...) + } else if fb, ok := t.fallback[r]; ok { + buf = append(buf, []byte(fb)...) + } else { + buf = append(buf, '?') + } + } + } else { + buf = append(buf, nb[:dst]...) + } + + return buf +} + +func (t *tScreen) sendFgBg(fg Color, bg Color) { + ti := t.ti + if ti.Colors == 0 { + return + } + if t.truecolor { + if ti.SetFgBgRGB != "" && + fg != ColorDefault && bg != ColorDefault { + r1, g1, b1 := fg.RGB() + r2, g2, b2 := bg.RGB() + t.TPuts(ti.TParm(ti.SetFgBgRGB, + int(r1), int(g1), int(b1), + int(r2), int(g2), int(b2))) + } else { + if fg != ColorDefault && ti.SetFgRGB != "" { + r, g, b := fg.RGB() + t.TPuts(ti.TParm(ti.SetFgRGB, + int(r), int(g), int(b))) + } + if bg != ColorDefault && ti.SetBgRGB != "" { + r, g, b := bg.RGB() + t.TPuts(ti.TParm(ti.SetBgRGB, + int(r), int(g), int(b))) + } + } + return + } + + if fg != ColorDefault { + if v, ok := t.colors[fg]; ok { + fg = v + } else { + v = FindColor(fg, t.palette) + t.colors[fg] = v + fg = v + } + } + + if bg != ColorDefault { + if v, ok := t.colors[bg]; ok { + bg = v + } else { + v = FindColor(bg, t.palette) + t.colors[bg] = v + bg = v + } + } + + if ti.SetFgBg != "" && fg != ColorDefault && bg != ColorDefault { + t.TPuts(ti.TParm(ti.SetFgBg, int(fg), int(bg))) + } else { + if fg != ColorDefault && ti.SetFg != "" { + t.TPuts(ti.TParm(ti.SetFg, int(fg))) + } + if bg != ColorDefault && ti.SetBg != "" { + t.TPuts(ti.TParm(ti.SetBg, int(bg))) + } + } +} + +func (t *tScreen) drawCell(x, y int) int { + + ti := t.ti + + mainc, combc, style, width := t.cells.GetContent(x, y) + if !t.cells.Dirty(x, y) { + return width + } + + if t.cy != y || t.cx != x { + t.TPuts(ti.TGoto(x, y)) + t.cx = x + t.cy = y + } + + if style == StyleDefault { + style = t.style + } + if style != t.curstyle { + fg, bg, attrs := style.Decompose() + + t.TPuts(ti.AttrOff) + + t.sendFgBg(fg, bg) + if attrs&AttrBold != 0 { + t.TPuts(ti.Bold) + } + if attrs&AttrUnderline != 0 { + t.TPuts(ti.Underline) + } + if attrs&AttrReverse != 0 { + t.TPuts(ti.Reverse) + } + if attrs&AttrBlink != 0 { + t.TPuts(ti.Blink) + } + if attrs&AttrDim != 0 { + t.TPuts(ti.Dim) + } + if attrs&AttrItalic != 0 { + t.TPuts(ti.Italic) + } + t.curstyle = style + } + // now emit runes - taking care to not overrun width with a + // wide character, and to ensure that we emit exactly one regular + // character followed up by any residual combing characters + + if width < 1 { + width = 1 + } + + var str string + + buf := make([]byte, 0, 6) + + buf = t.encodeRune(mainc, buf) + for _, r := range combc { + buf = t.encodeRune(r, buf) + } + + str = string(buf) + if width > 1 && str == "?" { + // No FullWidth character support + str = "? " + t.cx = -1 + } + + // XXX: check for hazeltine not being able to display ~ + + if x > t.w-width { + // too wide to fit; emit a single space instead + width = 1 + str = " " + } + t.writeString(str) + t.cx += width + t.cells.SetDirty(x, y, false) + if width > 1 { + t.cx = -1 + } + + return width +} + +func (t *tScreen) ShowCursor(x, y int) { + t.Lock() + t.cursorx = x + t.cursory = y + t.Unlock() +} + +func (t *tScreen) HideCursor() { + t.ShowCursor(-1, -1) +} + +func (t *tScreen) showCursor() { + + x, y := t.cursorx, t.cursory + w, h := t.cells.Size() + if x < 0 || y < 0 || x >= w || y >= h { + t.hideCursor() + return + } + t.TPuts(t.ti.TGoto(x, y)) + t.TPuts(t.ti.ShowCursor) + t.cx = x + t.cy = y +} + +// writeString sends a string to the terminal. The string is sent as-is and +// this function does not expand inline padding indications (of the form +// $<[delay]> where [delay] is msec). In order to have these expanded, use +// TPuts. If the screen is "buffering", the string is collected in a buffer, +// with the intention that the entire buffer be sent to the terminal in one +// write operation at some point later. +func (t *tScreen) writeString(s string) { + if t.buffering { + io.WriteString(&t.buf, s) + } else { + io.WriteString(t.out, s) + } +} + +func (t *tScreen) TPuts(s string) { + if t.buffering { + t.ti.TPuts(&t.buf, s) + } else { + t.ti.TPuts(t.out, s) + } +} + +func (t *tScreen) Show() { + t.Lock() + if !t.fini { + t.resize() + t.draw() + } + t.Unlock() +} + +func (t *tScreen) clearScreen() { + fg, bg, _ := t.style.Decompose() + t.sendFgBg(fg, bg) + t.TPuts(t.ti.Clear) + t.clear = false +} + +func (t *tScreen) hideCursor() { + // does not update cursor position + if t.ti.HideCursor != "" { + t.TPuts(t.ti.HideCursor) + } else { + // No way to hide cursor, stick it + // at bottom right of screen + t.cx, t.cy = t.cells.Size() + t.TPuts(t.ti.TGoto(t.cx, t.cy)) + } +} + +func (t *tScreen) draw() { + // clobber cursor position, because we're gonna change it all + t.cx = -1 + t.cy = -1 + + t.buf.Reset() + t.buffering = true + defer func() { + t.buffering = false + }() + + // hide the cursor while we move stuff around + t.hideCursor() + + if t.clear { + t.clearScreen() + } + + for y := 0; y < t.h; y++ { + for x := 0; x < t.w; x++ { + width := t.drawCell(x, y) + if width > 1 { + if x+1 < t.w { + // this is necessary so that if we ever + // go back to drawing that cell, we + // actually will *draw* it. + t.cells.SetDirty(x+1, y, true) + } + } + x += width - 1 + } + } + + // restore the cursor + t.showCursor() + + t.buf.WriteTo(t.out) +} + +func (t *tScreen) EnableMouse() { + if len(t.mouse) != 0 { + t.TPuts(t.ti.TParm(t.ti.MouseMode, 1)) + } +} + +func (t *tScreen) DisableMouse() { + if len(t.mouse) != 0 { + t.TPuts(t.ti.TParm(t.ti.MouseMode, 0)) + } +} + +func (t *tScreen) Size() (int, int) { + t.Lock() + w, h := t.w, t.h + t.Unlock() + return w, h +} + +func (t *tScreen) resize() { + if w, h, e := t.getWinSize(); e == nil { + if w != t.w || h != t.h { + t.cx = -1 + t.cy = -1 + + t.cells.Resize(w, h) + t.cells.Invalidate() + t.h = h + t.w = w + ev := NewEventResize(w, h) + t.PostEvent(ev) + } + } +} + +func (t *tScreen) Colors() int { + // this doesn't change, no need for lock + if t.truecolor { + return 1 << 24 + } + return t.ti.Colors +} + +func (t *tScreen) PollEvent() Event { + select { + case <-t.quit: + return nil + case ev := <-t.evch: + return ev + } +} + +// vtACSNames is a map of bytes defined by terminfo that are used in +// the terminals Alternate Character Set to represent other glyphs. +// For example, the upper left corner of the box drawing set can be +// displayed by printing "l" while in the alternate character set. +// Its not quite that simple, since the "l" is the terminfo name, +// and it may be necessary to use a different character based on +// the terminal implementation (or the terminal may lack support for +// this altogether). See buildAcsMap below for detail. +var vtACSNames = map[byte]rune{ + '+': RuneRArrow, + ',': RuneLArrow, + '-': RuneUArrow, + '.': RuneDArrow, + '0': RuneBlock, + '`': RuneDiamond, + 'a': RuneCkBoard, + 'b': '␉', // VT100, Not defined by terminfo + 'c': '␌', // VT100, Not defined by terminfo + 'd': '␋', // VT100, Not defined by terminfo + 'e': '␊', // VT100, Not defined by terminfo + 'f': RuneDegree, + 'g': RunePlMinus, + 'h': RuneBoard, + 'i': RuneLantern, + 'j': RuneLRCorner, + 'k': RuneURCorner, + 'l': RuneULCorner, + 'm': RuneLLCorner, + 'n': RunePlus, + 'o': RuneS1, + 'p': RuneS3, + 'q': RuneHLine, + 'r': RuneS7, + 's': RuneS9, + 't': RuneLTee, + 'u': RuneRTee, + 'v': RuneBTee, + 'w': RuneTTee, + 'x': RuneVLine, + 'y': RuneLEqual, + 'z': RuneGEqual, + '{': RunePi, + '|': RuneNEqual, + '}': RuneSterling, + '~': RuneBullet, +} + +// buildAcsMap builds a map of characters that we translate from Unicode to +// alternate character encodings. To do this, we use the standard VT100 ACS +// maps. This is only done if the terminal lacks support for Unicode; we +// always prefer to emit Unicode glyphs when we are able. +func (t *tScreen) buildAcsMap() { + acsstr := t.ti.AltChars + t.acs = make(map[rune]string) + for len(acsstr) > 2 { + srcv := acsstr[0] + dstv := string(acsstr[1]) + if r, ok := vtACSNames[srcv]; ok { + t.acs[r] = t.ti.EnterAcs + dstv + t.ti.ExitAcs + } + acsstr = acsstr[2:] + } +} + +func (t *tScreen) PostEventWait(ev Event) { + t.evch <- ev +} + +func (t *tScreen) PostEvent(ev Event) error { + select { + case t.evch <- ev: + return nil + default: + return ErrEventQFull + } +} + +func (t *tScreen) clip(x, y int) (int, int) { + w, h := t.cells.Size() + if x < 0 { + x = 0 + } + if y < 0 { + y = 0 + } + if x > w-1 { + x = w - 1 + } + if y > h-1 { + y = h - 1 + } + return x, y +} + +// buildMouseEvent returns an event based on the supplied coordinates and button +// state. Note that the screen's mouse button state is updated based on the +// input to this function (i.e. it mutates the receiver). +func (t *tScreen) buildMouseEvent(x, y, btn int) *EventMouse { + + // XTerm mouse events only report at most one button at a time, + // which may include a wheel button. Wheel motion events are + // reported as single impulses, while other button events are reported + // as separate press & release events. + + button := ButtonNone + mod := ModNone + + // Mouse wheel has bit 6 set, no release events. It should be noted + // that wheel events are sometimes misdelivered as mouse button events + // during a click-drag, so we debounce these, considering them to be + // button press events unless we see an intervening release event. + switch btn & 0x43 { + case 0: + button = Button1 + t.wasbtn = true + case 1: + button = Button2 + t.wasbtn = true + case 2: + button = Button3 + t.wasbtn = true + case 3: + button = ButtonNone + t.wasbtn = false + case 0x40: + if !t.wasbtn { + button = WheelUp + } else { + button = Button1 + } + case 0x41: + if !t.wasbtn { + button = WheelDown + } else { + button = Button2 + } + } + + if btn&0x4 != 0 { + mod |= ModShift + } + if btn&0x8 != 0 { + mod |= ModAlt + } + if btn&0x10 != 0 { + mod |= ModCtrl + } + + // Some terminals will report mouse coordinates outside the + // screen, especially with click-drag events. Clip the coordinates + // to the screen in that case. + x, y = t.clip(x, y) + + return NewEventMouse(x, y, button, mod) +} + +// parseSgrMouse attempts to locate an SGR mouse record at the start of the +// buffer. It returns true, true if it found one, and the associated bytes +// be removed from the buffer. It returns true, false if the buffer might +// contain such an event, but more bytes are necessary (partial match), and +// false, false if the content is definitely *not* an SGR mouse record. +func (t *tScreen) parseSgrMouse(buf *bytes.Buffer, evs *[]Event) (bool, bool) { + + b := buf.Bytes() + + var x, y, btn, state int + dig := false + neg := false + motion := false + i := 0 + val := 0 + + for i = range b { + switch b[i] { + case '\x1b': + if state != 0 { + return false, false + } + state = 1 + + case '\x9b': + if state != 0 { + return false, false + } + state = 2 + + case '[': + if state != 1 { + return false, false + } + state = 2 + + case '<': + if state != 2 { + return false, false + } + val = 0 + dig = false + neg = false + state = 3 + + case '-': + if state != 3 && state != 4 && state != 5 { + return false, false + } + if dig || neg { + return false, false + } + neg = true // stay in state + + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + if state != 3 && state != 4 && state != 5 { + return false, false + } + val *= 10 + val += int(b[i] - '0') + dig = true // stay in state + + case ';': + if neg { + val = -val + } + switch state { + case 3: + btn, val = val, 0 + neg, dig, state = false, false, 4 + case 4: + x, val = val-1, 0 + neg, dig, state = false, false, 5 + default: + return false, false + } + + case 'm', 'M': + if state != 5 { + return false, false + } + if neg { + val = -val + } + y = val - 1 + + motion = (btn & 32) != 0 + btn &^= 32 + if b[i] == 'm' { + // mouse release, clear all buttons + btn |= 3 + btn &^= 0x40 + t.buttondn = false + } else if motion { + /* + * Some broken terminals appear to send + * mouse button one motion events, instead of + * encoding 35 (no buttons) into these events. + * We resolve these by looking for a non-motion + * event first. + */ + if !t.buttondn { + btn |= 3 + btn &^= 0x40 + } + } else { + t.buttondn = true + } + // consume the event bytes + for i >= 0 { + buf.ReadByte() + i-- + } + *evs = append(*evs, t.buildMouseEvent(x, y, btn)) + return true, true + } + } + + // incomplete & inconclusve at this point + return true, false +} + +// parseXtermMouse is like parseSgrMouse, but it parses a legacy +// X11 mouse record. +func (t *tScreen) parseXtermMouse(buf *bytes.Buffer, evs *[]Event) (bool, bool) { + + b := buf.Bytes() + + state := 0 + btn := 0 + x := 0 + y := 0 + + for i := range b { + switch state { + case 0: + switch b[i] { + case '\x1b': + state = 1 + case '\x9b': + state = 2 + default: + return false, false + } + case 1: + if b[i] != '[' { + return false, false + } + state = 2 + case 2: + if b[i] != 'M' { + return false, false + } + state++ + case 3: + btn = int(b[i]) + state++ + case 4: + x = int(b[i]) - 32 - 1 + state++ + case 5: + y = int(b[i]) - 32 - 1 + for i >= 0 { + buf.ReadByte() + i-- + } + *evs = append(*evs, t.buildMouseEvent(x, y, btn)) + return true, true + } + } + return true, false +} + +func (t *tScreen) parseFunctionKey(buf *bytes.Buffer, evs *[]Event) (bool, bool) { + b := buf.Bytes() + partial := false + for e, k := range t.keycodes { + esc := []byte(e) + if (len(esc) == 1) && (esc[0] == '\x1b') { + continue + } + if bytes.HasPrefix(b, esc) { + // matched + var r rune + if len(esc) == 1 { + r = rune(b[0]) + } + mod := k.mod + if t.escaped { + mod |= ModAlt + t.escaped = false + } + *evs = append(*evs, NewEventKey(k.key, r, mod)) + for i := 0; i < len(esc); i++ { + buf.ReadByte() + } + return true, true + } + if bytes.HasPrefix(esc, b) { + partial = true + } + } + return partial, false +} + +func (t *tScreen) parseRune(buf *bytes.Buffer, evs *[]Event) (bool, bool) { + b := buf.Bytes() + if b[0] >= ' ' && b[0] <= 0x7F { + // printable ASCII easy to deal with -- no encodings + mod := ModNone + if t.escaped { + mod = ModAlt + t.escaped = false + } + *evs = append(*evs, NewEventKey(KeyRune, rune(b[0]), mod)) + buf.ReadByte() + return true, true + } + + if b[0] < 0x80 { + // Low numbered values are control keys, not runes. + return false, false + } + + utfb := make([]byte, 12) + for l := 1; l <= len(b); l++ { + t.decoder.Reset() + nout, nin, e := t.decoder.Transform(utfb, b[:l], true) + if e == transform.ErrShortSrc { + continue + } + if nout != 0 { + r, _ := utf8.DecodeRune(utfb[:nout]) + if r != utf8.RuneError { + mod := ModNone + if t.escaped { + mod = ModAlt + t.escaped = false + } + *evs = append(*evs, NewEventKey(KeyRune, r, mod)) + } + for nin > 0 { + buf.ReadByte() + nin-- + } + return true, true + } + } + // Looks like potential escape + return true, false +} + +func (t *tScreen) scanInput(buf *bytes.Buffer, expire bool) { + evs := t.collectEventsFromInput(buf, expire) + + for _, ev := range evs { + t.PostEventWait(ev) + } +} + +// Return an array of Events extracted from the supplied buffer. This is done +// while holding the screen's lock - the events can then be queued for +// application processing with the lock released. +func (t *tScreen) collectEventsFromInput(buf *bytes.Buffer, expire bool) []Event { + + res := make([]Event, 0, 20) + + t.Lock() + defer t.Unlock() + + for { + b := buf.Bytes() + if len(b) == 0 { + buf.Reset() + return res + } + + partials := 0 + + if part, comp := t.parseRune(buf, &res); comp { + continue + } else if part { + partials++ + } + + if part, comp := t.parseFunctionKey(buf, &res); comp { + continue + } else if part { + partials++ + } + + // Only parse mouse records if this term claims to have + // mouse support + + if t.ti.Mouse != "" { + if part, comp := t.parseXtermMouse(buf, &res); comp { + continue + } else if part { + partials++ + } + + if part, comp := t.parseSgrMouse(buf, &res); comp { + continue + } else if part { + partials++ + } + } + + if partials == 0 || expire { + if b[0] == '\x1b' { + if len(b) == 1 { + res = append(res, NewEventKey(KeyEsc, 0, ModNone)) + t.escaped = false + } else { + t.escaped = true + } + buf.ReadByte() + continue + } + // Nothing was going to match, or we timed out + // waiting for more data -- just deliver the characters + // to the app & let them sort it out. Possibly we + // should only do this for control characters like ESC. + by, _ := buf.ReadByte() + mod := ModNone + if t.escaped { + t.escaped = false + mod = ModAlt + } + res = append(res, NewEventKey(KeyRune, rune(by), mod)) + continue + } + + // well we have some partial data, wait until we get + // some more + break + } + + return res +} + +func (t *tScreen) mainLoop() { + buf := &bytes.Buffer{} + for { + select { + case <-t.quit: + close(t.indoneq) + return + case <-t.sigwinch: + t.Lock() + t.cx = -1 + t.cy = -1 + t.resize() + t.cells.Invalidate() + t.draw() + t.Unlock() + continue + case <-t.keytimer.C: + // If the timer fired, and the current time + // is after the expiration of the escape sequence, + // then we assume the escape sequence reached it's + // conclusion, and process the chunk independently. + // This lets us detect conflicts such as a lone ESC. + if buf.Len() > 0 { + if time.Now().After(t.keyexpire) { + t.scanInput(buf, true) + } + } + if buf.Len() > 0 { + if !t.keytimer.Stop() { + select { + case <-t.keytimer.C: + default: + } + } + t.keytimer.Reset(time.Millisecond * 50) + } + case chunk := <-t.keychan: + buf.Write(chunk) + t.keyexpire = time.Now().Add(time.Millisecond * 50) + t.scanInput(buf, false) + if !t.keytimer.Stop() { + select { + case <-t.keytimer.C: + default: + } + } + if buf.Len() > 0 { + t.keytimer.Reset(time.Millisecond * 50) + } + } + } +} + +func (t *tScreen) inputLoop() { + + for { + chunk := make([]byte, 128) + n, e := t.in.Read(chunk) + switch e { + case io.EOF: + case nil: + default: + t.PostEvent(NewEventError(e)) + return + } + t.keychan <- chunk[:n] + } +} + +func (t *tScreen) Sync() { + t.Lock() + t.cx = -1 + t.cy = -1 + if !t.fini { + t.resize() + t.clear = true + t.cells.Invalidate() + t.draw() + } + t.Unlock() +} + +func (t *tScreen) CharacterSet() string { + return t.charset +} + +func (t *tScreen) RegisterRuneFallback(orig rune, fallback string) { + t.Lock() + t.fallback[orig] = fallback + t.Unlock() +} + +func (t *tScreen) UnregisterRuneFallback(orig rune) { + t.Lock() + delete(t.fallback, orig) + t.Unlock() +} + +func (t *tScreen) CanDisplay(r rune, checkFallbacks bool) bool { + + if enc := t.encoder; enc != nil { + nb := make([]byte, 6) + ob := make([]byte, 6) + num := utf8.EncodeRune(ob, r) + + enc.Reset() + dst, _, err := enc.Transform(nb, ob[:num], true) + if dst != 0 && err == nil && nb[0] != '\x1A' { + return true + } + } + // Terminal fallbacks always permitted, since we assume they are + // basically nearly perfect renditions. + if _, ok := t.acs[r]; ok { + return true + } + if !checkFallbacks { + return false + } + if _, ok := t.fallback[r]; ok { + return true + } + return false +} + +func (t *tScreen) HasMouse() bool { + return len(t.mouse) != 0 +} + +func (t *tScreen) HasKey(k Key) bool { + if k == KeyRune { + return true + } + return t.keyexist[k] +} + +func (t *tScreen) Resize(int, int, int, int) {} diff --git a/vendor/github.com/gdamore/tcell/tscreen_bsd.go b/vendor/github.com/gdamore/tcell/tscreen_bsd.go new file mode 100644 index 0000000..85bf2ab --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_bsd.go @@ -0,0 +1,121 @@ +// +build freebsd netbsd openbsd dragonfly + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "os" + "os/signal" + "syscall" + "unsafe" +) + +type termiosPrivate syscall.Termios + +func (t *tScreen) termioInit() error { + var e error + var newtios termiosPrivate + var fd uintptr + var tios uintptr + var ioc uintptr + t.tiosp = &termiosPrivate{} + + if t.in, e = os.OpenFile("/dev/tty", os.O_RDONLY, 0); e != nil { + goto failed + } + if t.out, e = os.OpenFile("/dev/tty", os.O_WRONLY, 0); e != nil { + goto failed + } + + tios = uintptr(unsafe.Pointer(t.tiosp)) + ioc = uintptr(syscall.TIOCGETA) + fd = uintptr(t.out.Fd()) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + newtios = *t.tiosp + newtios.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | + syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | + syscall.ICRNL | syscall.IXON + newtios.Oflag &^= syscall.OPOST + newtios.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | + syscall.ISIG | syscall.IEXTEN + newtios.Cflag &^= syscall.CSIZE | syscall.PARENB + newtios.Cflag |= syscall.CS8 + + tios = uintptr(unsafe.Pointer(&newtios)) + + ioc = uintptr(syscall.TIOCSETA) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + signal.Notify(t.sigwinch, syscall.SIGWINCH) + + if w, h, e := t.getWinSize(); e == nil && w != 0 && h != 0 { + t.cells.Resize(w, h) + } + + return nil + +failed: + if t.in != nil { + t.in.Close() + } + if t.out != nil { + t.out.Close() + } + return e +} + +func (t *tScreen) termioFini() { + + signal.Stop(t.sigwinch) + + <-t.indoneq + + if t.out != nil { + fd := uintptr(t.out.Fd()) + ioc := uintptr(syscall.TIOCSETAF) + tios := uintptr(unsafe.Pointer(t.tiosp)) + syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0) + t.out.Close() + } + if t.in != nil { + t.in.Close() + } +} + +func (t *tScreen) getWinSize() (int, int, error) { + + fd := uintptr(t.out.Fd()) + dim := [4]uint16{} + dimp := uintptr(unsafe.Pointer(&dim)) + ioc := uintptr(syscall.TIOCGWINSZ) + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, + fd, ioc, dimp, 0, 0, 0); err != 0 { + return -1, -1, err + } + return int(dim[1]), int(dim[0]), nil +} + +func (t *tScreen) Beep() error { + t.writeString(string(byte(7))) + return nil +} diff --git a/vendor/github.com/gdamore/tcell/tscreen_darwin.go b/vendor/github.com/gdamore/tcell/tscreen_darwin.go new file mode 100644 index 0000000..2e30648 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_darwin.go @@ -0,0 +1,142 @@ +// +build darwin + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// The Darwin system is *almost* a real BSD system, but it suffers from +// a brain damaged TTY driver. This TTY driver does not actually +// wake up in poll() or similar calls, which means that we cannot reliably +// shut down the terminal without resorting to obscene custom C code +// and a dedicated poller thread. +// +// So instead, we do a best effort, and simply try to do the close in the +// background. Probably this will cause a leak of two goroutines and +// maybe also the file descriptor, meaning that applications on Darwin +// can't reinitialize the screen, but that's probably a very rare behavior, +// and accepting that is the best of some very poor alternative options. +// +// Maybe someday Apple will fix there tty driver, but its been broken for +// a long time (probably forever) so holding one's breath is contraindicated. + +import ( + "os" + "os/signal" + "syscall" + "unsafe" +) + +type termiosPrivate syscall.Termios + +func (t *tScreen) termioInit() error { + var e error + var newtios termiosPrivate + var fd uintptr + var tios uintptr + var ioc uintptr + t.tiosp = &termiosPrivate{} + + if t.in, e = os.OpenFile("/dev/tty", os.O_RDONLY, 0); e != nil { + goto failed + } + if t.out, e = os.OpenFile("/dev/tty", os.O_WRONLY, 0); e != nil { + goto failed + } + + tios = uintptr(unsafe.Pointer(t.tiosp)) + ioc = uintptr(syscall.TIOCGETA) + fd = uintptr(t.out.Fd()) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + newtios = *t.tiosp + newtios.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | + syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | + syscall.ICRNL | syscall.IXON + newtios.Oflag &^= syscall.OPOST + newtios.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON | + syscall.ISIG | syscall.IEXTEN + newtios.Cflag &^= syscall.CSIZE | syscall.PARENB + newtios.Cflag |= syscall.CS8 + + tios = uintptr(unsafe.Pointer(&newtios)) + + ioc = uintptr(syscall.TIOCSETA) + if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0); e1 != 0 { + e = e1 + goto failed + } + + signal.Notify(t.sigwinch, syscall.SIGWINCH) + + if w, h, e := t.getWinSize(); e == nil && w != 0 && h != 0 { + t.cells.Resize(w, h) + } + + return nil + +failed: + if t.in != nil { + t.in.Close() + } + if t.out != nil { + t.out.Close() + } + return e +} + +func (t *tScreen) termioFini() { + + signal.Stop(t.sigwinch) + + <-t.indoneq + + if t.out != nil { + fd := uintptr(t.out.Fd()) + ioc := uintptr(syscall.TIOCSETAF) + tios := uintptr(unsafe.Pointer(t.tiosp)) + syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc, tios, 0, 0, 0) + t.out.Close() + } + + // See above -- we background this call which might help, but + // really the tty is probably open. + + go func() { + if t.in != nil { + t.in.Close() + } + }() +} + +func (t *tScreen) getWinSize() (int, int, error) { + + fd := uintptr(t.out.Fd()) + dim := [4]uint16{} + dimp := uintptr(unsafe.Pointer(&dim)) + ioc := uintptr(syscall.TIOCGWINSZ) + if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, + fd, ioc, dimp, 0, 0, 0); err != 0 { + return -1, -1, err + } + return int(dim[1]), int(dim[0]), nil +} + +func (t *tScreen) Beep() error { + t.writeString(string(byte(7))) + return nil +} diff --git a/vendor/github.com/gdamore/tcell/tscreen_linux.go b/vendor/github.com/gdamore/tcell/tscreen_linux.go new file mode 100644 index 0000000..6e9866a --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_linux.go @@ -0,0 +1,147 @@ +// +build linux + +// Copyright 2019 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "os" + "os/signal" + "strconv" + "syscall" + + "golang.org/x/sys/unix" +) + +type termiosPrivate struct { + tio *unix.Termios +} + +func (t *tScreen) termioInit() error { + var e error + var raw *unix.Termios + var tio *unix.Termios + + if t.in, e = os.OpenFile("/dev/tty", os.O_RDONLY, 0); e != nil { + goto failed + } + if t.out, e = os.OpenFile("/dev/tty", os.O_WRONLY, 0); e != nil { + goto failed + } + + tio, e = unix.IoctlGetTermios(int(t.out.Fd()), unix.TCGETS) + if e != nil { + goto failed + } + + t.tiosp = &termiosPrivate{tio: tio} + + // make a local copy, to make it raw + raw = &unix.Termios{ + Cflag: tio.Cflag, + Oflag: tio.Oflag, + Iflag: tio.Iflag, + Lflag: tio.Lflag, + Cc: tio.Cc, + } + raw.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | + unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) + raw.Oflag &^= unix.OPOST + raw.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | + unix.IEXTEN) + raw.Cflag &^= (unix.CSIZE | unix.PARENB) + raw.Cflag |= unix.CS8 + + // This is setup for blocking reads. In the past we attempted to + // use non-blocking reads, but now a separate input loop and timer + // copes with the problems we had on some systems (BSD/Darwin) + // where close hung forever. + raw.Cc[unix.VMIN] = 1 + raw.Cc[unix.VTIME] = 0 + + e = unix.IoctlSetTermios(int(t.out.Fd()), unix.TCSETS, raw) + if e != nil { + goto failed + } + + signal.Notify(t.sigwinch, syscall.SIGWINCH) + + if w, h, e := t.getWinSize(); e == nil && w != 0 && h != 0 { + t.cells.Resize(w, h) + } + + return nil + +failed: + if t.in != nil { + t.in.Close() + } + if t.out != nil { + t.out.Close() + } + return e +} + +func (t *tScreen) termioFini() { + + signal.Stop(t.sigwinch) + + <-t.indoneq + + if t.out != nil && t.tiosp != nil { + unix.IoctlSetTermios(int(t.out.Fd()), unix.TCSETSF, t.tiosp.tio) + t.out.Close() + } + + if t.in != nil { + t.in.Close() + } +} + +func (t *tScreen) getWinSize() (int, int, error) { + + wsz, err := unix.IoctlGetWinsize(int(t.out.Fd()), unix.TIOCGWINSZ) + if err != nil { + return -1, -1, err + } + cols := int(wsz.Col) + rows := int(wsz.Row) + if cols == 0 { + colsEnv := os.Getenv("COLUMNS") + if colsEnv != "" { + if cols, err = strconv.Atoi(colsEnv); err != nil { + return -1, -1, err + } + } else { + cols = t.ti.Columns + } + } + if rows == 0 { + rowsEnv := os.Getenv("LINES") + if rowsEnv != "" { + if rows, err = strconv.Atoi(rowsEnv); err != nil { + return -1, -1, err + } + } else { + rows = t.ti.Lines + } + } + return cols, rows, nil +} + +func (t *tScreen) Beep() error { + t.writeString(string(byte(7))) + return nil +} diff --git a/vendor/github.com/gdamore/tcell/tscreen_solaris.go b/vendor/github.com/gdamore/tcell/tscreen_solaris.go new file mode 100644 index 0000000..60b94b9 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_solaris.go @@ -0,0 +1,122 @@ +// +build solaris illumos + +// Copyright 2020 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +import ( + "os" + "os/signal" + "syscall" + + "golang.org/x/sys/unix" +) + +type termiosPrivate struct { + tio *unix.Termios +} + +func (t *tScreen) termioInit() error { + var e error + var raw *unix.Termios + var tio *unix.Termios + + if t.in, e = os.OpenFile("/dev/tty", os.O_RDONLY, 0); e != nil { + goto failed + } + if t.out, e = os.OpenFile("/dev/tty", os.O_WRONLY, 0); e != nil { + goto failed + } + + tio, e = unix.IoctlGetTermios(int(t.out.Fd()), unix.TCGETS) + if e != nil { + goto failed + } + + t.tiosp = &termiosPrivate{tio: tio} + + // make a local copy, to make it raw + raw = &unix.Termios{ + Cflag: tio.Cflag, + Oflag: tio.Oflag, + Iflag: tio.Iflag, + Lflag: tio.Lflag, + Cc: tio.Cc, + } + + raw.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.INLCR | + unix.IGNCR | unix.ICRNL | unix.IXON) + raw.Oflag &^= unix.OPOST + raw.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) + raw.Cflag &^= (unix.CSIZE | unix.PARENB) + raw.Cflag |= unix.CS8 + + // This is setup for blocking reads. In the past we attempted to + // use non-blocking reads, but now a separate input loop and timer + // copes with the problems we had on some systems (BSD/Darwin) + // where close hung forever. + raw.Cc[unix.VMIN] = 1 + raw.Cc[unix.VTIME] = 0 + + e = unix.IoctlSetTermios(int(t.out.Fd()), unix.TCSETS, raw) + if e != nil { + goto failed + } + + signal.Notify(t.sigwinch, syscall.SIGWINCH) + + if w, h, e := t.getWinSize(); e == nil && w != 0 && h != 0 { + t.cells.Resize(w, h) + } + + return nil + +failed: + if t.in != nil { + t.in.Close() + } + if t.out != nil { + t.out.Close() + } + return e +} + +func (t *tScreen) termioFini() { + + signal.Stop(t.sigwinch) + + <-t.indoneq + + if t.out != nil && t.tiosp != nil { + unix.IoctlSetTermios(int(t.out.Fd()), unix.TCSETSF, t.tiosp.tio) + t.out.Close() + } + if t.in != nil { + t.in.Close() + } +} + +func (t *tScreen) getWinSize() (int, int, error) { + wsz, err := unix.IoctlGetWinsize(int(t.out.Fd()), unix.TIOCGWINSZ) + if err != nil { + return -1, -1, err + } + return int(wsz.Col), int(wsz.Row), nil +} + +func (t *tScreen) Beep() error { + t.writeString(string(byte(7))) + return nil +} diff --git a/vendor/github.com/gdamore/tcell/tscreen_stub.go b/vendor/github.com/gdamore/tcell/tscreen_stub.go new file mode 100644 index 0000000..0c7d012 --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_stub.go @@ -0,0 +1,36 @@ +// +build nacl plan9 + +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// This stub file is for systems that have no termios. + +type termiosPrivate struct{} + +func (t *tScreen) termioInit() error { + return ErrNoScreen +} + +func (t *tScreen) termioFini() { +} + +func (t *tScreen) getWinSize() (int, int, error) { + return 0, 0, ErrNoScreen +} + +func (t *tScreen) Beep() error { + return ErrNoScreen +} diff --git a/vendor/github.com/gdamore/tcell/tscreen_windows.go b/vendor/github.com/gdamore/tcell/tscreen_windows.go new file mode 100644 index 0000000..e0ae2ee --- /dev/null +++ b/vendor/github.com/gdamore/tcell/tscreen_windows.go @@ -0,0 +1,44 @@ +// +build windows + +// Copyright 2015 The TCell Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use file except in compliance with the License. +// You may obtain a copy of the license at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package tcell + +// On Windows we don't have support for termios. We probably could, and +// may should, in a cygwin type environment. Its not clear how to make +// this all work nicely with both cygwin and Windows console, so we +// decline to do so here. + +func (t *tScreen) termioInit() error { + return ErrNoScreen +} + +func (t *tScreen) termioFini() { + return +} + +func (t *tScreen) getWinSize() (int, int, error) { + return 0, 0, ErrNoScreen +} + +func (t *tScreen) getCharset() string { + return "UTF-16LE" +} + +func (t *tScreen) Beep() error { + return ErrNoScreen +} + +type termiosPrivate struct{} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/.gitignore b/vendor/github.com/lucasb-eyer/go-colorful/.gitignore new file mode 100644 index 0000000..47fda8e --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/.gitignore @@ -0,0 +1,28 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Vim swap files +.*.sw? + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe + +# Code coverage stuff +coverage.out diff --git a/vendor/github.com/lucasb-eyer/go-colorful/.travis.yml b/vendor/github.com/lucasb-eyer/go-colorful/.travis.yml new file mode 100644 index 0000000..5bb2a82 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/.travis.yml @@ -0,0 +1,7 @@ +language: go +install: + - go get golang.org/x/tools/cmd/cover + - go get github.com/mattn/goveralls +script: + - go test -v -covermode=count -coverprofile=coverage.out + - if [[ "$TRAVIS_PULL_REQUEST" = "false" ]]; then $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN; fi diff --git a/vendor/github.com/lucasb-eyer/go-colorful/LICENSE b/vendor/github.com/lucasb-eyer/go-colorful/LICENSE new file mode 100644 index 0000000..4e402a0 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) 2013 Lucas Beyer + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/lucasb-eyer/go-colorful/README.md b/vendor/github.com/lucasb-eyer/go-colorful/README.md new file mode 100644 index 0000000..2cb0c42 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/README.md @@ -0,0 +1,492 @@ +go-colorful +=========== +A library for playing with colors in go (golang). + +[![Build Status](https://travis-ci.org/lucasb-eyer/go-colorful.svg?branch=master)](https://travis-ci.org/lucasb-eyer/go-colorful) +[![Coverage Status](https://coveralls.io/repos/github/lucasb-eyer/go-colorful/badge.svg?branch=master)](https://coveralls.io/github/lucasb-eyer/go-colorful?branch=master) + +Why? +==== +I love games. I make games. I love detail and I get lost in detail. +One such detail popped up during the development of [Memory Which Does Not Suck](https://github.com/lucasb-eyer/mwdns/), +when we wanted the server to assign the players random colors. Sometimes +two players got very similar colors, which bugged me. The very same evening, +[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/) was the top post +on HackerNews' frontpage and showed me how to Do It Right™. Last but not +least, there was no library for handling color spaces available in go. Colorful +does just that and implements Go's `color.Color` interface. + +What? +===== +Go-Colorful stores colors in RGB and provides methods from converting these to various color-spaces. Currently supported colorspaces are: + +- **RGB:** All three of Red, Green and Blue in [0..1]. +- **HSL:** Hue in [0..360], Saturation and Luminance in [0..1]. For legacy reasons; please forget that it exists. +- **HSV:** Hue in [0..360], Saturation and Value in [0..1]. You're better off using HCL, see below. +- **Hex RGB:** The "internet" color format, as in #FF00FF. +- **Linear RGB:** See [gamma correct rendering](http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). +- **CIE-XYZ:** CIE's standard color space, almost in [0..1]. +- **CIE-xyY:** encodes chromacity in x and y and luminance in Y, all in [0..1] +- **CIE-L\*a\*b\*:** A *perceptually uniform* color space, i.e. distances are meaningful. L\* in [0..1] and a\*, b\* almost in [-1..1]. +- **CIE-L\*u\*v\*:** Very similar to CIE-L\*a\*b\*, there is [no consensus](http://en.wikipedia.org/wiki/CIELUV#Historical_background) on which one is "better". +- **CIE-L\*C\*h° (HCL):** This is generally the [most useful](http://vis4.net/blog/posts/avoid-equidistant-hsv-colors/) one; CIE-L\*a\*b\* space in polar coordinates, i.e. a *better* HSV. H° is in [0..360], C\* almost in [-1..1] and L\* as in CIE-L\*a\*b\*. + +For the colorspaces where it makes sense (XYZ, Lab, Luv, HCl), the +[D65](http://en.wikipedia.org/wiki/Illuminant_D65) is used as reference white +by default but methods for using your own reference white are provided. + +A coordinate being *almost in* a range means that generally it is, but for very +bright colors and depending on the reference white, it might overflow this +range slightly. For example, C\* of #0000ff is 1.338. + +Unit-tests are provided. + +Nice, but what's it useful for? +------------------------------- + +- Converting color spaces. Some people like to do that. +- Blending (interpolating) between colors in a "natural" look by using the right colorspace. +- Generating random colors under some constraints (e.g. colors of the same shade, or shades of one color.) +- Generating gorgeous random palettes with distinct colors of a same temperature. + +What not (yet)? +=============== +There are a few features which are currently missing and might be useful. +I just haven't implemented them yet because I didn't have the need for it. +Pull requests welcome. + +- Sorting colors (potentially using above mentioned distances) + +So which colorspace should I use? +================================= +It depends on what you want to do. I think the folks from *I want hue* are +on-spot when they say that RGB fits to how *screens produce* color, CIE L\*a\*b\* +fits how *humans perceive* color and HCL fits how *humans think* colors. + +Whenever you'd use HSV, rather go for CIE-L\*C\*h°. for fixed lightness L\* and +chroma C\* values, the hue angle h° rotates through colors of the same +perceived brightness and intensity. + +How? +==== + +### Installing +Installing the library is as easy as + +```bash +$ go get github.com/lucasb-eyer/go-colorful +``` + +The package can then be used through an + +```go +import "github.com/lucasb-eyer/go-colorful" +``` + +### Basic usage + +Create a beautiful blue color using different source space: + +```go +// Any of the following should be the same +c := colorful.Color{0.313725, 0.478431, 0.721569} +c, err := colorful.Hex("#517AB8") +if err != nil { + log.Fatal(err) +} +c = colorful.Hsv(216.0, 0.56, 0.722) +c = colorful.Xyz(0.189165, 0.190837, 0.480248) +c = colorful.Xyy(0.219895, 0.221839, 0.190837) +c = colorful.Lab(0.507850, 0.040585,-0.370945) +c = colorful.Luv(0.507849,-0.194172,-0.567924) +c = colorful.Hcl(276.2440, 0.373160, 0.507849) +fmt.Printf("RGB values: %v, %v, %v", c.R, c.G, c.B) +``` + +And then converting this color back into various color spaces: + +```go +hex := c.Hex() +h, s, v := c.Hsv() +x, y, z := c.Xyz() +x, y, Y := c.Xyy() +l, a, b := c.Lab() +l, u, v := c.Luv() +h, c, l := c.Hcl() +``` + +Note that, because of Go's unfortunate choice of requiring an initial uppercase, +the name of the functions relating to the xyY space are just off. If you have +any good suggestion, please open an issue. (I don't consider XyY good.) + +### The `color.Color` interface +Because a `colorful.Color` implements Go's `color.Color` interface (found in the +`image/color` package), it can be used anywhere that expects a `color.Color`. + +Furthermore, you can convert anything that implements the `color.Color` interface +into a `colorful.Color` using the `MakeColor` function: + +```go +c, ok := colorful.MakeColor(color.Gray16{12345}) +``` + +**Caveat:** Be aware that this latter conversion (using `MakeColor`) hits a +corner-case when alpha is exactly zero. Because `color.Color` uses pre-multiplied +alpha colors, this means the RGB values are lost (set to 0) and it's impossible +to recover them. In such a case `MakeColor` will return `false` as its second value. + +### Comparing colors +In the RGB color space, the Euclidian distance between colors *doesn't* correspond +to visual/perceptual distance. This means that two pairs of colors which have the +same distance in RGB space can look much further apart. This is fixed by the +CIE-L\*a\*b\*, CIE-L\*u\*v\* and CIE-L\*C\*h° color spaces. +Thus you should only compare colors in any of these space. +(Note that the distance in CIE-L\*a\*b\* and CIE-L\*C\*h° are the same, since it's the same space but in cylindrical coordinates) + +![Color distance comparison](doc/colordist/colordist.png) + +The two colors shown on the top look much more different than the two shown on +the bottom. Still, in RGB space, their distance is the same. +Here is a little example program which shows the distances between the top two +and bottom two colors in RGB, CIE-L\*a\*b\* and CIE-L\*u\*v\* space. You can find it in `doc/colordist/colordist.go`. + +```go +package main + +import "fmt" +import "github.com/lucasb-eyer/go-colorful" + +func main() { + c1a := colorful.Color{150.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} + c1b := colorful.Color{53.0 / 255.0, 10.0 / 255.0, 150.0 / 255.0} + c2a := colorful.Color{10.0 / 255.0, 150.0 / 255.0, 50.0 / 255.0} + c2b := colorful.Color{99.9 / 255.0, 150.0 / 255.0, 10.0 / 255.0} + + fmt.Printf("DistanceRgb: c1: %v\tand c2: %v\n", c1a.DistanceRgb(c1b), c2a.DistanceRgb(c2b)) + fmt.Printf("DistanceLab: c1: %v\tand c2: %v\n", c1a.DistanceLab(c1b), c2a.DistanceLab(c2b)) + fmt.Printf("DistanceLuv: c1: %v\tand c2: %v\n", c1a.DistanceLuv(c1b), c2a.DistanceLuv(c2b)) + fmt.Printf("DistanceCIE76: c1: %v\tand c2: %v\n", c1a.DistanceCIE76(c1b), c2a.DistanceCIE76(c2b)) + fmt.Printf("DistanceCIE94: c1: %v\tand c2: %v\n", c1a.DistanceCIE94(c1b), c2a.DistanceCIE94(c2b)) + fmt.Printf("DistanceCIEDE2000: c1: %v\tand c2: %v\n", c1a.DistanceCIEDE2000(c1b), c2a.DistanceCIEDE2000(c2b)) +} +``` + +Running the above program shows that you should always prefer any of the CIE distances: + +```bash +$ go run colordist.go +DistanceRgb: c1: 0.3803921568627451 and c2: 0.3858713931171159 +DistanceLab: c1: 0.32048458312798056 and c2: 0.24397151758565272 +DistanceLuv: c1: 0.5134369614199698 and c2: 0.2568692839860636 +DistanceCIE76: c1: 0.32048458312798056 and c2: 0.24397151758565272 +DistanceCIE94: c1: 0.19799168128511324 and c2: 0.12207136371167401 +DistanceCIEDE2000: c1: 0.17274551120971166 and c2: 0.10665210031428465 +``` + +It also shows that `DistanceLab` is more formally known as `DistanceCIE76` and +has been superseded by the slightly more accurate, but much more expensive +`DistanceCIE94` and `DistanceCIEDE2000`. + +Note that `AlmostEqualRgb` is provided mainly for (unit-)testing purposes. Use +it only if you really know what you're doing. It will eat your cat. + +### Blending colors +Blending is highly connected to distance, since it basically "walks through" the +colorspace thus, if the colorspace maps distances well, the walk is "smooth". + +Colorful comes with blending functions in RGB, HSV and any of the LAB spaces. +Of course, you'd rather want to use the blending functions of the LAB spaces since +these spaces map distances well but, just in case, here is an example showing +you how the blendings (`#fdffcc` to `#242a42`) are done in the various spaces: + +![Blending colors in different spaces.](doc/colorblend/colorblend.png) + +What you see is that HSV is really bad: it adds some green, which is not present +in the original colors at all! RGB is much better, but it stays light a little +too long. LUV and LAB both hit the right lightness but LAB has a little more +color. HCL works in the same vein as HSV (both cylindrical interpolations) but +it does it right in that there is no green appearing and the lighthness changes +in a linear manner. + +While this seems all good, you need to know one thing: When interpolating in any +of the CIE color spaces, you might get invalid RGB colors! This is important if +the starting and ending colors are user-input or random. An example of where this +happens is when blending between `#eeef61` and `#1e3140`: + +![Invalid RGB colors may crop up when blending in CIE spaces.](doc/colorblend/invalid.png) + +You can test whether a color is a valid RGB color by calling the `IsValid` method +and indeed, calling IsValid will return false for the redish colors on the bottom. +One way to "fix" this is to get a valid color close to the invalid one by calling +`Clamped`, which always returns a nearby valid color. Doing this, we get the +following result, which is satisfactory: + +![Fixing invalid RGB colors by clamping them to the valid range.](doc/colorblend/clamped.png) + +The following is the code creating the above three images; it can be found in `doc/colorblend/colorblend.go` + +```go +package main + +import "fmt" +import "github.com/lucasb-eyer/go-colorful" +import "image" +import "image/draw" +import "image/png" +import "os" + +func main() { + blocks := 10 + blockw := 40 + img := image.NewRGBA(image.Rect(0,0,blocks*blockw,200)) + + c1, _ := colorful.Hex("#fdffcc") + c2, _ := colorful.Hex("#242a42") + + // Use these colors to get invalid RGB in the gradient. + //c1, _ := colorful.Hex("#EEEF61") + //c2, _ := colorful.Hex("#1E3140") + + for i := 0 ; i < blocks ; i++ { + draw.Draw(img, image.Rect(i*blockw, 0,(i+1)*blockw, 40), &image.Uniform{c1.BlendHsv(c2, float64(i)/float64(blocks-1))}, image.ZP, draw.Src) + draw.Draw(img, image.Rect(i*blockw, 40,(i+1)*blockw, 80), &image.Uniform{c1.BlendLuv(c2, float64(i)/float64(blocks-1))}, image.ZP, draw.Src) + draw.Draw(img, image.Rect(i*blockw, 80,(i+1)*blockw,120), &image.Uniform{c1.BlendRgb(c2, float64(i)/float64(blocks-1))}, image.ZP, draw.Src) + draw.Draw(img, image.Rect(i*blockw,120,(i+1)*blockw,160), &image.Uniform{c1.BlendLab(c2, float64(i)/float64(blocks-1))}, image.ZP, draw.Src) + draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1))}, image.ZP, draw.Src) + + // This can be used to "fix" invalid colors in the gradient. + //draw.Draw(img, image.Rect(i*blockw,160,(i+1)*blockw,200), &image.Uniform{c1.BlendHcl(c2, float64(i)/float64(blocks-1)).Clamped()}, image.ZP, draw.Src) + } + + toimg, err := os.Create("colorblend.png") + if err != nil { + fmt.Printf("Error: %v", err) + return + } + defer toimg.Close() + + png.Encode(toimg, img) +} +``` + +#### Generating color gradients +A very common reason to blend colors is creating gradients. There is an example +program in [doc/gradientgen.go](doc/gradientgen/gradientgen.go); it doesn't use any API +which hasn't been used in the previous example code, so I won't bother pasting +the code in here. Just look at that gorgeous gradient it generated in HCL space: + +!["Spectral" colorbrewer gradient in HCL space.](doc/gradientgen/gradientgen.png) + +### Getting random colors +It is sometimes necessary to generate random colors. You could simply do this +on your own by generating colors with random values. By restricting the random +values to a range smaller than [0..1] and using a space such as CIE-H\*C\*l° or +HSV, you can generate both random shades of a color or random colors of a +lightness: + +```go +random_blue := colorful.Hcl(180.0+rand.Float64()*50.0, 0.2+rand.Float64()*0.8, 0.3+rand.Float64()*0.7) +random_dark := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), rand.Float64()*0.4) +random_light := colorful.Hcl(rand.Float64()*360.0, rand.Float64(), 0.6+rand.Float64()*0.4) +``` + +Since getting random "warm" and "happy" colors is quite a common task, there +are some helper functions: + +```go +colorful.WarmColor() +colorful.HappyColor() +colorful.FastWarmColor() +colorful.FastHappyColor() +``` + +The ones prefixed by `Fast` are faster but less coherent since they use the HSV +space as opposed to the regular ones which use CIE-L\*C\*h° space. The +following picture shows the warm colors in the top two rows and happy colors +in the bottom two rows. Within these, the first is the regular one and the +second is the fast one. + +![Warm, fast warm, happy and fast happy random colors, respectively.](doc/colorgens/colorgens.png) + +Don't forget to initialize the random seed! You can see the code used for +generating this picture in `doc/colorgens/colorgens.go`. + +### Getting random palettes +As soon as you need to generate more than one random color, you probably want +them to be distinguishible. Playing against an opponent which has almost the +same blue as I do is not fun. This is where random palettes can help. + +These palettes are generated using an algorithm which ensures that all colors +on the palette are as distinguishible as possible. Again, there is a `Fast` +method which works in HSV and is less perceptually uniform and a non-`Fast` +method which works in CIE spaces. For more theory on `SoftPalette`, check out +[I want hue](http://tools.medialab.sciences-po.fr/iwanthue/theory.php). Yet +again, there is a `Happy` and a `Warm` version, which do what you expect, but +now there is an additional `Soft` version, which is more configurable: you can +give a constraint on the color space in order to get colors within a certain *feel*. + +Let's start with the simple methods first, all they take is the amount of +colors to generate, which could, for example, be the player count. They return +an array of `colorful.Color` objects: + +```go +pal1, err1 := colorful.WarmPalette(10) +pal2 := colorful.FastWarmPalette(10) +pal3, err3 := colorful.HappyPalette(10) +pal4 := colorful.FastHappyPalette(10) +pal5, err5 := colorful.SoftPalette(10) +``` + +Note that the non-fast methods *may* fail if you ask for way too many colors. +Let's move on to the advanced one, namely `SoftPaletteEx`. Besides the color +count, this function takes a `SoftPaletteSettings` object as argument. The +interesting part here is its `CheckColor` member, which is a boolean function +taking three floating points as arguments: `l`, `a` and `b`. This function +should return `true` for colors which lie within the region you want and `false` +otherwise. The other members are `Iteration`, which should be within [5..100] +where higher means slower but more exact palette, and `ManySamples` which you +should set to `true` in case your `CheckColor` constraint rejects a large part +of the color space. + +For example, to create a palette of 10 brownish colors, you'd call it like this: + +```go +func isbrowny(l, a, b float64) bool { + h, c, L := colorful.LabToHcl(l, a, b) + return 10.0 < h && h < 50.0 && 0.1 < c && c < 0.5 && L < 0.5 +} +// Since the above function is pretty restrictive, we set ManySamples to true. +brownies := colorful.SoftPaletteEx(10, colorful.SoftPaletteSettings{isbrowny, 50, true}) +``` + +The following picture shows the palettes generated by all of these methods +(sourcecode in `doc/palettegens/palettegens.go`), in the order they were presented, i.e. +from top to bottom: `Warm`, `FastWarm`, `Happy`, `FastHappy`, `Soft`, +`SoftEx(isbrowny)`. All of them contain some randomness, so YMMV. + +![All example palettes](doc/palettegens/palettegens.png) + +Again, the code used for generating the above image is available as [doc/palettegens/palettegens.go](https://github.com/lucasb-eyer/go-colorful/blob/master/doc/palettegens/palettegens.go). + +### Sorting colors +TODO: Sort using dist fn. + +### Using linear RGB for computations +There are two methods for transforming RGB<->Linear RGB: a fast and almost precise one, +and a slow and precise one. + +```go +r, g, b := colorful.Hex("#FF0000").FastLinearRgb() +``` + +TODO: describe some more. + +### Want to use some other reference point? + +```go +c := colorful.LabWhiteRef(0.507850, 0.040585,-0.370945, colorful.D50) +l, a, b := c.LabWhiteRef(colorful.D50) +``` + +### Reading and writing colors from databases + +The type `HexColor` makes it easy to store colors as strings in a database. It +implements the [https://godoc.org/database/sql#Scanner](database/sql.Scanner) +and [database/sql/driver.Value](https://godoc.org/database/sql/driver.Value) +interfaces which provide automatic type conversion. + +Example: + +```go +var hc HexColor +_, err := db.QueryRow("SELECT '#ff0000';").Scan(&hc) +// hc == HexColor{R: 1, G: 0, B: 0}; err == nil +``` + +FAQ +=== + +### Q: I get all f!@#ed up values! Your library sucks! +A: You probably provided values in the wrong range. For example, RGB values are +expected to reside between 0 and 1, *not* between 0 and 255. Normalize your colors. + +### Q: Lab/Luv/HCl seem broken! Your library sucks! +They look like this: + + + +A: You're likely trying to generate and display colors that can't be represented by RGB, +and thus monitors. When you're trying to convert, say, `HCL(190.0, 1.0, 1.0).RGB255()`, +you're asking for RGB values of `(-2105.254 300.680 286.185)`, which clearly don't exist, +and the `RGB255` function just casts these numbers to `uint8`, creating wrap-around and +what looks like a completely broken gradient. What you want to do, is either use more +reasonable values of colors which actually exist in RGB, or just `Clamp()` the resulting +color to its nearest existing one, living with the consequences: +`HCL(190.0, 1.0, 1.0).Clamp().RGB255()`. It will look something like this: + + + +[Here's an issue going in-depth about this](https://github.com/lucasb-eyer/go-colorful/issues/14), +as well as [my answer](https://github.com/lucasb-eyer/go-colorful/issues/14#issuecomment-324205385), +both with code and pretty pictures. Also note that this was somewhat covered above in the +["Blending colors" section](https://github.com/lucasb-eyer/go-colorful#blending-colors). + +### Q: In a tight loop, conversion to Lab/Luv/HCl/... are slooooow! +A: Yes, they are. +This library aims for correctness, readability, and modularity; it wasn't written with speed in mind. +A large part of the slowness comes from these conversions going through `LinearRgb` which uses powers. +I implemented a fast approximation to `LinearRgb` called `FastLinearRgb` by using Taylor approximations. +The approximation is roughly 5x faster and precise up to roughly 0.5%, +the major caveat being that if the input values are outside the range 0-1, accuracy drops dramatically. +You can use these in your conversions as follows: + +```go +col := // Get your color somehow +l, a, b := XyzToLab(LinearRgbToXyz(col.LinearRgb())) +``` + +If you need faster versions of `Distance*` and `Blend*` that make use of this fast approximation, +feel free to implement them and open a pull-request, I'll happily accept. + +The derivation of these functions can be followed in [this Jupyter notebook](doc/LinearRGB Approximations.ipynb). +Here's the main figure showing the approximation quality: + +![approximation quality](doc/approx-quality.png) + +More speed could be gained by using SIMD instructions in many places. +You can also get more speed for specific conversions by approximating the full conversion function, +but that is outside the scope of this library. +Thanks to [@ZirconiumX](https://github.com/ZirconiumX) for starting this investigation, +see [issue #18](https://github.com/lucasb-eyer/go-colorful/issues/18) for details. + +### Q: Why would `MakeColor` ever fail!? +A: `MakeColor` fails when the alpha channel is zero. In that case, the +conversion is undefined. See [issue 21](https://github.com/lucasb-eyer/go-colorful/issues/21) +as well as the short caveat note in the ["The `color.Color` interface"](README.md#the-colorcolor-interface) +section above. + +Who? +==== + +This library has been developed by Lucas Beyer with contributions from +Bastien Dejean (@baskerville), Phil Kulak (@pkulak) and Christian Muehlhaeuser (@muesli). + +Release Notes +============= + +### Version 1.0 +- API Breaking change in `MakeColor`: instead of `panic`ing when alpha is zero, it now returns a secondary, boolean return value indicating success. See [the color.Color interface](https://github.com/lucasb-eyer/go-colorful#the-colorcolor-interface) section and [this FAQ entry](https://github.com/lucasb-eyer/go-colorful#q-why-would-makecolor-ever-fail) for details. + +### Version 0.9 +- Initial version number after having ignored versioning for a long time :) + +License: MIT +============ +Copyright (c) 2013 Lucas Beyer + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go b/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go new file mode 100644 index 0000000..2e2e49e --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/colorgens.go @@ -0,0 +1,55 @@ +// Various ways to generate single random colors + +package colorful + +import ( + "math/rand" +) + +// Creates a random dark, "warm" color through a restricted HSV space. +func FastWarmColor() Color { + return Hsv( + rand.Float64()*360.0, + 0.5+rand.Float64()*0.3, + 0.3+rand.Float64()*0.3) +} + +// Creates a random dark, "warm" color through restricted HCL space. +// This is slower than FastWarmColor but will likely give you colors which have +// the same "warmness" if you run it many times. +func WarmColor() (c Color) { + for c = randomWarm(); !c.IsValid(); c = randomWarm() { + } + return +} + +func randomWarm() Color { + return Hcl( + rand.Float64()*360.0, + 0.1+rand.Float64()*0.3, + 0.2+rand.Float64()*0.3) +} + +// Creates a random bright, "pimpy" color through a restricted HSV space. +func FastHappyColor() Color { + return Hsv( + rand.Float64()*360.0, + 0.7+rand.Float64()*0.3, + 0.6+rand.Float64()*0.3) +} + +// Creates a random bright, "pimpy" color through restricted HCL space. +// This is slower than FastHappyColor but will likely give you colors which +// have the same "brightness" if you run it many times. +func HappyColor() (c Color) { + for c = randomPimp(); !c.IsValid(); c = randomPimp() { + } + return +} + +func randomPimp() Color { + return Hcl( + rand.Float64()*360.0, + 0.5+rand.Float64()*0.3, + 0.5+rand.Float64()*0.3) +} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/colors.go b/vendor/github.com/lucasb-eyer/go-colorful/colors.go new file mode 100644 index 0000000..29870df --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/colors.go @@ -0,0 +1,903 @@ +// The colorful package provides all kinds of functions for working with colors. +package colorful + +import ( + "fmt" + "image/color" + "math" +) + +// A color is stored internally using sRGB (standard RGB) values in the range 0-1 +type Color struct { + R, G, B float64 +} + +// Implement the Go color.Color interface. +func (col Color) RGBA() (r, g, b, a uint32) { + r = uint32(col.R*65535.0 + 0.5) + g = uint32(col.G*65535.0 + 0.5) + b = uint32(col.B*65535.0 + 0.5) + a = 0xFFFF + return +} + +// Constructs a colorful.Color from something implementing color.Color +func MakeColor(col color.Color) (Color, bool) { + r, g, b, a := col.RGBA() + if a == 0 { + return Color{0, 0, 0}, false + } + + // Since color.Color is alpha pre-multiplied, we need to divide the + // RGB values by alpha again in order to get back the original RGB. + r *= 0xffff + r /= a + g *= 0xffff + g /= a + b *= 0xffff + b /= a + + return Color{float64(r) / 65535.0, float64(g) / 65535.0, float64(b) / 65535.0}, true +} + +// Might come in handy sometimes to reduce boilerplate code. +func (col Color) RGB255() (r, g, b uint8) { + r = uint8(col.R*255.0 + 0.5) + g = uint8(col.G*255.0 + 0.5) + b = uint8(col.B*255.0 + 0.5) + return +} + +// This is the tolerance used when comparing colors using AlmostEqualRgb. +const Delta = 1.0 / 255.0 + +// This is the default reference white point. +var D65 = [3]float64{0.95047, 1.00000, 1.08883} + +// And another one. +var D50 = [3]float64{0.96422, 1.00000, 0.82521} + +// Checks whether the color exists in RGB space, i.e. all values are in [0..1] +func (c Color) IsValid() bool { + return 0.0 <= c.R && c.R <= 1.0 && + 0.0 <= c.G && c.G <= 1.0 && + 0.0 <= c.B && c.B <= 1.0 +} + +func clamp01(v float64) float64 { + return math.Max(0.0, math.Min(v, 1.0)) +} + +// Returns Clamps the color into valid range, clamping each value to [0..1] +// If the color is valid already, this is a no-op. +func (c Color) Clamped() Color { + return Color{clamp01(c.R), clamp01(c.G), clamp01(c.B)} +} + +func sq(v float64) float64 { + return v * v +} + +func cub(v float64) float64 { + return v * v * v +} + +// DistanceRgb computes the distance between two colors in RGB space. +// This is not a good measure! Rather do it in Lab space. +func (c1 Color) DistanceRgb(c2 Color) float64 { + return math.Sqrt(sq(c1.R-c2.R) + sq(c1.G-c2.G) + sq(c1.B-c2.B)) +} + +// Check for equality between colors within the tolerance Delta (1/255). +func (c1 Color) AlmostEqualRgb(c2 Color) bool { + return math.Abs(c1.R-c2.R)+ + math.Abs(c1.G-c2.G)+ + math.Abs(c1.B-c2.B) < 3.0*Delta +} + +// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. +func (c1 Color) BlendRgb(c2 Color, t float64) Color { + return Color{c1.R + t*(c2.R-c1.R), + c1.G + t*(c2.G-c1.G), + c1.B + t*(c2.B-c1.B)} +} + +// Utility used by Hxx color-spaces for interpolating between two angles in [0,360]. +func interp_angle(a0, a1, t float64) float64 { + // Based on the answer here: http://stackoverflow.com/a/14498790/2366315 + // With potential proof that it works here: http://math.stackexchange.com/a/2144499 + delta := math.Mod(math.Mod(a1-a0, 360.0)+540, 360.0) - 180.0 + return math.Mod(a0+t*delta+360.0, 360.0) +} + +/// HSV /// +/////////// +// From http://en.wikipedia.org/wiki/HSL_and_HSV +// Note that h is in [0..360] and s,v in [0..1] + +// Hsv returns the Hue [0..360], Saturation and Value [0..1] of the color. +func (col Color) Hsv() (h, s, v float64) { + min := math.Min(math.Min(col.R, col.G), col.B) + v = math.Max(math.Max(col.R, col.G), col.B) + C := v - min + + s = 0.0 + if v != 0.0 { + s = C / v + } + + h = 0.0 // We use 0 instead of undefined as in wp. + if min != v { + if v == col.R { + h = math.Mod((col.G-col.B)/C, 6.0) + } + if v == col.G { + h = (col.B-col.R)/C + 2.0 + } + if v == col.B { + h = (col.R-col.G)/C + 4.0 + } + h *= 60.0 + if h < 0.0 { + h += 360.0 + } + } + return +} + +// Hsv creates a new Color given a Hue in [0..360], a Saturation and a Value in [0..1] +func Hsv(H, S, V float64) Color { + Hp := H / 60.0 + C := V * S + X := C * (1.0 - math.Abs(math.Mod(Hp, 2.0)-1.0)) + + m := V - C + r, g, b := 0.0, 0.0, 0.0 + + switch { + case 0.0 <= Hp && Hp < 1.0: + r = C + g = X + case 1.0 <= Hp && Hp < 2.0: + r = X + g = C + case 2.0 <= Hp && Hp < 3.0: + g = C + b = X + case 3.0 <= Hp && Hp < 4.0: + g = X + b = C + case 4.0 <= Hp && Hp < 5.0: + r = X + b = C + case 5.0 <= Hp && Hp < 6.0: + r = C + b = X + } + + return Color{m + r, m + g, m + b} +} + +// You don't really want to use this, do you? Go for BlendLab, BlendLuv or BlendHcl. +func (c1 Color) BlendHsv(c2 Color, t float64) Color { + h1, s1, v1 := c1.Hsv() + h2, s2, v2 := c2.Hsv() + + // We know that h are both in [0..360] + return Hsv(interp_angle(h1, h2, t), s1+t*(s2-s1), v1+t*(v2-v1)) +} + +/// HSL /// +/////////// + +// Hsl returns the Hue [0..360], Saturation [0..1], and Luminance (lightness) [0..1] of the color. +func (col Color) Hsl() (h, s, l float64) { + min := math.Min(math.Min(col.R, col.G), col.B) + max := math.Max(math.Max(col.R, col.G), col.B) + + l = (max + min) / 2 + + if min == max { + s = 0 + h = 0 + } else { + if l < 0.5 { + s = (max - min) / (max + min) + } else { + s = (max - min) / (2.0 - max - min) + } + + if max == col.R { + h = (col.G - col.B) / (max - min) + } else if max == col.G { + h = 2.0 + (col.B-col.R)/(max-min) + } else { + h = 4.0 + (col.R-col.G)/(max-min) + } + + h *= 60 + + if h < 0 { + h += 360 + } + } + + return +} + +// Hsl creates a new Color given a Hue in [0..360], a Saturation [0..1], and a Luminance (lightness) in [0..1] +func Hsl(h, s, l float64) Color { + if s == 0 { + return Color{l, l, l} + } + + var r, g, b float64 + var t1 float64 + var t2 float64 + var tr float64 + var tg float64 + var tb float64 + + if l < 0.5 { + t1 = l * (1.0 + s) + } else { + t1 = l + s - l*s + } + + t2 = 2*l - t1 + h /= 360 + tr = h + 1.0/3.0 + tg = h + tb = h - 1.0/3.0 + + if tr < 0 { + tr++ + } + if tr > 1 { + tr-- + } + if tg < 0 { + tg++ + } + if tg > 1 { + tg-- + } + if tb < 0 { + tb++ + } + if tb > 1 { + tb-- + } + + // Red + if 6*tr < 1 { + r = t2 + (t1-t2)*6*tr + } else if 2*tr < 1 { + r = t1 + } else if 3*tr < 2 { + r = t2 + (t1-t2)*(2.0/3.0-tr)*6 + } else { + r = t2 + } + + // Green + if 6*tg < 1 { + g = t2 + (t1-t2)*6*tg + } else if 2*tg < 1 { + g = t1 + } else if 3*tg < 2 { + g = t2 + (t1-t2)*(2.0/3.0-tg)*6 + } else { + g = t2 + } + + // Blue + if 6*tb < 1 { + b = t2 + (t1-t2)*6*tb + } else if 2*tb < 1 { + b = t1 + } else if 3*tb < 2 { + b = t2 + (t1-t2)*(2.0/3.0-tb)*6 + } else { + b = t2 + } + + return Color{r, g, b} +} + +/// Hex /// +/////////// + +// Hex returns the hex "html" representation of the color, as in #ff0080. +func (col Color) Hex() string { + // Add 0.5 for rounding + return fmt.Sprintf("#%02x%02x%02x", uint8(col.R*255.0+0.5), uint8(col.G*255.0+0.5), uint8(col.B*255.0+0.5)) +} + +// Hex parses a "html" hex color-string, either in the 3 "#f0c" or 6 "#ff1034" digits form. +func Hex(scol string) (Color, error) { + format := "#%02x%02x%02x" + factor := 1.0 / 255.0 + if len(scol) == 4 { + format = "#%1x%1x%1x" + factor = 1.0 / 15.0 + } + + var r, g, b uint8 + n, err := fmt.Sscanf(scol, format, &r, &g, &b) + if err != nil { + return Color{}, err + } + if n != 3 { + return Color{}, fmt.Errorf("color: %v is not a hex-color", scol) + } + + return Color{float64(r) * factor, float64(g) * factor, float64(b) * factor}, nil +} + +/// Linear /// +////////////// +// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ +// http://www.brucelindbloom.com/Eqn_RGB_to_XYZ.html + +func linearize(v float64) float64 { + if v <= 0.04045 { + return v / 12.92 + } + return math.Pow((v+0.055)/1.055, 2.4) +} + +// LinearRgb converts the color into the linear RGB space (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). +func (col Color) LinearRgb() (r, g, b float64) { + r = linearize(col.R) + g = linearize(col.G) + b = linearize(col.B) + return +} + +// A much faster and still quite precise linearization using a 6th-order Taylor approximation. +// See the accompanying Jupyter notebook for derivation of the constants. +func linearize_fast(v float64) float64 { + v1 := v - 0.5 + v2 := v1 * v1 + v3 := v2 * v1 + v4 := v2 * v2 + //v5 := v3*v2 + return -0.248750514614486 + 0.925583310193438*v + 1.16740237321695*v2 + 0.280457026598666*v3 - 0.0757991963780179*v4 //+ 0.0437040411548932*v5 +} + +// FastLinearRgb is much faster than and almost as accurate as LinearRgb. +// BUT it is important to NOTE that they only produce good results for valid colors r,g,b in [0,1]. +func (col Color) FastLinearRgb() (r, g, b float64) { + r = linearize_fast(col.R) + g = linearize_fast(col.G) + b = linearize_fast(col.B) + return +} + +func delinearize(v float64) float64 { + if v <= 0.0031308 { + return 12.92 * v + } + return 1.055*math.Pow(v, 1.0/2.4) - 0.055 +} + +// LinearRgb creates an sRGB color out of the given linear RGB color (see http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/). +func LinearRgb(r, g, b float64) Color { + return Color{delinearize(r), delinearize(g), delinearize(b)} +} + +func delinearize_fast(v float64) float64 { + // This function (fractional root) is much harder to linearize, so we need to split. + if v > 0.2 { + v1 := v - 0.6 + v2 := v1 * v1 + v3 := v2 * v1 + v4 := v2 * v2 + v5 := v3 * v2 + return 0.442430344268235 + 0.592178981271708*v - 0.287864782562636*v2 + 0.253214392068985*v3 - 0.272557158129811*v4 + 0.325554383321718*v5 + } else if v > 0.03 { + v1 := v - 0.115 + v2 := v1 * v1 + v3 := v2 * v1 + v4 := v2 * v2 + v5 := v3 * v2 + return 0.194915592891669 + 1.55227076330229*v - 3.93691860257828*v2 + 18.0679839248761*v3 - 101.468750302746*v4 + 632.341487393927*v5 + } else { + v1 := v - 0.015 + v2 := v1 * v1 + v3 := v2 * v1 + v4 := v2 * v2 + v5 := v3 * v2 + // You can clearly see from the involved constants that the low-end is highly nonlinear. + return 0.0519565234928877 + 5.09316778537561*v - 99.0338180489702*v2 + 3484.52322764895*v3 - 150028.083412663*v4 + 7168008.42971613*v5 + } +} + +// FastLinearRgb is much faster than and almost as accurate as LinearRgb. +// BUT it is important to NOTE that they only produce good results for valid inputs r,g,b in [0,1]. +func FastLinearRgb(r, g, b float64) Color { + return Color{delinearize_fast(r), delinearize_fast(g), delinearize_fast(b)} +} + +// XyzToLinearRgb converts from CIE XYZ-space to Linear RGB space. +func XyzToLinearRgb(x, y, z float64) (r, g, b float64) { + r = 3.2404542*x - 1.5371385*y - 0.4985314*z + g = -0.9692660*x + 1.8760108*y + 0.0415560*z + b = 0.0556434*x - 0.2040259*y + 1.0572252*z + return +} + +func LinearRgbToXyz(r, g, b float64) (x, y, z float64) { + x = 0.4124564*r + 0.3575761*g + 0.1804375*b + y = 0.2126729*r + 0.7151522*g + 0.0721750*b + z = 0.0193339*r + 0.1191920*g + 0.9503041*b + return +} + +/// XYZ /// +/////////// +// http://www.sjbrown.co.uk/2004/05/14/gamma-correct-rendering/ + +func (col Color) Xyz() (x, y, z float64) { + return LinearRgbToXyz(col.LinearRgb()) +} + +func Xyz(x, y, z float64) Color { + return LinearRgb(XyzToLinearRgb(x, y, z)) +} + +/// xyY /// +/////////// +// http://www.brucelindbloom.com/Eqn_XYZ_to_xyY.html + +// Well, the name is bad, since it's xyY but Golang needs me to start with a +// capital letter to make the method public. +func XyzToXyy(X, Y, Z float64) (x, y, Yout float64) { + return XyzToXyyWhiteRef(X, Y, Z, D65) +} + +func XyzToXyyWhiteRef(X, Y, Z float64, wref [3]float64) (x, y, Yout float64) { + Yout = Y + N := X + Y + Z + if math.Abs(N) < 1e-14 { + // When we have black, Bruce Lindbloom recommends to use + // the reference white's chromacity for x and y. + x = wref[0] / (wref[0] + wref[1] + wref[2]) + y = wref[1] / (wref[0] + wref[1] + wref[2]) + } else { + x = X / N + y = Y / N + } + return +} + +func XyyToXyz(x, y, Y float64) (X, Yout, Z float64) { + Yout = Y + + if -1e-14 < y && y < 1e-14 { + X = 0.0 + Z = 0.0 + } else { + X = Y / y * x + Z = Y / y * (1.0 - x - y) + } + + return +} + +// Converts the given color to CIE xyY space using D65 as reference white. +// (Note that the reference white is only used for black input.) +// x, y and Y are in [0..1] +func (col Color) Xyy() (x, y, Y float64) { + return XyzToXyy(col.Xyz()) +} + +// Converts the given color to CIE xyY space, taking into account +// a given reference white. (i.e. the monitor's white) +// (Note that the reference white is only used for black input.) +// x, y and Y are in [0..1] +func (col Color) XyyWhiteRef(wref [3]float64) (x, y, Y float64) { + X, Y2, Z := col.Xyz() + return XyzToXyyWhiteRef(X, Y2, Z, wref) +} + +// Generates a color by using data given in CIE xyY space. +// x, y and Y are in [0..1] +func Xyy(x, y, Y float64) Color { + return Xyz(XyyToXyz(x, y, Y)) +} + +/// L*a*b* /// +////////////// +// http://en.wikipedia.org/wiki/Lab_color_space#CIELAB-CIEXYZ_conversions +// For L*a*b*, we need to L*a*b*<->XYZ->RGB and the first one is device dependent. + +func lab_f(t float64) float64 { + if t > 6.0/29.0*6.0/29.0*6.0/29.0 { + return math.Cbrt(t) + } + return t/3.0*29.0/6.0*29.0/6.0 + 4.0/29.0 +} + +func XyzToLab(x, y, z float64) (l, a, b float64) { + // Use D65 white as reference point by default. + // http://www.fredmiranda.com/forum/topic/1035332 + // http://en.wikipedia.org/wiki/Standard_illuminant + return XyzToLabWhiteRef(x, y, z, D65) +} + +func XyzToLabWhiteRef(x, y, z float64, wref [3]float64) (l, a, b float64) { + fy := lab_f(y / wref[1]) + l = 1.16*fy - 0.16 + a = 5.0 * (lab_f(x/wref[0]) - fy) + b = 2.0 * (fy - lab_f(z/wref[2])) + return +} + +func lab_finv(t float64) float64 { + if t > 6.0/29.0 { + return t * t * t + } + return 3.0 * 6.0 / 29.0 * 6.0 / 29.0 * (t - 4.0/29.0) +} + +func LabToXyz(l, a, b float64) (x, y, z float64) { + // D65 white (see above). + return LabToXyzWhiteRef(l, a, b, D65) +} + +func LabToXyzWhiteRef(l, a, b float64, wref [3]float64) (x, y, z float64) { + l2 := (l + 0.16) / 1.16 + x = wref[0] * lab_finv(l2+a/5.0) + y = wref[1] * lab_finv(l2) + z = wref[2] * lab_finv(l2-b/2.0) + return +} + +// Converts the given color to CIE L*a*b* space using D65 as reference white. +func (col Color) Lab() (l, a, b float64) { + return XyzToLab(col.Xyz()) +} + +// Converts the given color to CIE L*a*b* space, taking into account +// a given reference white. (i.e. the monitor's white) +func (col Color) LabWhiteRef(wref [3]float64) (l, a, b float64) { + x, y, z := col.Xyz() + return XyzToLabWhiteRef(x, y, z, wref) +} + +// Generates a color by using data given in CIE L*a*b* space using D65 as reference white. +// WARNING: many combinations of `l`, `a`, and `b` values do not have corresponding +// valid RGB values, check the FAQ in the README if you're unsure. +func Lab(l, a, b float64) Color { + return Xyz(LabToXyz(l, a, b)) +} + +// Generates a color by using data given in CIE L*a*b* space, taking +// into account a given reference white. (i.e. the monitor's white) +func LabWhiteRef(l, a, b float64, wref [3]float64) Color { + return Xyz(LabToXyzWhiteRef(l, a, b, wref)) +} + +// DistanceLab is a good measure of visual similarity between two colors! +// A result of 0 would mean identical colors, while a result of 1 or higher +// means the colors differ a lot. +func (c1 Color) DistanceLab(c2 Color) float64 { + l1, a1, b1 := c1.Lab() + l2, a2, b2 := c2.Lab() + return math.Sqrt(sq(l1-l2) + sq(a1-a2) + sq(b1-b2)) +} + +// That's actually the same, but I don't want to break code. +func (c1 Color) DistanceCIE76(c2 Color) float64 { + return c1.DistanceLab(c2) +} + +// Uses the CIE94 formula to calculate color distance. More accurate than +// DistanceLab, but also more work. +func (cl Color) DistanceCIE94(cr Color) float64 { + l1, a1, b1 := cl.Lab() + l2, a2, b2 := cr.Lab() + + // NOTE: Since all those formulas expect L,a,b values 100x larger than we + // have them in this library, we either need to adjust all constants + // in the formula, or convert the ranges of L,a,b before, and then + // scale the distances down again. The latter is less error-prone. + l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 + l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 + + kl := 1.0 // 2.0 for textiles + kc := 1.0 + kh := 1.0 + k1 := 0.045 // 0.048 for textiles + k2 := 0.015 // 0.014 for textiles. + + deltaL := l1 - l2 + c1 := math.Sqrt(sq(a1) + sq(b1)) + c2 := math.Sqrt(sq(a2) + sq(b2)) + deltaCab := c1 - c2 + + // Not taking Sqrt here for stability, and it's unnecessary. + deltaHab2 := sq(a1-a2) + sq(b1-b2) - sq(deltaCab) + sl := 1.0 + sc := 1.0 + k1*c1 + sh := 1.0 + k2*c1 + + vL2 := sq(deltaL / (kl * sl)) + vC2 := sq(deltaCab / (kc * sc)) + vH2 := deltaHab2 / sq(kh*sh) + + return math.Sqrt(vL2+vC2+vH2) * 0.01 // See above. +} + +// DistanceCIEDE2000 uses the Delta E 2000 formula to calculate color +// distance. It is more expensive but more accurate than both DistanceLab +// and DistanceCIE94. +func (cl Color) DistanceCIEDE2000(cr Color) float64 { + return cl.DistanceCIEDE2000klch(cr, 1.0, 1.0, 1.0) +} + +// DistanceCIEDE2000klch uses the Delta E 2000 formula with custom values +// for the weighting factors kL, kC, and kH. +func (cl Color) DistanceCIEDE2000klch(cr Color, kl, kc, kh float64) float64 { + l1, a1, b1 := cl.Lab() + l2, a2, b2 := cr.Lab() + + // As with CIE94, we scale up the ranges of L,a,b beforehand and scale + // them down again afterwards. + l1, a1, b1 = l1*100.0, a1*100.0, b1*100.0 + l2, a2, b2 = l2*100.0, a2*100.0, b2*100.0 + + cab1 := math.Sqrt(sq(a1) + sq(b1)) + cab2 := math.Sqrt(sq(a2) + sq(b2)) + cabmean := (cab1 + cab2) / 2 + + g := 0.5 * (1 - math.Sqrt(math.Pow(cabmean, 7)/(math.Pow(cabmean, 7)+math.Pow(25, 7)))) + ap1 := (1 + g) * a1 + ap2 := (1 + g) * a2 + cp1 := math.Sqrt(sq(ap1) + sq(b1)) + cp2 := math.Sqrt(sq(ap2) + sq(b2)) + + hp1 := 0.0 + if b1 != ap1 || ap1 != 0 { + hp1 = math.Atan2(b1, ap1) + if hp1 < 0 { + hp1 += math.Pi * 2 + } + hp1 *= 180 / math.Pi + } + hp2 := 0.0 + if b2 != ap2 || ap2 != 0 { + hp2 = math.Atan2(b2, ap2) + if hp2 < 0 { + hp2 += math.Pi * 2 + } + hp2 *= 180 / math.Pi + } + + deltaLp := l2 - l1 + deltaCp := cp2 - cp1 + dhp := 0.0 + cpProduct := cp1 * cp2 + if cpProduct != 0 { + dhp = hp2 - hp1 + if dhp > 180 { + dhp -= 360 + } else if dhp < -180 { + dhp += 360 + } + } + deltaHp := 2 * math.Sqrt(cpProduct) * math.Sin(dhp/2*math.Pi/180) + + lpmean := (l1 + l2) / 2 + cpmean := (cp1 + cp2) / 2 + hpmean := hp1 + hp2 + if cpProduct != 0 { + hpmean /= 2 + if math.Abs(hp1-hp2) > 180 { + if hp1+hp2 < 360 { + hpmean += 180 + } else { + hpmean -= 180 + } + } + } + + t := 1 - 0.17*math.Cos((hpmean-30)*math.Pi/180) + 0.24*math.Cos(2*hpmean*math.Pi/180) + 0.32*math.Cos((3*hpmean+6)*math.Pi/180) - 0.2*math.Cos((4*hpmean-63)*math.Pi/180) + deltaTheta := 30 * math.Exp(-sq((hpmean-275)/25)) + rc := 2 * math.Sqrt(math.Pow(cpmean, 7)/(math.Pow(cpmean, 7)+math.Pow(25, 7))) + sl := 1 + (0.015*sq(lpmean-50))/math.Sqrt(20+sq(lpmean-50)) + sc := 1 + 0.045*cpmean + sh := 1 + 0.015*cpmean*t + rt := -math.Sin(2*deltaTheta*math.Pi/180) * rc + + return math.Sqrt(sq(deltaLp/(kl*sl))+sq(deltaCp/(kc*sc))+sq(deltaHp/(kh*sh))+rt*(deltaCp/(kc*sc))*(deltaHp/(kh*sh))) * 0.01 +} + +// BlendLab blends two colors in the L*a*b* color-space, which should result in a smoother blend. +// t == 0 results in c1, t == 1 results in c2 +func (c1 Color) BlendLab(c2 Color, t float64) Color { + l1, a1, b1 := c1.Lab() + l2, a2, b2 := c2.Lab() + return Lab(l1+t*(l2-l1), + a1+t*(a2-a1), + b1+t*(b2-b1)) +} + +/// L*u*v* /// +////////////// +// http://en.wikipedia.org/wiki/CIELUV#XYZ_.E2.86.92_CIELUV_and_CIELUV_.E2.86.92_XYZ_conversions +// For L*u*v*, we need to L*u*v*<->XYZ<->RGB and the first one is device dependent. + +func XyzToLuv(x, y, z float64) (l, a, b float64) { + // Use D65 white as reference point by default. + // http://www.fredmiranda.com/forum/topic/1035332 + // http://en.wikipedia.org/wiki/Standard_illuminant + return XyzToLuvWhiteRef(x, y, z, D65) +} + +func XyzToLuvWhiteRef(x, y, z float64, wref [3]float64) (l, u, v float64) { + if y/wref[1] <= 6.0/29.0*6.0/29.0*6.0/29.0 { + l = y / wref[1] * 29.0 / 3.0 * 29.0 / 3.0 * 29.0 / 3.0 + } else { + l = 1.16*math.Cbrt(y/wref[1]) - 0.16 + } + ubis, vbis := xyz_to_uv(x, y, z) + un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) + u = 13.0 * l * (ubis - un) + v = 13.0 * l * (vbis - vn) + return +} + +// For this part, we do as R's graphics.hcl does, not as wikipedia does. +// Or is it the same? +func xyz_to_uv(x, y, z float64) (u, v float64) { + denom := x + 15.0*y + 3.0*z + if denom == 0.0 { + u, v = 0.0, 0.0 + } else { + u = 4.0 * x / denom + v = 9.0 * y / denom + } + return +} + +func LuvToXyz(l, u, v float64) (x, y, z float64) { + // D65 white (see above). + return LuvToXyzWhiteRef(l, u, v, D65) +} + +func LuvToXyzWhiteRef(l, u, v float64, wref [3]float64) (x, y, z float64) { + //y = wref[1] * lab_finv((l + 0.16) / 1.16) + if l <= 0.08 { + y = wref[1] * l * 100.0 * 3.0 / 29.0 * 3.0 / 29.0 * 3.0 / 29.0 + } else { + y = wref[1] * cub((l+0.16)/1.16) + } + un, vn := xyz_to_uv(wref[0], wref[1], wref[2]) + if l != 0.0 { + ubis := u/(13.0*l) + un + vbis := v/(13.0*l) + vn + x = y * 9.0 * ubis / (4.0 * vbis) + z = y * (12.0 - 3.0*ubis - 20.0*vbis) / (4.0 * vbis) + } else { + x, y = 0.0, 0.0 + } + return +} + +// Converts the given color to CIE L*u*v* space using D65 as reference white. +// L* is in [0..1] and both u* and v* are in about [-1..1] +func (col Color) Luv() (l, u, v float64) { + return XyzToLuv(col.Xyz()) +} + +// Converts the given color to CIE L*u*v* space, taking into account +// a given reference white. (i.e. the monitor's white) +// L* is in [0..1] and both u* and v* are in about [-1..1] +func (col Color) LuvWhiteRef(wref [3]float64) (l, u, v float64) { + x, y, z := col.Xyz() + return XyzToLuvWhiteRef(x, y, z, wref) +} + +// Generates a color by using data given in CIE L*u*v* space using D65 as reference white. +// L* is in [0..1] and both u* and v* are in about [-1..1] +// WARNING: many combinations of `l`, `a`, and `b` values do not have corresponding +// valid RGB values, check the FAQ in the README if you're unsure. +func Luv(l, u, v float64) Color { + return Xyz(LuvToXyz(l, u, v)) +} + +// Generates a color by using data given in CIE L*u*v* space, taking +// into account a given reference white. (i.e. the monitor's white) +// L* is in [0..1] and both u* and v* are in about [-1..1] +func LuvWhiteRef(l, u, v float64, wref [3]float64) Color { + return Xyz(LuvToXyzWhiteRef(l, u, v, wref)) +} + +// DistanceLuv is a good measure of visual similarity between two colors! +// A result of 0 would mean identical colors, while a result of 1 or higher +// means the colors differ a lot. +func (c1 Color) DistanceLuv(c2 Color) float64 { + l1, u1, v1 := c1.Luv() + l2, u2, v2 := c2.Luv() + return math.Sqrt(sq(l1-l2) + sq(u1-u2) + sq(v1-v2)) +} + +// BlendLuv blends two colors in the CIE-L*u*v* color-space, which should result in a smoother blend. +// t == 0 results in c1, t == 1 results in c2 +func (c1 Color) BlendLuv(c2 Color, t float64) Color { + l1, u1, v1 := c1.Luv() + l2, u2, v2 := c2.Luv() + return Luv(l1+t*(l2-l1), + u1+t*(u2-u1), + v1+t*(v2-v1)) +} + +/// HCL /// +/////////// +// HCL is nothing else than L*a*b* in cylindrical coordinates! +// (this was wrong on English wikipedia, I fixed it, let's hope the fix stays.) +// But it is widely popular since it is a "correct HSV" +// http://www.hunterlab.com/appnotes/an09_96a.pdf + +// Converts the given color to HCL space using D65 as reference white. +// H values are in [0..360], C and L values are in [0..1] although C can overshoot 1.0 +func (col Color) Hcl() (h, c, l float64) { + return col.HclWhiteRef(D65) +} + +func LabToHcl(L, a, b float64) (h, c, l float64) { + // Oops, floating point workaround necessary if a ~= b and both are very small (i.e. almost zero). + if math.Abs(b-a) > 1e-4 && math.Abs(a) > 1e-4 { + h = math.Mod(57.29577951308232087721*math.Atan2(b, a)+360.0, 360.0) // Rad2Deg + } else { + h = 0.0 + } + c = math.Sqrt(sq(a) + sq(b)) + l = L + return +} + +// Converts the given color to HCL space, taking into account +// a given reference white. (i.e. the monitor's white) +// H values are in [0..360], C and L values are in [0..1] +func (col Color) HclWhiteRef(wref [3]float64) (h, c, l float64) { + L, a, b := col.LabWhiteRef(wref) + return LabToHcl(L, a, b) +} + +// Generates a color by using data given in HCL space using D65 as reference white. +// H values are in [0..360], C and L values are in [0..1] +// WARNING: many combinations of `l`, `a`, and `b` values do not have corresponding +// valid RGB values, check the FAQ in the README if you're unsure. +func Hcl(h, c, l float64) Color { + return HclWhiteRef(h, c, l, D65) +} + +func HclToLab(h, c, l float64) (L, a, b float64) { + H := 0.01745329251994329576 * h // Deg2Rad + a = c * math.Cos(H) + b = c * math.Sin(H) + L = l + return +} + +// Generates a color by using data given in HCL space, taking +// into account a given reference white. (i.e. the monitor's white) +// H values are in [0..360], C and L values are in [0..1] +func HclWhiteRef(h, c, l float64, wref [3]float64) Color { + L, a, b := HclToLab(h, c, l) + return LabWhiteRef(L, a, b, wref) +} + +// BlendHcl blends two colors in the CIE-L*C*h° color-space, which should result in a smoother blend. +// t == 0 results in c1, t == 1 results in c2 +func (col1 Color) BlendHcl(col2 Color, t float64) Color { + h1, c1, l1 := col1.Hcl() + h2, c2, l2 := col2.Hcl() + + // We know that h are both in [0..360] + return Hcl(interp_angle(h1, h2, t), c1+t*(c2-c1), l1+t*(l2-l1)) +} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/go.mod b/vendor/github.com/lucasb-eyer/go-colorful/go.mod new file mode 100644 index 0000000..35925f3 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/go.mod @@ -0,0 +1,3 @@ +module github.com/lucasb-eyer/go-colorful + +go 1.12 diff --git a/vendor/github.com/lucasb-eyer/go-colorful/go.sum b/vendor/github.com/lucasb-eyer/go-colorful/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go new file mode 100644 index 0000000..bb66dfa --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/happy_palettegen.go @@ -0,0 +1,25 @@ +package colorful + +import ( + "math/rand" +) + +// Uses the HSV color space to generate colors with similar S,V but distributed +// evenly along their Hue. This is fast but not always pretty. +// If you've got time to spare, use Lab (the non-fast below). +func FastHappyPalette(colorsCount int) (colors []Color) { + colors = make([]Color, colorsCount) + + for i := 0; i < colorsCount; i++ { + colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.8+rand.Float64()*0.2, 0.65+rand.Float64()*0.2) + } + return +} + +func HappyPalette(colorsCount int) ([]Color, error) { + pimpy := func(l, a, b float64) bool { + _, c, _ := LabToHcl(l, a, b) + return 0.3 <= c && 0.4 <= l && l <= 0.8 + } + return SoftPaletteEx(colorsCount, SoftPaletteSettings{pimpy, 50, true}) +} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go new file mode 100644 index 0000000..86a5ed9 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go @@ -0,0 +1,37 @@ +package colorful + +import ( + "database/sql/driver" + "fmt" + "reflect" +) + +// A HexColor is a Color stored as a hex string "#rrggbb". It implements the +// database/sql.Scanner and database/sql/driver.Value interfaces. +type HexColor Color + +type errUnsupportedType struct { + got interface{} + want reflect.Type +} + +func (hc *HexColor) Scan(value interface{}) error { + s, ok := value.(string) + if !ok { + return errUnsupportedType{got: reflect.TypeOf(value), want: reflect.TypeOf("")} + } + c, err := Hex(s) + if err != nil { + return err + } + *hc = HexColor(c) + return nil +} + +func (hc *HexColor) Value() (driver.Value, error) { + return Color(*hc).Hex(), nil +} + +func (e errUnsupportedType) Error() string { + return fmt.Sprintf("unsupported type: got %v, want a %s", e.got, e.want) +} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go new file mode 100644 index 0000000..0154ac9 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/soft_palettegen.go @@ -0,0 +1,185 @@ +// Largely inspired by the descriptions in http://lab.medialab.sciences-po.fr/iwanthue/ +// but written from scratch. + +package colorful + +import ( + "fmt" + "math" + "math/rand" +) + +// The algorithm works in L*a*b* color space and converts to RGB in the end. +// L* in [0..1], a* and b* in [-1..1] +type lab_t struct { + L, A, B float64 +} + +type SoftPaletteSettings struct { + // A function which can be used to restrict the allowed color-space. + CheckColor func(l, a, b float64) bool + + // The higher, the better quality but the slower. Usually two figures. + Iterations int + + // Use up to 160000 or 8000 samples of the L*a*b* space (and thus calls to CheckColor). + // Set this to true only if your CheckColor shapes the Lab space weirdly. + ManySamples bool +} + +// Yeah, windows-stype Foo, FooEx, screw you golang... +// Uses K-means to cluster the color-space and return the means of the clusters +// as a new palette of distinctive colors. Falls back to K-medoid if the mean +// happens to fall outside of the color-space, which can only happen if you +// specify a CheckColor function. +func SoftPaletteEx(colorsCount int, settings SoftPaletteSettings) ([]Color, error) { + + // Checks whether it's a valid RGB and also fulfills the potentially provided constraint. + check := func(col lab_t) bool { + c := Lab(col.L, col.A, col.B) + return c.IsValid() && (settings.CheckColor == nil || settings.CheckColor(col.L, col.A, col.B)) + } + + // Sample the color space. These will be the points k-means is run on. + dl := 0.05 + dab := 0.1 + if settings.ManySamples { + dl = 0.01 + dab = 0.05 + } + + samples := make([]lab_t, 0, int(1.0/dl*2.0/dab*2.0/dab)) + for l := 0.0; l <= 1.0; l += dl { + for a := -1.0; a <= 1.0; a += dab { + for b := -1.0; b <= 1.0; b += dab { + if check(lab_t{l, a, b}) { + samples = append(samples, lab_t{l, a, b}) + } + } + } + } + + // That would cause some infinite loops down there... + if len(samples) < colorsCount { + return nil, fmt.Errorf("palettegen: more colors requested (%v) than samples available (%v). Your requested color count may be wrong, you might want to use many samples or your constraint function makes the valid color space too small.", colorsCount, len(samples)) + } else if len(samples) == colorsCount { + return labs2cols(samples), nil // Oops? + } + + // We take the initial means out of the samples, so they are in fact medoids. + // This helps us avoid infinite loops or arbitrary cutoffs with too restrictive constraints. + means := make([]lab_t, colorsCount) + for i := 0; i < colorsCount; i++ { + for means[i] = samples[rand.Intn(len(samples))]; in(means, i, means[i]); means[i] = samples[rand.Intn(len(samples))] { + } + } + + clusters := make([]int, len(samples)) + samples_used := make([]bool, len(samples)) + + // The actual k-means/medoid iterations + for i := 0; i < settings.Iterations; i++ { + // Reassing the samples to clusters, i.e. to their closest mean. + // By the way, also check if any sample is used as a medoid and if so, mark that. + for isample, sample := range samples { + samples_used[isample] = false + mindist := math.Inf(+1) + for imean, mean := range means { + dist := lab_dist(sample, mean) + if dist < mindist { + mindist = dist + clusters[isample] = imean + } + + // Mark samples which are used as a medoid. + if lab_eq(sample, mean) { + samples_used[isample] = true + } + } + } + + // Compute new means according to the samples. + for imean := range means { + // The new mean is the average of all samples belonging to it.. + nsamples := 0 + newmean := lab_t{0.0, 0.0, 0.0} + for isample, sample := range samples { + if clusters[isample] == imean { + nsamples++ + newmean.L += sample.L + newmean.A += sample.A + newmean.B += sample.B + } + } + if nsamples > 0 { + newmean.L /= float64(nsamples) + newmean.A /= float64(nsamples) + newmean.B /= float64(nsamples) + } else { + // That mean doesn't have any samples? Get a new mean from the sample list! + var inewmean int + for inewmean = rand.Intn(len(samples_used)); samples_used[inewmean]; inewmean = rand.Intn(len(samples_used)) { + } + newmean = samples[inewmean] + samples_used[inewmean] = true + } + + // But now we still need to check whether the new mean is an allowed color. + if nsamples > 0 && check(newmean) { + // It does, life's good (TM) + means[imean] = newmean + } else { + // New mean isn't an allowed color or doesn't have any samples! + // Switch to medoid mode and pick the closest (unused) sample. + // This should always find something thanks to len(samples) >= colorsCount + mindist := math.Inf(+1) + for isample, sample := range samples { + if !samples_used[isample] { + dist := lab_dist(sample, newmean) + if dist < mindist { + mindist = dist + newmean = sample + } + } + } + } + } + } + return labs2cols(means), nil +} + +// A wrapper which uses common parameters. +func SoftPalette(colorsCount int) ([]Color, error) { + return SoftPaletteEx(colorsCount, SoftPaletteSettings{nil, 50, false}) +} + +func in(haystack []lab_t, upto int, needle lab_t) bool { + for i := 0; i < upto && i < len(haystack); i++ { + if haystack[i] == needle { + return true + } + } + return false +} + +const LAB_DELTA = 1e-6 + +func lab_eq(lab1, lab2 lab_t) bool { + return math.Abs(lab1.L-lab2.L) < LAB_DELTA && + math.Abs(lab1.A-lab2.A) < LAB_DELTA && + math.Abs(lab1.B-lab2.B) < LAB_DELTA +} + +// That's faster than using colorful's DistanceLab since we would have to +// convert back and forth for that. Here is no conversion. +func lab_dist(lab1, lab2 lab_t) float64 { + return math.Sqrt(sq(lab1.L-lab2.L) + sq(lab1.A-lab2.A) + sq(lab1.B-lab2.B)) +} + +func labs2cols(labs []lab_t) (cols []Color) { + cols = make([]Color, len(labs)) + for k, v := range labs { + cols[k] = Lab(v.L, v.A, v.B) + } + return cols +} diff --git a/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go b/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go new file mode 100644 index 0000000..00f42a5 --- /dev/null +++ b/vendor/github.com/lucasb-eyer/go-colorful/warm_palettegen.go @@ -0,0 +1,25 @@ +package colorful + +import ( + "math/rand" +) + +// Uses the HSV color space to generate colors with similar S,V but distributed +// evenly along their Hue. This is fast but not always pretty. +// If you've got time to spare, use Lab (the non-fast below). +func FastWarmPalette(colorsCount int) (colors []Color) { + colors = make([]Color, colorsCount) + + for i := 0; i < colorsCount; i++ { + colors[i] = Hsv(float64(i)*(360.0/float64(colorsCount)), 0.55+rand.Float64()*0.2, 0.35+rand.Float64()*0.2) + } + return +} + +func WarmPalette(colorsCount int) ([]Color, error) { + warmy := func(l, a, b float64) bool { + _, c, _ := LabToHcl(l, a, b) + return 0.1 <= c && c <= 0.4 && 0.2 <= l && l <= 0.5 + } + return SoftPaletteEx(colorsCount, SoftPaletteSettings{warmy, 50, true}) +} diff --git a/vendor/github.com/mattn/go-runewidth/.travis.yml b/vendor/github.com/mattn/go-runewidth/.travis.yml new file mode 100644 index 0000000..6a21813 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/.travis.yml @@ -0,0 +1,16 @@ +language: go +sudo: false +go: + - 1.13.x + - tip + +before_install: + - go get -t -v ./... + +script: + - go generate + - git diff --cached --exit-code + - ./go.test.sh + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/mattn/go-runewidth/LICENSE b/vendor/github.com/mattn/go-runewidth/LICENSE new file mode 100644 index 0000000..91b5cef --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Yasuhiro Matsumoto + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/mattn/go-runewidth/README.md b/vendor/github.com/mattn/go-runewidth/README.md new file mode 100644 index 0000000..aa56ab9 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/README.md @@ -0,0 +1,27 @@ +go-runewidth +============ + +[![Build Status](https://travis-ci.org/mattn/go-runewidth.png?branch=master)](https://travis-ci.org/mattn/go-runewidth) +[![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth) +[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth) +[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth) + +Provides functions to get fixed width of the character or string. + +Usage +----- + +```go +runewidth.StringWidth("つのだ☆HIRO") == 12 +``` + + +Author +------ + +Yasuhiro Matsumoto + +License +------- + +under the MIT License: http://mattn.mit-license.org/2013 diff --git a/vendor/github.com/mattn/go-runewidth/go.mod b/vendor/github.com/mattn/go-runewidth/go.mod new file mode 100644 index 0000000..fa7f4d8 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/go.mod @@ -0,0 +1,3 @@ +module github.com/mattn/go-runewidth + +go 1.9 diff --git a/vendor/github.com/mattn/go-runewidth/go.test.sh b/vendor/github.com/mattn/go-runewidth/go.test.sh new file mode 100644 index 0000000..012162b --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-runewidth/runewidth.go b/vendor/github.com/mattn/go-runewidth/runewidth.go new file mode 100644 index 0000000..19f8e04 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth.go @@ -0,0 +1,257 @@ +package runewidth + +import ( + "os" +) + +//go:generate go run script/generate.go + +var ( + // EastAsianWidth will be set true if the current locale is CJK + EastAsianWidth bool + + // ZeroWidthJoiner is flag to set to use UTR#51 ZWJ + ZeroWidthJoiner bool + + // DefaultCondition is a condition in current locale + DefaultCondition = &Condition{} +) + +func init() { + handleEnv() +} + +func handleEnv() { + env := os.Getenv("RUNEWIDTH_EASTASIAN") + if env == "" { + EastAsianWidth = IsEastAsian() + } else { + EastAsianWidth = env == "1" + } + // update DefaultCondition + DefaultCondition.EastAsianWidth = EastAsianWidth + DefaultCondition.ZeroWidthJoiner = ZeroWidthJoiner +} + +type interval struct { + first rune + last rune +} + +type table []interval + +func inTables(r rune, ts ...table) bool { + for _, t := range ts { + if inTable(r, t) { + return true + } + } + return false +} + +func inTable(r rune, t table) bool { + if r < t[0].first { + return false + } + + bot := 0 + top := len(t) - 1 + for top >= bot { + mid := (bot + top) >> 1 + + switch { + case t[mid].last < r: + bot = mid + 1 + case t[mid].first > r: + top = mid - 1 + default: + return true + } + } + + return false +} + +var private = table{ + {0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD}, +} + +var nonprint = table{ + {0x0000, 0x001F}, {0x007F, 0x009F}, {0x00AD, 0x00AD}, + {0x070F, 0x070F}, {0x180B, 0x180E}, {0x200B, 0x200F}, + {0x2028, 0x202E}, {0x206A, 0x206F}, {0xD800, 0xDFFF}, + {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB}, {0xFFFE, 0xFFFF}, +} + +// Condition have flag EastAsianWidth whether the current locale is CJK or not. +type Condition struct { + EastAsianWidth bool + ZeroWidthJoiner bool +} + +// NewCondition return new instance of Condition which is current locale. +func NewCondition() *Condition { + return &Condition{ + EastAsianWidth: EastAsianWidth, + ZeroWidthJoiner: ZeroWidthJoiner, + } +} + +// RuneWidth returns the number of cells in r. +// See http://www.unicode.org/reports/tr11/ +func (c *Condition) RuneWidth(r rune) int { + switch { + case r < 0 || r > 0x10FFFF || inTables(r, nonprint, combining, notassigned): + return 0 + case (c.EastAsianWidth && IsAmbiguousWidth(r)) || inTables(r, doublewidth): + return 2 + default: + return 1 + } +} + +func (c *Condition) stringWidth(s string) (width int) { + for _, r := range []rune(s) { + width += c.RuneWidth(r) + } + return width +} + +func (c *Condition) stringWidthZeroJoiner(s string) (width int) { + r1, r2 := rune(0), rune(0) + for _, r := range []rune(s) { + if r == 0xFE0E || r == 0xFE0F { + continue + } + w := c.RuneWidth(r) + if r2 == 0x200D && inTables(r, emoji) && inTables(r1, emoji) { + if width < w { + width = w + } + } else { + width += w + } + r1, r2 = r2, r + } + return width +} + +// StringWidth return width as you can see +func (c *Condition) StringWidth(s string) (width int) { + if c.ZeroWidthJoiner { + return c.stringWidthZeroJoiner(s) + } + return c.stringWidth(s) +} + +// Truncate return string truncated with w cells +func (c *Condition) Truncate(s string, w int, tail string) string { + if c.StringWidth(s) <= w { + return s + } + r := []rune(s) + tw := c.StringWidth(tail) + w -= tw + width := 0 + i := 0 + for ; i < len(r); i++ { + cw := c.RuneWidth(r[i]) + if width+cw > w { + break + } + width += cw + } + return string(r[0:i]) + tail +} + +// Wrap return string wrapped with w cells +func (c *Condition) Wrap(s string, w int) string { + width := 0 + out := "" + for _, r := range []rune(s) { + cw := RuneWidth(r) + if r == '\n' { + out += string(r) + width = 0 + continue + } else if width+cw > w { + out += "\n" + width = 0 + out += string(r) + width += cw + continue + } + out += string(r) + width += cw + } + return out +} + +// FillLeft return string filled in left by spaces in w cells +func (c *Condition) FillLeft(s string, w int) string { + width := c.StringWidth(s) + count := w - width + if count > 0 { + b := make([]byte, count) + for i := range b { + b[i] = ' ' + } + return string(b) + s + } + return s +} + +// FillRight return string filled in left by spaces in w cells +func (c *Condition) FillRight(s string, w int) string { + width := c.StringWidth(s) + count := w - width + if count > 0 { + b := make([]byte, count) + for i := range b { + b[i] = ' ' + } + return s + string(b) + } + return s +} + +// RuneWidth returns the number of cells in r. +// See http://www.unicode.org/reports/tr11/ +func RuneWidth(r rune) int { + return DefaultCondition.RuneWidth(r) +} + +// IsAmbiguousWidth returns whether is ambiguous width or not. +func IsAmbiguousWidth(r rune) bool { + return inTables(r, private, ambiguous) +} + +// IsNeutralWidth returns whether is neutral width or not. +func IsNeutralWidth(r rune) bool { + return inTable(r, neutral) +} + +// StringWidth return width as you can see +func StringWidth(s string) (width int) { + return DefaultCondition.StringWidth(s) +} + +// Truncate return string truncated with w cells +func Truncate(s string, w int, tail string) string { + return DefaultCondition.Truncate(s, w, tail) +} + +// Wrap return string wrapped with w cells +func Wrap(s string, w int) string { + return DefaultCondition.Wrap(s, w) +} + +// FillLeft return string filled in left by spaces in w cells +func FillLeft(s string, w int) string { + return DefaultCondition.FillLeft(s, w) +} + +// FillRight return string filled in left by spaces in w cells +func FillRight(s string, w int) string { + return DefaultCondition.FillRight(s, w) +} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go b/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go new file mode 100644 index 0000000..7d99f6e --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth_appengine.go @@ -0,0 +1,8 @@ +// +build appengine + +package runewidth + +// IsEastAsian return true if the current locale is CJK +func IsEastAsian() bool { + return false +} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_js.go b/vendor/github.com/mattn/go-runewidth/runewidth_js.go new file mode 100644 index 0000000..c5fdf40 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth_js.go @@ -0,0 +1,9 @@ +// +build js +// +build !appengine + +package runewidth + +func IsEastAsian() bool { + // TODO: Implement this for the web. Detect east asian in a compatible way, and return true. + return false +} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_posix.go b/vendor/github.com/mattn/go-runewidth/runewidth_posix.go new file mode 100644 index 0000000..480ad74 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth_posix.go @@ -0,0 +1,82 @@ +// +build !windows +// +build !js +// +build !appengine + +package runewidth + +import ( + "os" + "regexp" + "strings" +) + +var reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\.(.+)`) + +var mblenTable = map[string]int{ + "utf-8": 6, + "utf8": 6, + "jis": 8, + "eucjp": 3, + "euckr": 2, + "euccn": 2, + "sjis": 2, + "cp932": 2, + "cp51932": 2, + "cp936": 2, + "cp949": 2, + "cp950": 2, + "big5": 2, + "gbk": 2, + "gb2312": 2, +} + +func isEastAsian(locale string) bool { + charset := strings.ToLower(locale) + r := reLoc.FindStringSubmatch(locale) + if len(r) == 2 { + charset = strings.ToLower(r[1]) + } + + if strings.HasSuffix(charset, "@cjk_narrow") { + return false + } + + for pos, b := range []byte(charset) { + if b == '@' { + charset = charset[:pos] + break + } + } + max := 1 + if m, ok := mblenTable[charset]; ok { + max = m + } + if max > 1 && (charset[0] != 'u' || + strings.HasPrefix(locale, "ja") || + strings.HasPrefix(locale, "ko") || + strings.HasPrefix(locale, "zh")) { + return true + } + return false +} + +// IsEastAsian return true if the current locale is CJK +func IsEastAsian() bool { + locale := os.Getenv("LC_ALL") + if locale == "" { + locale = os.Getenv("LC_CTYPE") + } + if locale == "" { + locale = os.Getenv("LANG") + } + + // ignore C locale + if locale == "POSIX" || locale == "C" { + return false + } + if len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') { + return false + } + + return isEastAsian(locale) +} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_table.go b/vendor/github.com/mattn/go-runewidth/runewidth_table.go new file mode 100644 index 0000000..b27d77d --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth_table.go @@ -0,0 +1,437 @@ +// Code generated by script/generate.go. DO NOT EDIT. + +package runewidth + +var combining = table{ + {0x0300, 0x036F}, {0x0483, 0x0489}, {0x07EB, 0x07F3}, + {0x0C00, 0x0C00}, {0x0C04, 0x0C04}, {0x0D00, 0x0D01}, + {0x135D, 0x135F}, {0x1A7F, 0x1A7F}, {0x1AB0, 0x1AC0}, + {0x1B6B, 0x1B73}, {0x1DC0, 0x1DF9}, {0x1DFB, 0x1DFF}, + {0x20D0, 0x20F0}, {0x2CEF, 0x2CF1}, {0x2DE0, 0x2DFF}, + {0x3099, 0x309A}, {0xA66F, 0xA672}, {0xA674, 0xA67D}, + {0xA69E, 0xA69F}, {0xA6F0, 0xA6F1}, {0xA8E0, 0xA8F1}, + {0xFE20, 0xFE2F}, {0x101FD, 0x101FD}, {0x10376, 0x1037A}, + {0x10EAB, 0x10EAC}, {0x10F46, 0x10F50}, {0x11300, 0x11301}, + {0x1133B, 0x1133C}, {0x11366, 0x1136C}, {0x11370, 0x11374}, + {0x16AF0, 0x16AF4}, {0x1D165, 0x1D169}, {0x1D16D, 0x1D172}, + {0x1D17B, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD}, + {0x1D242, 0x1D244}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018}, + {0x1E01B, 0x1E021}, {0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, + {0x1E8D0, 0x1E8D6}, +} + +var doublewidth = table{ + {0x1100, 0x115F}, {0x231A, 0x231B}, {0x2329, 0x232A}, + {0x23E9, 0x23EC}, {0x23F0, 0x23F0}, {0x23F3, 0x23F3}, + {0x25FD, 0x25FE}, {0x2614, 0x2615}, {0x2648, 0x2653}, + {0x267F, 0x267F}, {0x2693, 0x2693}, {0x26A1, 0x26A1}, + {0x26AA, 0x26AB}, {0x26BD, 0x26BE}, {0x26C4, 0x26C5}, + {0x26CE, 0x26CE}, {0x26D4, 0x26D4}, {0x26EA, 0x26EA}, + {0x26F2, 0x26F3}, {0x26F5, 0x26F5}, {0x26FA, 0x26FA}, + {0x26FD, 0x26FD}, {0x2705, 0x2705}, {0x270A, 0x270B}, + {0x2728, 0x2728}, {0x274C, 0x274C}, {0x274E, 0x274E}, + {0x2753, 0x2755}, {0x2757, 0x2757}, {0x2795, 0x2797}, + {0x27B0, 0x27B0}, {0x27BF, 0x27BF}, {0x2B1B, 0x2B1C}, + {0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x2E80, 0x2E99}, + {0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x2FFB}, + {0x3000, 0x303E}, {0x3041, 0x3096}, {0x3099, 0x30FF}, + {0x3105, 0x312F}, {0x3131, 0x318E}, {0x3190, 0x31E3}, + {0x31F0, 0x321E}, {0x3220, 0x3247}, {0x3250, 0x4DBF}, + {0x4E00, 0xA48C}, {0xA490, 0xA4C6}, {0xA960, 0xA97C}, + {0xAC00, 0xD7A3}, {0xF900, 0xFAFF}, {0xFE10, 0xFE19}, + {0xFE30, 0xFE52}, {0xFE54, 0xFE66}, {0xFE68, 0xFE6B}, + {0xFF01, 0xFF60}, {0xFFE0, 0xFFE6}, {0x16FE0, 0x16FE4}, + {0x16FF0, 0x16FF1}, {0x17000, 0x187F7}, {0x18800, 0x18CD5}, + {0x18D00, 0x18D08}, {0x1B000, 0x1B11E}, {0x1B150, 0x1B152}, + {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, {0x1F004, 0x1F004}, + {0x1F0CF, 0x1F0CF}, {0x1F18E, 0x1F18E}, {0x1F191, 0x1F19A}, + {0x1F200, 0x1F202}, {0x1F210, 0x1F23B}, {0x1F240, 0x1F248}, + {0x1F250, 0x1F251}, {0x1F260, 0x1F265}, {0x1F300, 0x1F320}, + {0x1F32D, 0x1F335}, {0x1F337, 0x1F37C}, {0x1F37E, 0x1F393}, + {0x1F3A0, 0x1F3CA}, {0x1F3CF, 0x1F3D3}, {0x1F3E0, 0x1F3F0}, + {0x1F3F4, 0x1F3F4}, {0x1F3F8, 0x1F43E}, {0x1F440, 0x1F440}, + {0x1F442, 0x1F4FC}, {0x1F4FF, 0x1F53D}, {0x1F54B, 0x1F54E}, + {0x1F550, 0x1F567}, {0x1F57A, 0x1F57A}, {0x1F595, 0x1F596}, + {0x1F5A4, 0x1F5A4}, {0x1F5FB, 0x1F64F}, {0x1F680, 0x1F6C5}, + {0x1F6CC, 0x1F6CC}, {0x1F6D0, 0x1F6D2}, {0x1F6D5, 0x1F6D7}, + {0x1F6EB, 0x1F6EC}, {0x1F6F4, 0x1F6FC}, {0x1F7E0, 0x1F7EB}, + {0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1F978}, + {0x1F97A, 0x1F9CB}, {0x1F9CD, 0x1F9FF}, {0x1FA70, 0x1FA74}, + {0x1FA78, 0x1FA7A}, {0x1FA80, 0x1FA86}, {0x1FA90, 0x1FAA8}, + {0x1FAB0, 0x1FAB6}, {0x1FAC0, 0x1FAC2}, {0x1FAD0, 0x1FAD6}, + {0x20000, 0x2FFFD}, {0x30000, 0x3FFFD}, +} + +var ambiguous = table{ + {0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8}, + {0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4}, + {0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6}, + {0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1}, + {0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED}, + {0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA}, + {0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101}, + {0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B}, + {0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133}, + {0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144}, + {0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153}, + {0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE}, + {0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4}, + {0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA}, + {0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261}, + {0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB}, + {0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB}, + {0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x036F}, + {0x0391, 0x03A1}, {0x03A3, 0x03A9}, {0x03B1, 0x03C1}, + {0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F}, + {0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016}, + {0x2018, 0x2019}, {0x201C, 0x201D}, {0x2020, 0x2022}, + {0x2024, 0x2027}, {0x2030, 0x2030}, {0x2032, 0x2033}, + {0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E}, + {0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084}, + {0x20AC, 0x20AC}, {0x2103, 0x2103}, {0x2105, 0x2105}, + {0x2109, 0x2109}, {0x2113, 0x2113}, {0x2116, 0x2116}, + {0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B}, + {0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B}, + {0x2170, 0x2179}, {0x2189, 0x2189}, {0x2190, 0x2199}, + {0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4}, + {0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203}, + {0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F}, + {0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A}, + {0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225}, + {0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237}, + {0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C}, + {0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267}, + {0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283}, + {0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299}, + {0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312}, + {0x2460, 0x24E9}, {0x24EB, 0x254B}, {0x2550, 0x2573}, + {0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1}, + {0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7}, + {0x25BC, 0x25BD}, {0x25C0, 0x25C1}, {0x25C6, 0x25C8}, + {0x25CB, 0x25CB}, {0x25CE, 0x25D1}, {0x25E2, 0x25E5}, + {0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609}, + {0x260E, 0x260F}, {0x261C, 0x261C}, {0x261E, 0x261E}, + {0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661}, + {0x2663, 0x2665}, {0x2667, 0x266A}, {0x266C, 0x266D}, + {0x266F, 0x266F}, {0x269E, 0x269F}, {0x26BF, 0x26BF}, + {0x26C6, 0x26CD}, {0x26CF, 0x26D3}, {0x26D5, 0x26E1}, + {0x26E3, 0x26E3}, {0x26E8, 0x26E9}, {0x26EB, 0x26F1}, + {0x26F4, 0x26F4}, {0x26F6, 0x26F9}, {0x26FB, 0x26FC}, + {0x26FE, 0x26FF}, {0x273D, 0x273D}, {0x2776, 0x277F}, + {0x2B56, 0x2B59}, {0x3248, 0x324F}, {0xE000, 0xF8FF}, + {0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, {0x1F100, 0x1F10A}, + {0x1F110, 0x1F12D}, {0x1F130, 0x1F169}, {0x1F170, 0x1F18D}, + {0x1F18F, 0x1F190}, {0x1F19B, 0x1F1AC}, {0xE0100, 0xE01EF}, + {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD}, +} +var notassigned = table{ + {0x27E6, 0x27ED}, {0x2985, 0x2986}, +} + +var neutral = table{ + {0x0000, 0x001F}, {0x007F, 0x00A0}, {0x00A9, 0x00A9}, + {0x00AB, 0x00AB}, {0x00B5, 0x00B5}, {0x00BB, 0x00BB}, + {0x00C0, 0x00C5}, {0x00C7, 0x00CF}, {0x00D1, 0x00D6}, + {0x00D9, 0x00DD}, {0x00E2, 0x00E5}, {0x00E7, 0x00E7}, + {0x00EB, 0x00EB}, {0x00EE, 0x00EF}, {0x00F1, 0x00F1}, + {0x00F4, 0x00F6}, {0x00FB, 0x00FB}, {0x00FD, 0x00FD}, + {0x00FF, 0x0100}, {0x0102, 0x0110}, {0x0112, 0x0112}, + {0x0114, 0x011A}, {0x011C, 0x0125}, {0x0128, 0x012A}, + {0x012C, 0x0130}, {0x0134, 0x0137}, {0x0139, 0x013E}, + {0x0143, 0x0143}, {0x0145, 0x0147}, {0x014C, 0x014C}, + {0x014E, 0x0151}, {0x0154, 0x0165}, {0x0168, 0x016A}, + {0x016C, 0x01CD}, {0x01CF, 0x01CF}, {0x01D1, 0x01D1}, + {0x01D3, 0x01D3}, {0x01D5, 0x01D5}, {0x01D7, 0x01D7}, + {0x01D9, 0x01D9}, {0x01DB, 0x01DB}, {0x01DD, 0x0250}, + {0x0252, 0x0260}, {0x0262, 0x02C3}, {0x02C5, 0x02C6}, + {0x02C8, 0x02C8}, {0x02CC, 0x02CC}, {0x02CE, 0x02CF}, + {0x02D1, 0x02D7}, {0x02DC, 0x02DC}, {0x02DE, 0x02DE}, + {0x02E0, 0x02FF}, {0x0370, 0x0377}, {0x037A, 0x037F}, + {0x0384, 0x038A}, {0x038C, 0x038C}, {0x038E, 0x0390}, + {0x03AA, 0x03B0}, {0x03C2, 0x03C2}, {0x03CA, 0x0400}, + {0x0402, 0x040F}, {0x0450, 0x0450}, {0x0452, 0x052F}, + {0x0531, 0x0556}, {0x0559, 0x058A}, {0x058D, 0x058F}, + {0x0591, 0x05C7}, {0x05D0, 0x05EA}, {0x05EF, 0x05F4}, + {0x0600, 0x061C}, {0x061E, 0x070D}, {0x070F, 0x074A}, + {0x074D, 0x07B1}, {0x07C0, 0x07FA}, {0x07FD, 0x082D}, + {0x0830, 0x083E}, {0x0840, 0x085B}, {0x085E, 0x085E}, + {0x0860, 0x086A}, {0x08A0, 0x08B4}, {0x08B6, 0x08C7}, + {0x08D3, 0x0983}, {0x0985, 0x098C}, {0x098F, 0x0990}, + {0x0993, 0x09A8}, {0x09AA, 0x09B0}, {0x09B2, 0x09B2}, + {0x09B6, 0x09B9}, {0x09BC, 0x09C4}, {0x09C7, 0x09C8}, + {0x09CB, 0x09CE}, {0x09D7, 0x09D7}, {0x09DC, 0x09DD}, + {0x09DF, 0x09E3}, {0x09E6, 0x09FE}, {0x0A01, 0x0A03}, + {0x0A05, 0x0A0A}, {0x0A0F, 0x0A10}, {0x0A13, 0x0A28}, + {0x0A2A, 0x0A30}, {0x0A32, 0x0A33}, {0x0A35, 0x0A36}, + {0x0A38, 0x0A39}, {0x0A3C, 0x0A3C}, {0x0A3E, 0x0A42}, + {0x0A47, 0x0A48}, {0x0A4B, 0x0A4D}, {0x0A51, 0x0A51}, + {0x0A59, 0x0A5C}, {0x0A5E, 0x0A5E}, {0x0A66, 0x0A76}, + {0x0A81, 0x0A83}, {0x0A85, 0x0A8D}, {0x0A8F, 0x0A91}, + {0x0A93, 0x0AA8}, {0x0AAA, 0x0AB0}, {0x0AB2, 0x0AB3}, + {0x0AB5, 0x0AB9}, {0x0ABC, 0x0AC5}, {0x0AC7, 0x0AC9}, + {0x0ACB, 0x0ACD}, {0x0AD0, 0x0AD0}, {0x0AE0, 0x0AE3}, + {0x0AE6, 0x0AF1}, {0x0AF9, 0x0AFF}, {0x0B01, 0x0B03}, + {0x0B05, 0x0B0C}, {0x0B0F, 0x0B10}, {0x0B13, 0x0B28}, + {0x0B2A, 0x0B30}, {0x0B32, 0x0B33}, {0x0B35, 0x0B39}, + {0x0B3C, 0x0B44}, {0x0B47, 0x0B48}, {0x0B4B, 0x0B4D}, + {0x0B55, 0x0B57}, {0x0B5C, 0x0B5D}, {0x0B5F, 0x0B63}, + {0x0B66, 0x0B77}, {0x0B82, 0x0B83}, {0x0B85, 0x0B8A}, + {0x0B8E, 0x0B90}, {0x0B92, 0x0B95}, {0x0B99, 0x0B9A}, + {0x0B9C, 0x0B9C}, {0x0B9E, 0x0B9F}, {0x0BA3, 0x0BA4}, + {0x0BA8, 0x0BAA}, {0x0BAE, 0x0BB9}, {0x0BBE, 0x0BC2}, + {0x0BC6, 0x0BC8}, {0x0BCA, 0x0BCD}, {0x0BD0, 0x0BD0}, + {0x0BD7, 0x0BD7}, {0x0BE6, 0x0BFA}, {0x0C00, 0x0C0C}, + {0x0C0E, 0x0C10}, {0x0C12, 0x0C28}, {0x0C2A, 0x0C39}, + {0x0C3D, 0x0C44}, {0x0C46, 0x0C48}, {0x0C4A, 0x0C4D}, + {0x0C55, 0x0C56}, {0x0C58, 0x0C5A}, {0x0C60, 0x0C63}, + {0x0C66, 0x0C6F}, {0x0C77, 0x0C8C}, {0x0C8E, 0x0C90}, + {0x0C92, 0x0CA8}, {0x0CAA, 0x0CB3}, {0x0CB5, 0x0CB9}, + {0x0CBC, 0x0CC4}, {0x0CC6, 0x0CC8}, {0x0CCA, 0x0CCD}, + {0x0CD5, 0x0CD6}, {0x0CDE, 0x0CDE}, {0x0CE0, 0x0CE3}, + {0x0CE6, 0x0CEF}, {0x0CF1, 0x0CF2}, {0x0D00, 0x0D0C}, + {0x0D0E, 0x0D10}, {0x0D12, 0x0D44}, {0x0D46, 0x0D48}, + {0x0D4A, 0x0D4F}, {0x0D54, 0x0D63}, {0x0D66, 0x0D7F}, + {0x0D81, 0x0D83}, {0x0D85, 0x0D96}, {0x0D9A, 0x0DB1}, + {0x0DB3, 0x0DBB}, {0x0DBD, 0x0DBD}, {0x0DC0, 0x0DC6}, + {0x0DCA, 0x0DCA}, {0x0DCF, 0x0DD4}, {0x0DD6, 0x0DD6}, + {0x0DD8, 0x0DDF}, {0x0DE6, 0x0DEF}, {0x0DF2, 0x0DF4}, + {0x0E01, 0x0E3A}, {0x0E3F, 0x0E5B}, {0x0E81, 0x0E82}, + {0x0E84, 0x0E84}, {0x0E86, 0x0E8A}, {0x0E8C, 0x0EA3}, + {0x0EA5, 0x0EA5}, {0x0EA7, 0x0EBD}, {0x0EC0, 0x0EC4}, + {0x0EC6, 0x0EC6}, {0x0EC8, 0x0ECD}, {0x0ED0, 0x0ED9}, + {0x0EDC, 0x0EDF}, {0x0F00, 0x0F47}, {0x0F49, 0x0F6C}, + {0x0F71, 0x0F97}, {0x0F99, 0x0FBC}, {0x0FBE, 0x0FCC}, + {0x0FCE, 0x0FDA}, {0x1000, 0x10C5}, {0x10C7, 0x10C7}, + {0x10CD, 0x10CD}, {0x10D0, 0x10FF}, {0x1160, 0x1248}, + {0x124A, 0x124D}, {0x1250, 0x1256}, {0x1258, 0x1258}, + {0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D}, + {0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE}, + {0x12C0, 0x12C0}, {0x12C2, 0x12C5}, {0x12C8, 0x12D6}, + {0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A}, + {0x135D, 0x137C}, {0x1380, 0x1399}, {0x13A0, 0x13F5}, + {0x13F8, 0x13FD}, {0x1400, 0x169C}, {0x16A0, 0x16F8}, + {0x1700, 0x170C}, {0x170E, 0x1714}, {0x1720, 0x1736}, + {0x1740, 0x1753}, {0x1760, 0x176C}, {0x176E, 0x1770}, + {0x1772, 0x1773}, {0x1780, 0x17DD}, {0x17E0, 0x17E9}, + {0x17F0, 0x17F9}, {0x1800, 0x180E}, {0x1810, 0x1819}, + {0x1820, 0x1878}, {0x1880, 0x18AA}, {0x18B0, 0x18F5}, + {0x1900, 0x191E}, {0x1920, 0x192B}, {0x1930, 0x193B}, + {0x1940, 0x1940}, {0x1944, 0x196D}, {0x1970, 0x1974}, + {0x1980, 0x19AB}, {0x19B0, 0x19C9}, {0x19D0, 0x19DA}, + {0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E}, {0x1A60, 0x1A7C}, + {0x1A7F, 0x1A89}, {0x1A90, 0x1A99}, {0x1AA0, 0x1AAD}, + {0x1AB0, 0x1AC0}, {0x1B00, 0x1B4B}, {0x1B50, 0x1B7C}, + {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37}, {0x1C3B, 0x1C49}, + {0x1C4D, 0x1C88}, {0x1C90, 0x1CBA}, {0x1CBD, 0x1CC7}, + {0x1CD0, 0x1CFA}, {0x1D00, 0x1DF9}, {0x1DFB, 0x1F15}, + {0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, {0x1F48, 0x1F4D}, + {0x1F50, 0x1F57}, {0x1F59, 0x1F59}, {0x1F5B, 0x1F5B}, + {0x1F5D, 0x1F5D}, {0x1F5F, 0x1F7D}, {0x1F80, 0x1FB4}, + {0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3}, {0x1FD6, 0x1FDB}, + {0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE}, + {0x2000, 0x200F}, {0x2011, 0x2012}, {0x2017, 0x2017}, + {0x201A, 0x201B}, {0x201E, 0x201F}, {0x2023, 0x2023}, + {0x2028, 0x202F}, {0x2031, 0x2031}, {0x2034, 0x2034}, + {0x2036, 0x203A}, {0x203C, 0x203D}, {0x203F, 0x2064}, + {0x2066, 0x2071}, {0x2075, 0x207E}, {0x2080, 0x2080}, + {0x2085, 0x208E}, {0x2090, 0x209C}, {0x20A0, 0x20A8}, + {0x20AA, 0x20AB}, {0x20AD, 0x20BF}, {0x20D0, 0x20F0}, + {0x2100, 0x2102}, {0x2104, 0x2104}, {0x2106, 0x2108}, + {0x210A, 0x2112}, {0x2114, 0x2115}, {0x2117, 0x2120}, + {0x2123, 0x2125}, {0x2127, 0x212A}, {0x212C, 0x2152}, + {0x2155, 0x215A}, {0x215F, 0x215F}, {0x216C, 0x216F}, + {0x217A, 0x2188}, {0x218A, 0x218B}, {0x219A, 0x21B7}, + {0x21BA, 0x21D1}, {0x21D3, 0x21D3}, {0x21D5, 0x21E6}, + {0x21E8, 0x21FF}, {0x2201, 0x2201}, {0x2204, 0x2206}, + {0x2209, 0x220A}, {0x220C, 0x220E}, {0x2210, 0x2210}, + {0x2212, 0x2214}, {0x2216, 0x2219}, {0x221B, 0x221C}, + {0x2221, 0x2222}, {0x2224, 0x2224}, {0x2226, 0x2226}, + {0x222D, 0x222D}, {0x222F, 0x2233}, {0x2238, 0x223B}, + {0x223E, 0x2247}, {0x2249, 0x224B}, {0x224D, 0x2251}, + {0x2253, 0x225F}, {0x2262, 0x2263}, {0x2268, 0x2269}, + {0x226C, 0x226D}, {0x2270, 0x2281}, {0x2284, 0x2285}, + {0x2288, 0x2294}, {0x2296, 0x2298}, {0x229A, 0x22A4}, + {0x22A6, 0x22BE}, {0x22C0, 0x2311}, {0x2313, 0x2319}, + {0x231C, 0x2328}, {0x232B, 0x23E8}, {0x23ED, 0x23EF}, + {0x23F1, 0x23F2}, {0x23F4, 0x2426}, {0x2440, 0x244A}, + {0x24EA, 0x24EA}, {0x254C, 0x254F}, {0x2574, 0x257F}, + {0x2590, 0x2591}, {0x2596, 0x259F}, {0x25A2, 0x25A2}, + {0x25AA, 0x25B1}, {0x25B4, 0x25B5}, {0x25B8, 0x25BB}, + {0x25BE, 0x25BF}, {0x25C2, 0x25C5}, {0x25C9, 0x25CA}, + {0x25CC, 0x25CD}, {0x25D2, 0x25E1}, {0x25E6, 0x25EE}, + {0x25F0, 0x25FC}, {0x25FF, 0x2604}, {0x2607, 0x2608}, + {0x260A, 0x260D}, {0x2610, 0x2613}, {0x2616, 0x261B}, + {0x261D, 0x261D}, {0x261F, 0x263F}, {0x2641, 0x2641}, + {0x2643, 0x2647}, {0x2654, 0x265F}, {0x2662, 0x2662}, + {0x2666, 0x2666}, {0x266B, 0x266B}, {0x266E, 0x266E}, + {0x2670, 0x267E}, {0x2680, 0x2692}, {0x2694, 0x269D}, + {0x26A0, 0x26A0}, {0x26A2, 0x26A9}, {0x26AC, 0x26BC}, + {0x26C0, 0x26C3}, {0x26E2, 0x26E2}, {0x26E4, 0x26E7}, + {0x2700, 0x2704}, {0x2706, 0x2709}, {0x270C, 0x2727}, + {0x2729, 0x273C}, {0x273E, 0x274B}, {0x274D, 0x274D}, + {0x274F, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x2775}, + {0x2780, 0x2794}, {0x2798, 0x27AF}, {0x27B1, 0x27BE}, + {0x27C0, 0x27E5}, {0x27EE, 0x2984}, {0x2987, 0x2B1A}, + {0x2B1D, 0x2B4F}, {0x2B51, 0x2B54}, {0x2B5A, 0x2B73}, + {0x2B76, 0x2B95}, {0x2B97, 0x2C2E}, {0x2C30, 0x2C5E}, + {0x2C60, 0x2CF3}, {0x2CF9, 0x2D25}, {0x2D27, 0x2D27}, + {0x2D2D, 0x2D2D}, {0x2D30, 0x2D67}, {0x2D6F, 0x2D70}, + {0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6}, {0x2DA8, 0x2DAE}, + {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE}, {0x2DC0, 0x2DC6}, + {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE}, + {0x2DE0, 0x2E52}, {0x303F, 0x303F}, {0x4DC0, 0x4DFF}, + {0xA4D0, 0xA62B}, {0xA640, 0xA6F7}, {0xA700, 0xA7BF}, + {0xA7C2, 0xA7CA}, {0xA7F5, 0xA82C}, {0xA830, 0xA839}, + {0xA840, 0xA877}, {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9}, + {0xA8E0, 0xA953}, {0xA95F, 0xA95F}, {0xA980, 0xA9CD}, + {0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36}, + {0xAA40, 0xAA4D}, {0xAA50, 0xAA59}, {0xAA5C, 0xAAC2}, + {0xAADB, 0xAAF6}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E}, + {0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E}, + {0xAB30, 0xAB6B}, {0xAB70, 0xABED}, {0xABF0, 0xABF9}, + {0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB}, {0xD800, 0xDFFF}, + {0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFB1D, 0xFB36}, + {0xFB38, 0xFB3C}, {0xFB3E, 0xFB3E}, {0xFB40, 0xFB41}, + {0xFB43, 0xFB44}, {0xFB46, 0xFBC1}, {0xFBD3, 0xFD3F}, + {0xFD50, 0xFD8F}, {0xFD92, 0xFDC7}, {0xFDF0, 0xFDFD}, + {0xFE20, 0xFE2F}, {0xFE70, 0xFE74}, {0xFE76, 0xFEFC}, + {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFC}, {0x10000, 0x1000B}, + {0x1000D, 0x10026}, {0x10028, 0x1003A}, {0x1003C, 0x1003D}, + {0x1003F, 0x1004D}, {0x10050, 0x1005D}, {0x10080, 0x100FA}, + {0x10100, 0x10102}, {0x10107, 0x10133}, {0x10137, 0x1018E}, + {0x10190, 0x1019C}, {0x101A0, 0x101A0}, {0x101D0, 0x101FD}, + {0x10280, 0x1029C}, {0x102A0, 0x102D0}, {0x102E0, 0x102FB}, + {0x10300, 0x10323}, {0x1032D, 0x1034A}, {0x10350, 0x1037A}, + {0x10380, 0x1039D}, {0x1039F, 0x103C3}, {0x103C8, 0x103D5}, + {0x10400, 0x1049D}, {0x104A0, 0x104A9}, {0x104B0, 0x104D3}, + {0x104D8, 0x104FB}, {0x10500, 0x10527}, {0x10530, 0x10563}, + {0x1056F, 0x1056F}, {0x10600, 0x10736}, {0x10740, 0x10755}, + {0x10760, 0x10767}, {0x10800, 0x10805}, {0x10808, 0x10808}, + {0x1080A, 0x10835}, {0x10837, 0x10838}, {0x1083C, 0x1083C}, + {0x1083F, 0x10855}, {0x10857, 0x1089E}, {0x108A7, 0x108AF}, + {0x108E0, 0x108F2}, {0x108F4, 0x108F5}, {0x108FB, 0x1091B}, + {0x1091F, 0x10939}, {0x1093F, 0x1093F}, {0x10980, 0x109B7}, + {0x109BC, 0x109CF}, {0x109D2, 0x10A03}, {0x10A05, 0x10A06}, + {0x10A0C, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35}, + {0x10A38, 0x10A3A}, {0x10A3F, 0x10A48}, {0x10A50, 0x10A58}, + {0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6}, {0x10AEB, 0x10AF6}, + {0x10B00, 0x10B35}, {0x10B39, 0x10B55}, {0x10B58, 0x10B72}, + {0x10B78, 0x10B91}, {0x10B99, 0x10B9C}, {0x10BA9, 0x10BAF}, + {0x10C00, 0x10C48}, {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2}, + {0x10CFA, 0x10D27}, {0x10D30, 0x10D39}, {0x10E60, 0x10E7E}, + {0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD}, {0x10EB0, 0x10EB1}, + {0x10F00, 0x10F27}, {0x10F30, 0x10F59}, {0x10FB0, 0x10FCB}, + {0x10FE0, 0x10FF6}, {0x11000, 0x1104D}, {0x11052, 0x1106F}, + {0x1107F, 0x110C1}, {0x110CD, 0x110CD}, {0x110D0, 0x110E8}, + {0x110F0, 0x110F9}, {0x11100, 0x11134}, {0x11136, 0x11147}, + {0x11150, 0x11176}, {0x11180, 0x111DF}, {0x111E1, 0x111F4}, + {0x11200, 0x11211}, {0x11213, 0x1123E}, {0x11280, 0x11286}, + {0x11288, 0x11288}, {0x1128A, 0x1128D}, {0x1128F, 0x1129D}, + {0x1129F, 0x112A9}, {0x112B0, 0x112EA}, {0x112F0, 0x112F9}, + {0x11300, 0x11303}, {0x11305, 0x1130C}, {0x1130F, 0x11310}, + {0x11313, 0x11328}, {0x1132A, 0x11330}, {0x11332, 0x11333}, + {0x11335, 0x11339}, {0x1133B, 0x11344}, {0x11347, 0x11348}, + {0x1134B, 0x1134D}, {0x11350, 0x11350}, {0x11357, 0x11357}, + {0x1135D, 0x11363}, {0x11366, 0x1136C}, {0x11370, 0x11374}, + {0x11400, 0x1145B}, {0x1145D, 0x11461}, {0x11480, 0x114C7}, + {0x114D0, 0x114D9}, {0x11580, 0x115B5}, {0x115B8, 0x115DD}, + {0x11600, 0x11644}, {0x11650, 0x11659}, {0x11660, 0x1166C}, + {0x11680, 0x116B8}, {0x116C0, 0x116C9}, {0x11700, 0x1171A}, + {0x1171D, 0x1172B}, {0x11730, 0x1173F}, {0x11800, 0x1183B}, + {0x118A0, 0x118F2}, {0x118FF, 0x11906}, {0x11909, 0x11909}, + {0x1190C, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x11935}, + {0x11937, 0x11938}, {0x1193B, 0x11946}, {0x11950, 0x11959}, + {0x119A0, 0x119A7}, {0x119AA, 0x119D7}, {0x119DA, 0x119E4}, + {0x11A00, 0x11A47}, {0x11A50, 0x11AA2}, {0x11AC0, 0x11AF8}, + {0x11C00, 0x11C08}, {0x11C0A, 0x11C36}, {0x11C38, 0x11C45}, + {0x11C50, 0x11C6C}, {0x11C70, 0x11C8F}, {0x11C92, 0x11CA7}, + {0x11CA9, 0x11CB6}, {0x11D00, 0x11D06}, {0x11D08, 0x11D09}, + {0x11D0B, 0x11D36}, {0x11D3A, 0x11D3A}, {0x11D3C, 0x11D3D}, + {0x11D3F, 0x11D47}, {0x11D50, 0x11D59}, {0x11D60, 0x11D65}, + {0x11D67, 0x11D68}, {0x11D6A, 0x11D8E}, {0x11D90, 0x11D91}, + {0x11D93, 0x11D98}, {0x11DA0, 0x11DA9}, {0x11EE0, 0x11EF8}, + {0x11FB0, 0x11FB0}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399}, + {0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543}, + {0x13000, 0x1342E}, {0x13430, 0x13438}, {0x14400, 0x14646}, + {0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69}, + {0x16A6E, 0x16A6F}, {0x16AD0, 0x16AED}, {0x16AF0, 0x16AF5}, + {0x16B00, 0x16B45}, {0x16B50, 0x16B59}, {0x16B5B, 0x16B61}, + {0x16B63, 0x16B77}, {0x16B7D, 0x16B8F}, {0x16E40, 0x16E9A}, + {0x16F00, 0x16F4A}, {0x16F4F, 0x16F87}, {0x16F8F, 0x16F9F}, + {0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88}, + {0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BCA3}, {0x1D000, 0x1D0F5}, + {0x1D100, 0x1D126}, {0x1D129, 0x1D1E8}, {0x1D200, 0x1D245}, + {0x1D2E0, 0x1D2F3}, {0x1D300, 0x1D356}, {0x1D360, 0x1D378}, + {0x1D400, 0x1D454}, {0x1D456, 0x1D49C}, {0x1D49E, 0x1D49F}, + {0x1D4A2, 0x1D4A2}, {0x1D4A5, 0x1D4A6}, {0x1D4A9, 0x1D4AC}, + {0x1D4AE, 0x1D4B9}, {0x1D4BB, 0x1D4BB}, {0x1D4BD, 0x1D4C3}, + {0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, + {0x1D516, 0x1D51C}, {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E}, + {0x1D540, 0x1D544}, {0x1D546, 0x1D546}, {0x1D54A, 0x1D550}, + {0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B}, + {0x1DA9B, 0x1DA9F}, {0x1DAA1, 0x1DAAF}, {0x1E000, 0x1E006}, + {0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, {0x1E023, 0x1E024}, + {0x1E026, 0x1E02A}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D}, + {0x1E140, 0x1E149}, {0x1E14E, 0x1E14F}, {0x1E2C0, 0x1E2F9}, + {0x1E2FF, 0x1E2FF}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6}, + {0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1E95E, 0x1E95F}, + {0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03}, + {0x1EE05, 0x1EE1F}, {0x1EE21, 0x1EE22}, {0x1EE24, 0x1EE24}, + {0x1EE27, 0x1EE27}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37}, + {0x1EE39, 0x1EE39}, {0x1EE3B, 0x1EE3B}, {0x1EE42, 0x1EE42}, + {0x1EE47, 0x1EE47}, {0x1EE49, 0x1EE49}, {0x1EE4B, 0x1EE4B}, + {0x1EE4D, 0x1EE4F}, {0x1EE51, 0x1EE52}, {0x1EE54, 0x1EE54}, + {0x1EE57, 0x1EE57}, {0x1EE59, 0x1EE59}, {0x1EE5B, 0x1EE5B}, + {0x1EE5D, 0x1EE5D}, {0x1EE5F, 0x1EE5F}, {0x1EE61, 0x1EE62}, + {0x1EE64, 0x1EE64}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72}, + {0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE7E, 0x1EE7E}, + {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3}, + {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1EEF0, 0x1EEF1}, + {0x1F000, 0x1F003}, {0x1F005, 0x1F02B}, {0x1F030, 0x1F093}, + {0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CE}, + {0x1F0D1, 0x1F0F5}, {0x1F10B, 0x1F10F}, {0x1F12E, 0x1F12F}, + {0x1F16A, 0x1F16F}, {0x1F1AD, 0x1F1AD}, {0x1F1E6, 0x1F1FF}, + {0x1F321, 0x1F32C}, {0x1F336, 0x1F336}, {0x1F37D, 0x1F37D}, + {0x1F394, 0x1F39F}, {0x1F3CB, 0x1F3CE}, {0x1F3D4, 0x1F3DF}, + {0x1F3F1, 0x1F3F3}, {0x1F3F5, 0x1F3F7}, {0x1F43F, 0x1F43F}, + {0x1F441, 0x1F441}, {0x1F4FD, 0x1F4FE}, {0x1F53E, 0x1F54A}, + {0x1F54F, 0x1F54F}, {0x1F568, 0x1F579}, {0x1F57B, 0x1F594}, + {0x1F597, 0x1F5A3}, {0x1F5A5, 0x1F5FA}, {0x1F650, 0x1F67F}, + {0x1F6C6, 0x1F6CB}, {0x1F6CD, 0x1F6CF}, {0x1F6D3, 0x1F6D4}, + {0x1F6E0, 0x1F6EA}, {0x1F6F0, 0x1F6F3}, {0x1F700, 0x1F773}, + {0x1F780, 0x1F7D8}, {0x1F800, 0x1F80B}, {0x1F810, 0x1F847}, + {0x1F850, 0x1F859}, {0x1F860, 0x1F887}, {0x1F890, 0x1F8AD}, + {0x1F8B0, 0x1F8B1}, {0x1F900, 0x1F90B}, {0x1F93B, 0x1F93B}, + {0x1F946, 0x1F946}, {0x1FA00, 0x1FA53}, {0x1FA60, 0x1FA6D}, + {0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9}, + {0xE0001, 0xE0001}, {0xE0020, 0xE007F}, +} + +var emoji = table{ + {0x203C, 0x203C}, {0x2049, 0x2049}, {0x2122, 0x2122}, + {0x2139, 0x2139}, {0x2194, 0x2199}, {0x21A9, 0x21AA}, + {0x231A, 0x231B}, {0x2328, 0x2328}, {0x2388, 0x2388}, + {0x23CF, 0x23CF}, {0x23E9, 0x23F3}, {0x23F8, 0x23FA}, + {0x24C2, 0x24C2}, {0x25AA, 0x25AB}, {0x25B6, 0x25B6}, + {0x25C0, 0x25C0}, {0x25FB, 0x25FE}, {0x2600, 0x2605}, + {0x2607, 0x2612}, {0x2614, 0x2685}, {0x2690, 0x2705}, + {0x2708, 0x2712}, {0x2714, 0x2714}, {0x2716, 0x2716}, + {0x271D, 0x271D}, {0x2721, 0x2721}, {0x2728, 0x2728}, + {0x2733, 0x2734}, {0x2744, 0x2744}, {0x2747, 0x2747}, + {0x274C, 0x274C}, {0x274E, 0x274E}, {0x2753, 0x2755}, + {0x2757, 0x2757}, {0x2763, 0x2767}, {0x2795, 0x2797}, + {0x27A1, 0x27A1}, {0x27B0, 0x27B0}, {0x27BF, 0x27BF}, + {0x2934, 0x2935}, {0x2B05, 0x2B07}, {0x2B1B, 0x2B1C}, + {0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x3030, 0x3030}, + {0x303D, 0x303D}, {0x3297, 0x3297}, {0x3299, 0x3299}, + {0x1F000, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F12F, 0x1F12F}, + {0x1F16C, 0x1F171}, {0x1F17E, 0x1F17F}, {0x1F18E, 0x1F18E}, + {0x1F191, 0x1F19A}, {0x1F1AD, 0x1F1E5}, {0x1F201, 0x1F20F}, + {0x1F21A, 0x1F21A}, {0x1F22F, 0x1F22F}, {0x1F232, 0x1F23A}, + {0x1F23C, 0x1F23F}, {0x1F249, 0x1F3FA}, {0x1F400, 0x1F53D}, + {0x1F546, 0x1F64F}, {0x1F680, 0x1F6FF}, {0x1F774, 0x1F77F}, + {0x1F7D5, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F}, + {0x1F85A, 0x1F85F}, {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF}, + {0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1FAFF}, + {0x1FC00, 0x1FFFD}, +} diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_windows.go b/vendor/github.com/mattn/go-runewidth/runewidth_windows.go new file mode 100644 index 0000000..d6a6177 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/runewidth_windows.go @@ -0,0 +1,28 @@ +// +build windows +// +build !appengine + +package runewidth + +import ( + "syscall" +) + +var ( + kernel32 = syscall.NewLazyDLL("kernel32") + procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP") +) + +// IsEastAsian return true if the current locale is CJK +func IsEastAsian() bool { + r1, _, _ := procGetConsoleOutputCP.Call() + if r1 == 0 { + return false + } + + switch int(r1) { + case 932, 51932, 936, 949, 950: + return true + } + + return false +} diff --git a/vendor/github.com/rivo/tview/CODE_OF_CONDUCT.md b/vendor/github.com/rivo/tview/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..601e63b --- /dev/null +++ b/vendor/github.com/rivo/tview/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at https://rentafounder.com/page/about-me/. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/vendor/github.com/rivo/tview/CONTRIBUTING.md b/vendor/github.com/rivo/tview/CONTRIBUTING.md new file mode 100644 index 0000000..92f6886 --- /dev/null +++ b/vendor/github.com/rivo/tview/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contributing to tview + +First of all, thank you for taking the time to contribute. + +The following provides you with some guidance on how to contribute to this project. Mainly, it is meant to save us all some time so please read it, it's not long. + +Please note that this document is work in progress so I might add to it in the future. + +## Issues + +- Please include enough information so everybody understands your request. +- Screenshots or code that illustrates your point always helps. +- It's fine to ask for help. But you should have checked out the [documentation](https://godoc.org/github.com/rivo/tview) first in any case. +- If you request a new feature, state your motivation and share a use case that you faced where you needed that new feature. It should be something that others will also need. + +## Pull Requests + +In my limited time I can spend on this project, I will always go through issues first before looking at pull requests. It takes a _lot_ of time to look at code that you submitted and I may not have that time. So be prepared to have your pull requests lying around for a long time. + +Therefore, if you have a feature request, open an issue first before sending me a pull request, and allow for some discussion. It may save you from writing code that will get rejected. If your case is strong, there is a good chance that I will add the feature for you. + +I'm very picky about the code that goes into this repo. So if you violate any of the following guidelines, there is a good chance I won't merge your pull request. + +- There must be a strong case for your additions/changes, such as: + - Bug fixes + - Features that are needed (see "Issues" above; state your motivation) + - Improvements in stability or performance (if readability does not suffer) +- Your code must follow the structure of the existing code. Don't just patch something on. Try to understand how `tview` is currently designed and follow that design. Your code needs to be consistent with existing code. +- If you're adding code that increases the work required to maintain the project, you must be willing to take responsibility for that extra work. I will ask you to maintain your part of the code in the long run. +- Function/type/variable/constant names must be as descriptive as they are right now. Follow the conventions of the package. +- All functions/types/variables/constants, even private ones, must have comments in good English. These comments must be elaborate enough so that new users of the package understand them and can follow them. Provide examples if you have to. Start all sentences upper-case, as is common in English, and end them with a period. +- A new function should be located close to related functions in the file. For example, `GetColor()` should come after (or before) `SetColor()`. +- Your changes must not decrease the project's [Go Report](https://goreportcard.com/report/github.com/rivo/tview) rating. +- No breaking changes unless there is absolutely no other way. +- If an issue accompanies your pull request, reference it in the PR's comments, e.g. "Fixes #123", so it is closed automatically when the PR is closed. diff --git a/vendor/github.com/rivo/tview/LICENSE.txt b/vendor/github.com/rivo/tview/LICENSE.txt new file mode 100644 index 0000000..9d69430 --- /dev/null +++ b/vendor/github.com/rivo/tview/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Oliver Kuederle + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/rivo/tview/README.md b/vendor/github.com/rivo/tview/README.md new file mode 100644 index 0000000..9375a87 --- /dev/null +++ b/vendor/github.com/rivo/tview/README.md @@ -0,0 +1,97 @@ +# Rich Interactive Widgets for Terminal UIs + +[![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/rivo/tview) +[![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/tview) + +This Go package provides commonly needed components for terminal based user interfaces. + +![Screenshot](tview.gif) + +Among these components are: + +- __Input forms__ (include __input/password fields__, __drop-down selections__, __checkboxes__, and __buttons__) +- Navigable multi-color __text views__ +- Sophisticated navigable __table views__ +- Flexible __tree views__ +- Selectable __lists__ +- __Grid__, __Flexbox__ and __page layouts__ +- Modal __message windows__ +- An __application__ wrapper + +They come with lots of customization options and can be easily extended to fit your needs. + +## Installation + +```bash +go get github.com/rivo/tview +``` + +## Hello World + +This basic example creates a box titled "Hello, World!" and displays it in your terminal: + +```go +package main + +import ( + "github.com/rivo/tview" +) + +func main() { + box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!") + if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil { + panic(err) + } +} +``` + +Check out the [GitHub Wiki](https://github.com/rivo/tview/wiki) for more examples along with screenshots. Or try the examples in the "demos" subdirectory. + +For a presentation highlighting this package, compile and run the program found in the "demos/presentation" subdirectory. + +## Projects using `tview` + +- [Window manager for `tview`](https://github.com/epiclabs-io/winman) +- [Password manager](https://github.com/7onetella/password) +- [CLI bookmark manager](https://github.com/Endi1/drawer) +- [A caving database interface written in Go](https://github.com/IdlePhysicist/cave-logger) +- [App for rental of electic bikes](https://github.com/MrDienns/bike-commerce) +- [Interactive file browse and exec any command.](https://github.com/bannzai/itree) +- [A simple CRM](https://github.com/broadcastle/crm) +- [Terminal UI for todist](https://github.com/cyberdummy/todoista) +- [Graphical kubectl wrapper](https://github.com/dcaiafa/kpick) +- [Decred Decentralized Exchange ](https://github.com/decred/dcrdex) +- [Kubernetes CLI To Manage Your Clusters In Style! ](https://github.com/derailed/k9s) +- [A CLI file browser for Raspberry PI](https://github.com/destinmoulton/pixi) +- [A tool to manage projects.](https://github.com/divramod/dp) +- [A simple app for BMI monitoring](https://github.com/erleene/go-bmi) +- [Stream TIDAL from command line](https://github.com/godsic/vibe) +- [Secure solution for fully decentralized password management](https://github.com/guillaumemichel/passtor/) +- [A growing collection of convenient little tools to work with systemd services](https://github.com/muesli/service-tools/) +- [A terminal based browser for Redis written in Go](https://github.com/nitishm/redis-terminal) +- [First project for the Computer Networks course.](https://github.com/pablogadhi/XMPPClient) +- [CLI tool build in Golang for managing ssh connection](https://github.com/patilsuraj767/connection-master) +- [Test your typing speed in the terminal!](https://github.com/shilangyu/typer-go) +- [TUI Client for Docker](https://github.com/skanehira/docui) +- [SSH client using certificates signed by HashiCorp Vault](https://github.com/stephane-martin/vssh) +- [A go terminal based pos software.](https://github.com/thebmw/y2kpos) +- [VMware vCenter Text UI](https://github.com/thebsdbox/vctui) +- [Bookmarks on terminal](https://github.com/tryffel/bookmarker) +- [A UDP testing utility](https://github.com/vaelen/udp-tester) +- [A simple Kanban board for your terminal](https://github.com/witchard/toukan) +- [The personal information dashboard for your terminal. ](https://github.com/wtfutil/wtf) +- [MySQL database to Golang struct](https://github.com/xxjwxc/gormt) +- [Cryptowatch Go SDK](https://github.com/y3sh/cw-sdk-go) +- [Discord, TUI and SIXEL.](https://gitlab.com/diamondburned/6cord) + +## Documentation + +Refer to https://pkg.go.dev/github.com/rivo/tview for the package's documentation. + +## Dependencies + +This package is based on [github.com/gdamore/tcell](https://github.com/gdamore/tcell) (and its dependencies) as well as on [github.com/rivo/uniseg](https://github.com/rivo/uniseg). + +## Your Feedback + +Add your issue here on GitHub. Feel free to get in touch if you have any questions. diff --git a/vendor/github.com/rivo/tview/ansi.go b/vendor/github.com/rivo/tview/ansi.go new file mode 100644 index 0000000..49b2e92 --- /dev/null +++ b/vendor/github.com/rivo/tview/ansi.go @@ -0,0 +1,258 @@ +package tview + +import ( + "bytes" + "fmt" + "io" + "strconv" + "strings" +) + +// The states of the ANSI escape code parser. +const ( + ansiText = iota + ansiEscape + ansiSubstring + ansiControlSequence +) + +// ansi is a io.Writer which translates ANSI escape codes into tview color +// tags. +type ansi struct { + io.Writer + + // Reusable buffers. + buffer *bytes.Buffer // The entire output text of one Write(). + csiParameter, csiIntermediate *bytes.Buffer // Partial CSI strings. + attributes string // The buffer's current text attributes (a tview attribute string). + + // The current state of the parser. One of the ansi constants. + state int +} + +// ANSIWriter returns an io.Writer which translates any ANSI escape codes +// written to it into tview color tags. Other escape codes don't have an effect +// and are simply removed. The translated text is written to the provided +// writer. +func ANSIWriter(writer io.Writer) io.Writer { + return &ansi{ + Writer: writer, + buffer: new(bytes.Buffer), + csiParameter: new(bytes.Buffer), + csiIntermediate: new(bytes.Buffer), + state: ansiText, + } +} + +// Write parses the given text as a string of runes, translates ANSI escape +// codes to color tags and writes them to the output writer. +func (a *ansi) Write(text []byte) (int, error) { + defer func() { + a.buffer.Reset() + }() + + for _, r := range string(text) { + switch a.state { + + // We just entered an escape sequence. + case ansiEscape: + switch r { + case '[': // Control Sequence Introducer. + a.csiParameter.Reset() + a.csiIntermediate.Reset() + a.state = ansiControlSequence + case 'c': // Reset. + fmt.Fprint(a.buffer, "[-:-:-]") + a.state = ansiText + case 'P', ']', 'X', '^', '_': // Substrings and commands. + a.state = ansiSubstring + default: // Ignore. + a.state = ansiText + } + + // CSI Sequences. + case ansiControlSequence: + switch { + case r >= 0x30 && r <= 0x3f: // Parameter bytes. + if _, err := a.csiParameter.WriteRune(r); err != nil { + return 0, err + } + case r >= 0x20 && r <= 0x2f: // Intermediate bytes. + if _, err := a.csiIntermediate.WriteRune(r); err != nil { + return 0, err + } + case r >= 0x40 && r <= 0x7e: // Final byte. + switch r { + case 'E': // Next line. + count, _ := strconv.Atoi(a.csiParameter.String()) + if count == 0 { + count = 1 + } + fmt.Fprint(a.buffer, strings.Repeat("\n", count)) + case 'm': // Select Graphic Rendition. + var background, foreground string + params := a.csiParameter.String() + fields := strings.Split(params, ";") + if len(params) == 0 || len(fields) == 1 && fields[0] == "0" { + // Reset. + a.attributes = "" + if _, err := a.buffer.WriteString("[-:-:-]"); err != nil { + return 0, err + } + break + } + lookupColor := func(colorNumber int) string { + if colorNumber < 0 || colorNumber > 15 { + return "black" + } + return []string{ + "black", + "maroon", + "green", + "olive", + "navy", + "purple", + "teal", + "silver", + "gray", + "red", + "lime", + "yellow", + "blue", + "fuchsia", + "aqua", + "white", + }[colorNumber] + } + FieldLoop: + for index, field := range fields { + switch field { + case "1", "01": + if strings.IndexRune(a.attributes, 'b') < 0 { + a.attributes += "b" + } + case "2", "02": + if strings.IndexRune(a.attributes, 'd') < 0 { + a.attributes += "d" + } + case "4", "04": + if strings.IndexRune(a.attributes, 'u') < 0 { + a.attributes += "u" + } + case "5", "05": + if strings.IndexRune(a.attributes, 'l') < 0 { + a.attributes += "l" + } + case "22": + if i := strings.IndexRune(a.attributes, 'b'); i >= 0 { + a.attributes = a.attributes[:i] + a.attributes[i+1:] + } + if i := strings.IndexRune(a.attributes, 'd'); i >= 0 { + a.attributes = a.attributes[:i] + a.attributes[i+1:] + } + case "24": + if i := strings.IndexRune(a.attributes, 'u'); i >= 0 { + a.attributes = a.attributes[:i] + a.attributes[i+1:] + } + case "25": + if i := strings.IndexRune(a.attributes, 'l'); i >= 0 { + a.attributes = a.attributes[:i] + a.attributes[i+1:] + } + case "30", "31", "32", "33", "34", "35", "36", "37": + colorNumber, _ := strconv.Atoi(field) + foreground = lookupColor(colorNumber - 30) + case "39": + foreground = "-" + case "40", "41", "42", "43", "44", "45", "46", "47": + colorNumber, _ := strconv.Atoi(field) + background = lookupColor(colorNumber - 40) + case "49": + background = "-" + case "90", "91", "92", "93", "94", "95", "96", "97": + colorNumber, _ := strconv.Atoi(field) + foreground = lookupColor(colorNumber - 82) + case "100", "101", "102", "103", "104", "105", "106", "107": + colorNumber, _ := strconv.Atoi(field) + background = lookupColor(colorNumber - 92) + case "38", "48": + var color string + if len(fields) > index+1 { + if fields[index+1] == "5" && len(fields) > index+2 { // 8-bit colors. + colorNumber, _ := strconv.Atoi(fields[index+2]) + if colorNumber <= 15 { + color = lookupColor(colorNumber) + } else if colorNumber <= 231 { + red := (colorNumber - 16) / 36 + green := ((colorNumber - 16) / 6) % 6 + blue := (colorNumber - 16) % 6 + color = fmt.Sprintf("#%02x%02x%02x", 255*red/5, 255*green/5, 255*blue/5) + } else if colorNumber <= 255 { + grey := 255 * (colorNumber - 232) / 23 + color = fmt.Sprintf("#%02x%02x%02x", grey, grey, grey) + } + } else if fields[index+1] == "2" && len(fields) > index+4 { // 24-bit colors. + red, _ := strconv.Atoi(fields[index+2]) + green, _ := strconv.Atoi(fields[index+3]) + blue, _ := strconv.Atoi(fields[index+4]) + color = fmt.Sprintf("#%02x%02x%02x", red, green, blue) + } + } + if len(color) > 0 { + if field == "38" { + foreground = color + } else { + background = color + } + } + break FieldLoop + } + } + var colon string + if len(a.attributes) > 0 { + colon = ":" + } + if len(foreground) > 0 || len(background) > 0 || len(a.attributes) > 0 { + fmt.Fprintf(a.buffer, "[%s:%s%s%s]", foreground, background, colon, a.attributes) + } + } + a.state = ansiText + default: // Undefined byte. + a.state = ansiText // Abort CSI. + } + + // We just entered a substring/command sequence. + case ansiSubstring: + if r == 27 { // Most likely the end of the substring. + a.state = ansiEscape + } // Ignore all other characters. + + // "ansiText" and all others. + default: + if r == 27 { + // This is the start of an escape sequence. + a.state = ansiEscape + } else { + // Just a regular rune. Send to buffer. + if _, err := a.buffer.WriteRune(r); err != nil { + return 0, err + } + } + } + } + + // Write buffer to target writer. + n, err := a.buffer.WriteTo(a.Writer) + if err != nil { + return int(n), err + } + return len(text), nil +} + +// TranslateANSI replaces ANSI escape sequences found in the provided string +// with tview's color tags and returns the resulting string. +func TranslateANSI(text string) string { + var buffer bytes.Buffer + writer := ANSIWriter(&buffer) + writer.Write([]byte(text)) + return buffer.String() +} diff --git a/vendor/github.com/rivo/tview/application.go b/vendor/github.com/rivo/tview/application.go new file mode 100644 index 0000000..cd504d6 --- /dev/null +++ b/vendor/github.com/rivo/tview/application.go @@ -0,0 +1,729 @@ +package tview + +import ( + "sync" + "time" + + "github.com/gdamore/tcell" +) + +const ( + // The size of the event/update/redraw channels. + queueSize = 100 + + // The minimum time between two consecutive redraws. + redrawPause = 50 * time.Millisecond +) + +// DoubleClickInterval specifies the maximum time between clicks to register a +// double click rather than click. +var DoubleClickInterval = 500 * time.Millisecond + +// MouseAction indicates one of the actions the mouse is logically doing. +type MouseAction int16 + +// Available mouse actions. +const ( + MouseMove MouseAction = iota + MouseLeftDown + MouseLeftUp + MouseLeftClick + MouseLeftDoubleClick + MouseMiddleDown + MouseMiddleUp + MouseMiddleClick + MouseMiddleDoubleClick + MouseRightDown + MouseRightUp + MouseRightClick + MouseRightDoubleClick + MouseScrollUp + MouseScrollDown + MouseScrollLeft + MouseScrollRight +) + +// queuedUpdate represented the execution of f queued by +// Application.QueueUpdate(). The "done" channel receives exactly one element +// after f has executed. +type queuedUpdate struct { + f func() + done chan struct{} +} + +// Application represents the top node of an application. +// +// It is not strictly required to use this class as none of the other classes +// depend on it. However, it provides useful tools to set up an application and +// plays nicely with all widgets. +// +// The following command displays a primitive p on the screen until Ctrl-C is +// pressed: +// +// if err := tview.NewApplication().SetRoot(p, true).Run(); err != nil { +// panic(err) +// } +type Application struct { + sync.RWMutex + + // The application's screen. Apart from Run(), this variable should never be + // set directly. Always use the screenReplacement channel after calling + // Fini(), to set a new screen (or nil to stop the application). + screen tcell.Screen + + // The primitive which currently has the keyboard focus. + focus Primitive + + // The root primitive to be seen on the screen. + root Primitive + + // Whether or not the application resizes the root primitive. + rootFullscreen bool + + // Set to true if mouse events are enabled. + enableMouse bool + + // An optional capture function which receives a key event and returns the + // event to be forwarded to the default input handler (nil if nothing should + // be forwarded). + inputCapture func(event *tcell.EventKey) *tcell.EventKey + + // An optional callback function which is invoked just before the root + // primitive is drawn. + beforeDraw func(screen tcell.Screen) bool + + // An optional callback function which is invoked after the root primitive + // was drawn. + afterDraw func(screen tcell.Screen) + + // Used to send screen events from separate goroutine to main event loop + events chan tcell.Event + + // Functions queued from goroutines, used to serialize updates to primitives. + updates chan queuedUpdate + + // An object that the screen variable will be set to after Fini() was called. + // Use this channel to set a new screen object for the application + // (screen.Init() and draw() will be called implicitly). A value of nil will + // stop the application. + screenReplacement chan tcell.Screen + + // An optional capture function which receives a mouse event and returns the + // event to be forwarded to the default mouse handler (nil if nothing should + // be forwarded). + mouseCapture func(event *tcell.EventMouse, action MouseAction) (*tcell.EventMouse, MouseAction) + + mouseCapturingPrimitive Primitive // A Primitive returned by a MouseHandler which will capture future mouse events. + lastMouseX, lastMouseY int // The last position of the mouse. + mouseDownX, mouseDownY int // The position of the mouse when its button was last pressed. + lastMouseClick time.Time // The time when a mouse button was last clicked. + lastMouseButtons tcell.ButtonMask // The last mouse button state. +} + +// NewApplication creates and returns a new application. +func NewApplication() *Application { + return &Application{ + events: make(chan tcell.Event, queueSize), + updates: make(chan queuedUpdate, queueSize), + screenReplacement: make(chan tcell.Screen, 1), + } +} + +// SetInputCapture sets a function which captures all key events before they are +// forwarded to the key event handler of the primitive which currently has +// focus. This function can then choose to forward that key event (or a +// different one) by returning it or stop the key event processing by returning +// nil. +// +// Note that this also affects the default event handling of the application +// itself: Such a handler can intercept the Ctrl-C event which closes the +// application. +func (a *Application) SetInputCapture(capture func(event *tcell.EventKey) *tcell.EventKey) *Application { + a.inputCapture = capture + return a +} + +// GetInputCapture returns the function installed with SetInputCapture() or nil +// if no such function has been installed. +func (a *Application) GetInputCapture() func(event *tcell.EventKey) *tcell.EventKey { + return a.inputCapture +} + +// SetMouseCapture sets a function which captures mouse events (consisting of +// the original tcell mouse event and the semantic mouse action) before they are +// forwarded to the appropriate mouse event handler. This function can then +// choose to forward that event (or a different one) by returning it or stop +// the event processing by returning a nil mouse event. +func (a *Application) SetMouseCapture(capture func(event *tcell.EventMouse, action MouseAction) (*tcell.EventMouse, MouseAction)) *Application { + a.mouseCapture = capture + return a +} + +// GetMouseCapture returns the function installed with SetMouseCapture() or nil +// if no such function has been installed. +func (a *Application) GetMouseCapture() func(event *tcell.EventMouse, action MouseAction) (*tcell.EventMouse, MouseAction) { + return a.mouseCapture +} + +// SetScreen allows you to provide your own tcell.Screen object. For most +// applications, this is not needed and you should be familiar with +// tcell.Screen when using this function. +// +// This function is typically called before the first call to Run(). Init() need +// not be called on the screen. +func (a *Application) SetScreen(screen tcell.Screen) *Application { + if screen == nil { + return a // Invalid input. Do nothing. + } + + a.Lock() + if a.screen == nil { + // Run() has not been called yet. + a.screen = screen + a.Unlock() + return a + } + + // Run() is already in progress. Exchange screen. + oldScreen := a.screen + a.Unlock() + oldScreen.Fini() + a.screenReplacement <- screen + + return a +} + +// EnableMouse enables mouse events. +func (a *Application) EnableMouse(enable bool) *Application { + a.Lock() + defer a.Unlock() + if enable != a.enableMouse && a.screen != nil { + if enable { + a.screen.EnableMouse() + } else { + a.screen.DisableMouse() + } + } + a.enableMouse = enable + return a +} + +// Run starts the application and thus the event loop. This function returns +// when Stop() was called. +func (a *Application) Run() error { + var ( + err error + lastRedraw time.Time // The time the screen was last redrawn. + redrawTimer *time.Timer // A timer to schedule the next redraw. + ) + a.Lock() + + // Make a screen if there is none yet. + if a.screen == nil { + a.screen, err = tcell.NewScreen() + if err != nil { + a.Unlock() + return err + } + if err = a.screen.Init(); err != nil { + a.Unlock() + return err + } + if a.enableMouse { + a.screen.EnableMouse() + } + } + + // We catch panics to clean up because they mess up the terminal. + defer func() { + if p := recover(); p != nil { + if a.screen != nil { + a.screen.Fini() + } + panic(p) + } + }() + + // Draw the screen for the first time. + a.Unlock() + a.draw() + + // Separate loop to wait for screen events. + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + for { + a.RLock() + screen := a.screen + a.RUnlock() + if screen == nil { + // We have no screen. Let's stop. + a.QueueEvent(nil) + break + } + + // Wait for next event and queue it. + event := screen.PollEvent() + if event != nil { + // Regular event. Queue. + a.QueueEvent(event) + continue + } + + // A screen was finalized (event is nil). Wait for a new scren. + screen = <-a.screenReplacement + if screen == nil { + // No new screen. We're done. + a.QueueEvent(nil) + return + } + + // We have a new screen. Keep going. + a.Lock() + a.screen = screen + a.Unlock() + + // Initialize and draw this screen. + if err := screen.Init(); err != nil { + panic(err) + } + a.draw() + } + }() + + // Start event loop. +EventLoop: + for { + select { + case event := <-a.events: + if event == nil { + break EventLoop + } + + switch event := event.(type) { + case *tcell.EventKey: + a.RLock() + root := a.root + inputCapture := a.inputCapture + a.RUnlock() + + // Intercept keys. + var draw bool + if inputCapture != nil { + event = inputCapture(event) + if event == nil { + a.draw() + continue // Don't forward event. + } + draw = true + } + + // Ctrl-C closes the application. + if event.Key() == tcell.KeyCtrlC { + a.Stop() + } + + // Pass other key events to the root primitive. + if root != nil && root.GetFocusable().HasFocus() { + if handler := root.InputHandler(); handler != nil { + handler(event, func(p Primitive) { + a.SetFocus(p) + }) + draw = true + } + } + + // Redraw. + if draw { + a.draw() + } + case *tcell.EventResize: + if time.Since(lastRedraw) < redrawPause { + if redrawTimer != nil { + redrawTimer.Stop() + } + redrawTimer = time.AfterFunc(redrawPause, func() { + a.events <- event + }) + } + a.RLock() + screen := a.screen + a.RUnlock() + if screen == nil { + continue + } + lastRedraw = time.Now() + screen.Clear() + a.draw() + case *tcell.EventMouse: + consumed, isMouseDownAction := a.fireMouseActions(event) + if consumed { + a.draw() + } + a.lastMouseButtons = event.Buttons() + if isMouseDownAction { + a.mouseDownX, a.mouseDownY = event.Position() + } + } + + // If we have updates, now is the time to execute them. + case update := <-a.updates: + update.f() + update.done <- struct{}{} + } + } + + // Wait for the event loop to finish. + wg.Wait() + a.screen = nil + + return nil +} + +// fireMouseActions analyzes the provided mouse event, derives mouse actions +// from it and then forwards them to the corresponding primitives. +func (a *Application) fireMouseActions(event *tcell.EventMouse) (consumed, isMouseDownAction bool) { + // We want to relay follow-up events to the same target primitive. + var targetPrimitive Primitive + + // Helper function to fire a mouse action. + fire := func(action MouseAction) { + switch action { + case MouseLeftDown, MouseMiddleDown, MouseRightDown: + isMouseDownAction = true + } + + // Intercept event. + if a.mouseCapture != nil { + event, action = a.mouseCapture(event, action) + if event == nil { + consumed = true + return // Don't forward event. + } + } + + // Determine the target primitive. + var primitive, capturingPrimitive Primitive + if a.mouseCapturingPrimitive != nil { + primitive = a.mouseCapturingPrimitive + targetPrimitive = a.mouseCapturingPrimitive + } else if targetPrimitive != nil { + primitive = targetPrimitive + } else { + primitive = a.root + } + if primitive != nil { + if handler := primitive.MouseHandler(); handler != nil { + var wasConsumed bool + wasConsumed, capturingPrimitive = handler(action, event, func(p Primitive) { + a.SetFocus(p) + }) + if wasConsumed { + consumed = true + } + } + } + a.mouseCapturingPrimitive = capturingPrimitive + } + + x, y := event.Position() + buttons := event.Buttons() + clickMoved := x != a.mouseDownX || y != a.mouseDownY + buttonChanges := buttons ^ a.lastMouseButtons + + if x != a.lastMouseX || y != a.lastMouseY { + fire(MouseMove) + a.lastMouseX = x + a.lastMouseY = y + } + + for _, buttonEvent := range []struct { + button tcell.ButtonMask + down, up, click, dclick MouseAction + }{ + {tcell.Button1, MouseLeftDown, MouseLeftUp, MouseLeftClick, MouseLeftDoubleClick}, + {tcell.Button2, MouseMiddleDown, MouseMiddleUp, MouseMiddleClick, MouseMiddleDoubleClick}, + {tcell.Button3, MouseRightDown, MouseRightUp, MouseRightClick, MouseRightDoubleClick}, + } { + if buttonChanges&buttonEvent.button != 0 { + if buttons&buttonEvent.button != 0 { + fire(buttonEvent.down) + } else { + fire(buttonEvent.up) + if !clickMoved { + if a.lastMouseClick.Add(DoubleClickInterval).Before(time.Now()) { + fire(buttonEvent.click) + a.lastMouseClick = time.Now() + } else { + fire(buttonEvent.dclick) + a.lastMouseClick = time.Time{} // reset + } + } + } + } + } + + for _, wheelEvent := range []struct { + button tcell.ButtonMask + action MouseAction + }{ + {tcell.WheelUp, MouseScrollUp}, + {tcell.WheelDown, MouseScrollDown}, + {tcell.WheelLeft, MouseScrollLeft}, + {tcell.WheelRight, MouseScrollRight}} { + if buttons&wheelEvent.button != 0 { + fire(wheelEvent.action) + } + } + + return consumed, isMouseDownAction +} + +// Stop stops the application, causing Run() to return. +func (a *Application) Stop() { + a.Lock() + defer a.Unlock() + screen := a.screen + if screen == nil { + return + } + a.screen = nil + screen.Fini() + a.screenReplacement <- nil +} + +// Suspend temporarily suspends the application by exiting terminal UI mode and +// invoking the provided function "f". When "f" returns, terminal UI mode is +// entered again and the application resumes. +// +// A return value of true indicates that the application was suspended and "f" +// was called. If false is returned, the application was already suspended, +// terminal UI mode was not exited, and "f" was not called. +func (a *Application) Suspend(f func()) bool { + a.RLock() + screen := a.screen + a.RUnlock() + if screen == nil { + return false // Screen has not yet been initialized. + } + + // Enter suspended mode. + screen.Fini() + + // Wait for "f" to return. + f() + + // Make a new screen. + var err error + screen, err = tcell.NewScreen() + if err != nil { + panic(err) + } + a.screenReplacement <- screen + // One key event will get lost, see https://github.com/gdamore/tcell/issues/194 + + // Continue application loop. + return true +} + +// Draw refreshes the screen (during the next update cycle). It calls the Draw() +// function of the application's root primitive and then syncs the screen +// buffer. It is almost never necessary to call this function. Please see +// https://github.com/rivo/tview/wiki/Concurrency for details. +func (a *Application) Draw() *Application { + a.QueueUpdate(func() { + a.draw() + }) + return a +} + +// ForceDraw refreshes the screen immediately. Use this function with caution as +// it may lead to race conditions with updates to primitives in other +// goroutines. It is always preferrable to use Draw() instead. Never call this +// function from a goroutine. +// +// It is safe to call this function during queued updates and direct event +// handling. +func (a *Application) ForceDraw() *Application { + return a.draw() +} + +// draw actually does what Draw() promises to do. +func (a *Application) draw() *Application { + a.Lock() + defer a.Unlock() + + screen := a.screen + root := a.root + fullscreen := a.rootFullscreen + before := a.beforeDraw + after := a.afterDraw + + // Maybe we're not ready yet or not anymore. + if screen == nil || root == nil { + return a + } + + // Resize if requested. + if fullscreen && root != nil { + width, height := screen.Size() + root.SetRect(0, 0, width, height) + } + + // Call before handler if there is one. + if before != nil { + if before(screen) { + screen.Show() + return a + } + } + + // Draw all primitives. + root.Draw(screen) + + // Call after handler if there is one. + if after != nil { + after(screen) + } + + // Sync screen. + screen.Show() + + return a +} + +// SetBeforeDrawFunc installs a callback function which is invoked just before +// the root primitive is drawn during screen updates. If the function returns +// true, drawing will not continue, i.e. the root primitive will not be drawn +// (and an after-draw-handler will not be called). +// +// Note that the screen is not cleared by the application. To clear the screen, +// you may call screen.Clear(). +// +// Provide nil to uninstall the callback function. +func (a *Application) SetBeforeDrawFunc(handler func(screen tcell.Screen) bool) *Application { + a.beforeDraw = handler + return a +} + +// GetBeforeDrawFunc returns the callback function installed with +// SetBeforeDrawFunc() or nil if none has been installed. +func (a *Application) GetBeforeDrawFunc() func(screen tcell.Screen) bool { + return a.beforeDraw +} + +// SetAfterDrawFunc installs a callback function which is invoked after the root +// primitive was drawn during screen updates. +// +// Provide nil to uninstall the callback function. +func (a *Application) SetAfterDrawFunc(handler func(screen tcell.Screen)) *Application { + a.afterDraw = handler + return a +} + +// GetAfterDrawFunc returns the callback function installed with +// SetAfterDrawFunc() or nil if none has been installed. +func (a *Application) GetAfterDrawFunc() func(screen tcell.Screen) { + return a.afterDraw +} + +// SetRoot sets the root primitive for this application. If "fullscreen" is set +// to true, the root primitive's position will be changed to fill the screen. +// +// This function must be called at least once or nothing will be displayed when +// the application starts. +// +// It also calls SetFocus() on the primitive. +func (a *Application) SetRoot(root Primitive, fullscreen bool) *Application { + a.Lock() + a.root = root + a.rootFullscreen = fullscreen + if a.screen != nil { + a.screen.Clear() + } + a.Unlock() + + a.SetFocus(root) + + return a +} + +// ResizeToFullScreen resizes the given primitive such that it fills the entire +// screen. +func (a *Application) ResizeToFullScreen(p Primitive) *Application { + a.RLock() + width, height := a.screen.Size() + a.RUnlock() + p.SetRect(0, 0, width, height) + return a +} + +// SetFocus sets the focus on a new primitive. All key events will be redirected +// to that primitive. Callers must ensure that the primitive will handle key +// events. +// +// Blur() will be called on the previously focused primitive. Focus() will be +// called on the new primitive. +func (a *Application) SetFocus(p Primitive) *Application { + a.Lock() + if a.focus != nil { + a.focus.Blur() + } + a.focus = p + if a.screen != nil { + a.screen.HideCursor() + } + a.Unlock() + if p != nil { + p.Focus(func(p Primitive) { + a.SetFocus(p) + }) + } + + return a +} + +// GetFocus returns the primitive which has the current focus. If none has it, +// nil is returned. +func (a *Application) GetFocus() Primitive { + a.RLock() + defer a.RUnlock() + return a.focus +} + +// QueueUpdate is used to synchronize access to primitives from non-main +// goroutines. The provided function will be executed as part of the event loop +// and thus will not cause race conditions with other such update functions or +// the Draw() function. +// +// Note that Draw() is not implicitly called after the execution of f as that +// may not be desirable. You can call Draw() from f if the screen should be +// refreshed after each update. Alternatively, use QueueUpdateDraw() to follow +// up with an immediate refresh of the screen. +// +// This function returns after f has executed. +func (a *Application) QueueUpdate(f func()) *Application { + ch := make(chan struct{}) + a.updates <- queuedUpdate{f: f, done: ch} + <-ch + return a +} + +// QueueUpdateDraw works like QueueUpdate() except it refreshes the screen +// immediately after executing f. +func (a *Application) QueueUpdateDraw(f func()) *Application { + a.QueueUpdate(func() { + f() + a.draw() + }) + return a +} + +// QueueEvent sends an event to the Application event loop. +// +// It is not recommended for event to be nil. +func (a *Application) QueueEvent(event tcell.Event) *Application { + a.events <- event + return a +} diff --git a/vendor/github.com/rivo/tview/borders.go b/vendor/github.com/rivo/tview/borders.go new file mode 100644 index 0000000..946c878 --- /dev/null +++ b/vendor/github.com/rivo/tview/borders.go @@ -0,0 +1,45 @@ +package tview + +// Borders defines various borders used when primitives are drawn. +// These may be changed to accommodate a different look and feel. +var Borders = struct { + Horizontal rune + Vertical rune + TopLeft rune + TopRight rune + BottomLeft rune + BottomRight rune + + LeftT rune + RightT rune + TopT rune + BottomT rune + Cross rune + + HorizontalFocus rune + VerticalFocus rune + TopLeftFocus rune + TopRightFocus rune + BottomLeftFocus rune + BottomRightFocus rune +}{ + Horizontal: BoxDrawingsLightHorizontal, + Vertical: BoxDrawingsLightVertical, + TopLeft: BoxDrawingsLightDownAndRight, + TopRight: BoxDrawingsLightDownAndLeft, + BottomLeft: BoxDrawingsLightUpAndRight, + BottomRight: BoxDrawingsLightUpAndLeft, + + LeftT: BoxDrawingsLightVerticalAndRight, + RightT: BoxDrawingsLightVerticalAndLeft, + TopT: BoxDrawingsLightDownAndHorizontal, + BottomT: BoxDrawingsLightUpAndHorizontal, + Cross: BoxDrawingsLightVerticalAndHorizontal, + + HorizontalFocus: BoxDrawingsDoubleHorizontal, + VerticalFocus: BoxDrawingsDoubleVertical, + TopLeftFocus: BoxDrawingsDoubleDownAndRight, + TopRightFocus: BoxDrawingsDoubleDownAndLeft, + BottomLeftFocus: BoxDrawingsDoubleUpAndRight, + BottomRightFocus: BoxDrawingsDoubleUpAndLeft, +} diff --git a/vendor/github.com/rivo/tview/box.go b/vendor/github.com/rivo/tview/box.go new file mode 100644 index 0000000..6cc34b7 --- /dev/null +++ b/vendor/github.com/rivo/tview/box.go @@ -0,0 +1,412 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Box implements the Primitive interface with an empty background and optional +// elements such as a border and a title. Box itself does not hold any content +// but serves as the superclass of all other primitives. Subclasses add their +// own content, typically (but not necessarily) keeping their content within the +// box's rectangle. +// +// Box provides a number of utility functions available to all primitives. +// +// See https://github.com/rivo/tview/wiki/Box for an example. +type Box struct { + // The position of the rect. + x, y, width, height int + + // The inner rect reserved for the box's content. + innerX, innerY, innerWidth, innerHeight int + + // Border padding. + paddingTop, paddingBottom, paddingLeft, paddingRight int + + // The box's background color. + backgroundColor tcell.Color + + // Whether or not a border is drawn, reducing the box's space for content by + // two in width and height. + border bool + + // The color of the border. + borderColor tcell.Color + + // The style attributes of the border. + borderAttributes tcell.AttrMask + + // The title. Only visible if there is a border, too. + title string + + // The color of the title. + titleColor tcell.Color + + // The alignment of the title. + titleAlign int + + // Provides a way to find out if this box has focus. We always go through + // this interface because it may be overridden by implementing classes. + focus Focusable + + // Whether or not this box has focus. + hasFocus bool + + // An optional capture function which receives a key event and returns the + // event to be forwarded to the primitive's default input handler (nil if + // nothing should be forwarded). + inputCapture func(event *tcell.EventKey) *tcell.EventKey + + // An optional function which is called before the box is drawn. + draw func(screen tcell.Screen, x, y, width, height int) (int, int, int, int) + + // An optional capture function which receives a mouse event and returns the + // event to be forwarded to the primitive's default mouse event handler (at + // least one nil if nothing should be forwarded). + mouseCapture func(action MouseAction, event *tcell.EventMouse) (MouseAction, *tcell.EventMouse) +} + +// NewBox returns a Box without a border. +func NewBox() *Box { + b := &Box{ + width: 15, + height: 10, + innerX: -1, // Mark as uninitialized. + backgroundColor: Styles.PrimitiveBackgroundColor, + borderColor: Styles.BorderColor, + titleColor: Styles.TitleColor, + titleAlign: AlignCenter, + } + b.focus = b + return b +} + +// SetBorderPadding sets the size of the borders around the box content. +func (b *Box) SetBorderPadding(top, bottom, left, right int) *Box { + b.paddingTop, b.paddingBottom, b.paddingLeft, b.paddingRight = top, bottom, left, right + return b +} + +// GetRect returns the current position of the rectangle, x, y, width, and +// height. +func (b *Box) GetRect() (int, int, int, int) { + return b.x, b.y, b.width, b.height +} + +// GetInnerRect returns the position of the inner rectangle (x, y, width, +// height), without the border and without any padding. Width and height values +// will clamp to 0 and thus never be negative. +func (b *Box) GetInnerRect() (int, int, int, int) { + if b.innerX >= 0 { + return b.innerX, b.innerY, b.innerWidth, b.innerHeight + } + x, y, width, height := b.GetRect() + if b.border { + x++ + y++ + width -= 2 + height -= 2 + } + x, y, width, height = x+b.paddingLeft, + y+b.paddingTop, + width-b.paddingLeft-b.paddingRight, + height-b.paddingTop-b.paddingBottom + if width < 0 { + width = 0 + } + if height < 0 { + height = 0 + } + return x, y, width, height +} + +// SetRect sets a new position of the primitive. Note that this has no effect +// if this primitive is part of a layout (e.g. Flex, Grid) or if it was added +// like this: +// +// application.SetRoot(b, true) +func (b *Box) SetRect(x, y, width, height int) { + b.x = x + b.y = y + b.width = width + b.height = height + b.innerX = -1 // Mark inner rect as uninitialized. +} + +// SetDrawFunc sets a callback function which is invoked after the box primitive +// has been drawn. This allows you to add a more individual style to the box +// (and all primitives which extend it). +// +// The function is provided with the box's dimensions (set via SetRect()). It +// must return the box's inner dimensions (x, y, width, height) which will be +// returned by GetInnerRect(), used by descendent primitives to draw their own +// content. +func (b *Box) SetDrawFunc(handler func(screen tcell.Screen, x, y, width, height int) (int, int, int, int)) *Box { + b.draw = handler + return b +} + +// GetDrawFunc returns the callback function which was installed with +// SetDrawFunc() or nil if no such function has been installed. +func (b *Box) GetDrawFunc() func(screen tcell.Screen, x, y, width, height int) (int, int, int, int) { + return b.draw +} + +// WrapInputHandler wraps an input handler (see InputHandler()) with the +// functionality to capture input (see SetInputCapture()) before passing it +// on to the provided (default) input handler. +// +// This is only meant to be used by subclassing primitives. +func (b *Box) WrapInputHandler(inputHandler func(*tcell.EventKey, func(p Primitive))) func(*tcell.EventKey, func(p Primitive)) { + return func(event *tcell.EventKey, setFocus func(p Primitive)) { + if b.inputCapture != nil { + event = b.inputCapture(event) + } + if event != nil && inputHandler != nil { + inputHandler(event, setFocus) + } + } +} + +// InputHandler returns nil. +func (b *Box) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return b.WrapInputHandler(nil) +} + +// SetInputCapture installs a function which captures key events before they are +// forwarded to the primitive's default key event handler. This function can +// then choose to forward that key event (or a different one) to the default +// handler by returning it. If nil is returned, the default handler will not +// be called. +// +// Providing a nil handler will remove a previously existing handler. +// +// Note that this function will not have an effect on primitives composed of +// other primitives, such as Form, Flex, or Grid. Key events are only captured +// by the primitives that have focus (e.g. InputField) and only one primitive +// can have focus at a time. Composing primitives such as Form pass the focus on +// to their contained primitives and thus never receive any key events +// themselves. Therefore, they cannot intercept key events. +func (b *Box) SetInputCapture(capture func(event *tcell.EventKey) *tcell.EventKey) *Box { + b.inputCapture = capture + return b +} + +// GetInputCapture returns the function installed with SetInputCapture() or nil +// if no such function has been installed. +func (b *Box) GetInputCapture() func(event *tcell.EventKey) *tcell.EventKey { + return b.inputCapture +} + +// WrapMouseHandler wraps a mouse event handler (see MouseHandler()) with the +// functionality to capture mouse events (see SetMouseCapture()) before passing +// them on to the provided (default) event handler. +// +// This is only meant to be used by subclassing primitives. +func (b *Box) WrapMouseHandler(mouseHandler func(MouseAction, *tcell.EventMouse, func(p Primitive)) (bool, Primitive)) func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if b.mouseCapture != nil { + action, event = b.mouseCapture(action, event) + } + if event != nil && mouseHandler != nil { + consumed, capture = mouseHandler(action, event, setFocus) + } + return + } +} + +// MouseHandler returns nil. +func (b *Box) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return b.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if action == MouseLeftClick && b.InRect(event.Position()) { + setFocus(b) + consumed = true + } + return + }) +} + +// SetMouseCapture sets a function which captures mouse events (consisting of +// the original tcell mouse event and the semantic mouse action) before they are +// forwarded to the primitive's default mouse event handler. This function can +// then choose to forward that event (or a different one) by returning it or +// returning a nil mouse event, in which case the default handler will not be +// called. +// +// Providing a nil handler will remove a previously existing handler. +func (b *Box) SetMouseCapture(capture func(action MouseAction, event *tcell.EventMouse) (MouseAction, *tcell.EventMouse)) *Box { + b.mouseCapture = capture + return b +} + +// InRect returns true if the given coordinate is within the bounds of the box's +// rectangle. +func (b *Box) InRect(x, y int) bool { + rectX, rectY, width, height := b.GetRect() + return x >= rectX && x < rectX+width && y >= rectY && y < rectY+height +} + +// GetMouseCapture returns the function installed with SetMouseCapture() or nil +// if no such function has been installed. +func (b *Box) GetMouseCapture() func(action MouseAction, event *tcell.EventMouse) (MouseAction, *tcell.EventMouse) { + return b.mouseCapture +} + +// SetBackgroundColor sets the box's background color. +func (b *Box) SetBackgroundColor(color tcell.Color) *Box { + b.backgroundColor = color + return b +} + +// SetBorder sets the flag indicating whether or not the box should have a +// border. +func (b *Box) SetBorder(show bool) *Box { + b.border = show + return b +} + +// SetBorderColor sets the box's border color. +func (b *Box) SetBorderColor(color tcell.Color) *Box { + b.borderColor = color + return b +} + +// SetBorderAttributes sets the border's style attributes. You can combine +// different attributes using bitmask operations: +// +// box.SetBorderAttributes(tcell.AttrUnderline | tcell.AttrBold) +func (b *Box) SetBorderAttributes(attr tcell.AttrMask) *Box { + b.borderAttributes = attr + return b +} + +// GetBorderAttributes returns the border's style attributes. +func (b *Box) GetBorderAttributes() tcell.AttrMask { + return b.borderAttributes +} + +// GetBorderColor returns the box's border color. +func (b *Box) GetBorderColor() tcell.Color { + return b.borderColor +} + +// GetBackgroundColor returns the box's background color. +func (b *Box) GetBackgroundColor() tcell.Color { + return b.backgroundColor +} + +// SetTitle sets the box's title. +func (b *Box) SetTitle(title string) *Box { + b.title = title + return b +} + +// GetTitle returns the box's current title. +func (b *Box) GetTitle() string { + return b.title +} + +// SetTitleColor sets the box's title color. +func (b *Box) SetTitleColor(color tcell.Color) *Box { + b.titleColor = color + return b +} + +// SetTitleAlign sets the alignment of the title, one of AlignLeft, AlignCenter, +// or AlignRight. +func (b *Box) SetTitleAlign(align int) *Box { + b.titleAlign = align + return b +} + +// Draw draws this primitive onto the screen. +func (b *Box) Draw(screen tcell.Screen) { + // Don't draw anything if there is no space. + if b.width <= 0 || b.height <= 0 { + return + } + + def := tcell.StyleDefault + + // Fill background. + background := def.Background(b.backgroundColor) + if b.backgroundColor != tcell.ColorDefault { + for y := b.y; y < b.y+b.height; y++ { + for x := b.x; x < b.x+b.width; x++ { + screen.SetContent(x, y, ' ', nil, background) + } + } + } + + // Draw border. + if b.border && b.width >= 2 && b.height >= 2 { + border := background.Foreground(b.borderColor) | tcell.Style(b.borderAttributes) + var vertical, horizontal, topLeft, topRight, bottomLeft, bottomRight rune + if b.focus.HasFocus() { + horizontal = Borders.HorizontalFocus + vertical = Borders.VerticalFocus + topLeft = Borders.TopLeftFocus + topRight = Borders.TopRightFocus + bottomLeft = Borders.BottomLeftFocus + bottomRight = Borders.BottomRightFocus + } else { + horizontal = Borders.Horizontal + vertical = Borders.Vertical + topLeft = Borders.TopLeft + topRight = Borders.TopRight + bottomLeft = Borders.BottomLeft + bottomRight = Borders.BottomRight + } + for x := b.x + 1; x < b.x+b.width-1; x++ { + screen.SetContent(x, b.y, horizontal, nil, border) + screen.SetContent(x, b.y+b.height-1, horizontal, nil, border) + } + for y := b.y + 1; y < b.y+b.height-1; y++ { + screen.SetContent(b.x, y, vertical, nil, border) + screen.SetContent(b.x+b.width-1, y, vertical, nil, border) + } + screen.SetContent(b.x, b.y, topLeft, nil, border) + screen.SetContent(b.x+b.width-1, b.y, topRight, nil, border) + screen.SetContent(b.x, b.y+b.height-1, bottomLeft, nil, border) + screen.SetContent(b.x+b.width-1, b.y+b.height-1, bottomRight, nil, border) + + // Draw title. + if b.title != "" && b.width >= 4 { + printed, _ := Print(screen, b.title, b.x+1, b.y, b.width-2, b.titleAlign, b.titleColor) + if len(b.title)-printed > 0 && printed > 0 { + _, _, style, _ := screen.GetContent(b.x+b.width-2, b.y) + fg, _, _ := style.Decompose() + Print(screen, string(SemigraphicsHorizontalEllipsis), b.x+b.width-2, b.y, 1, AlignLeft, fg) + } + } + } + + // Call custom draw function. + if b.draw != nil { + b.innerX, b.innerY, b.innerWidth, b.innerHeight = b.draw(screen, b.x, b.y, b.width, b.height) + } else { + // Remember the inner rect. + b.innerX = -1 + b.innerX, b.innerY, b.innerWidth, b.innerHeight = b.GetInnerRect() + } +} + +// Focus is called when this primitive receives focus. +func (b *Box) Focus(delegate func(p Primitive)) { + b.hasFocus = true +} + +// Blur is called when this primitive loses focus. +func (b *Box) Blur() { + b.hasFocus = false +} + +// HasFocus returns whether or not this primitive has focus. +func (b *Box) HasFocus() bool { + return b.hasFocus +} + +// GetFocusable returns the item's Focusable. +func (b *Box) GetFocusable() Focusable { + return b.focus +} diff --git a/vendor/github.com/rivo/tview/button.go b/vendor/github.com/rivo/tview/button.go new file mode 100644 index 0000000..fd7c234 --- /dev/null +++ b/vendor/github.com/rivo/tview/button.go @@ -0,0 +1,157 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Button is labeled box that triggers an action when selected. +// +// See https://github.com/rivo/tview/wiki/Button for an example. +type Button struct { + *Box + + // The text to be displayed before the input area. + label string + + // The label color. + labelColor tcell.Color + + // The label color when the button is in focus. + labelColorActivated tcell.Color + + // The background color when the button is in focus. + backgroundColorActivated tcell.Color + + // An optional function which is called when the button was selected. + selected func() + + // An optional function which is called when the user leaves the button. A + // key is provided indicating which key was pressed to leave (tab or backtab). + blur func(tcell.Key) +} + +// NewButton returns a new input field. +func NewButton(label string) *Button { + box := NewBox().SetBackgroundColor(Styles.ContrastBackgroundColor) + box.SetRect(0, 0, TaggedStringWidth(label)+4, 1) + return &Button{ + Box: box, + label: label, + labelColor: Styles.PrimaryTextColor, + labelColorActivated: Styles.InverseTextColor, + backgroundColorActivated: Styles.PrimaryTextColor, + } +} + +// SetLabel sets the button text. +func (b *Button) SetLabel(label string) *Button { + b.label = label + return b +} + +// GetLabel returns the button text. +func (b *Button) GetLabel() string { + return b.label +} + +// SetLabelColor sets the color of the button text. +func (b *Button) SetLabelColor(color tcell.Color) *Button { + b.labelColor = color + return b +} + +// SetLabelColorActivated sets the color of the button text when the button is +// in focus. +func (b *Button) SetLabelColorActivated(color tcell.Color) *Button { + b.labelColorActivated = color + return b +} + +// SetBackgroundColorActivated sets the background color of the button text when +// the button is in focus. +func (b *Button) SetBackgroundColorActivated(color tcell.Color) *Button { + b.backgroundColorActivated = color + return b +} + +// SetSelectedFunc sets a handler which is called when the button was selected. +func (b *Button) SetSelectedFunc(handler func()) *Button { + b.selected = handler + return b +} + +// SetBlurFunc sets a handler which is called when the user leaves the button. +// The callback function is provided with the key that was pressed, which is one +// of the following: +// +// - KeyEscape: Leaving the button with no specific direction. +// - KeyTab: Move to the next field. +// - KeyBacktab: Move to the previous field. +func (b *Button) SetBlurFunc(handler func(key tcell.Key)) *Button { + b.blur = handler + return b +} + +// Draw draws this primitive onto the screen. +func (b *Button) Draw(screen tcell.Screen) { + // Draw the box. + borderColor := b.borderColor + backgroundColor := b.backgroundColor + if b.focus.HasFocus() { + b.backgroundColor = b.backgroundColorActivated + b.borderColor = b.labelColorActivated + defer func() { + b.borderColor = borderColor + }() + } + b.Box.Draw(screen) + b.backgroundColor = backgroundColor + + // Draw label. + x, y, width, height := b.GetInnerRect() + if width > 0 && height > 0 { + y = y + height/2 + labelColor := b.labelColor + if b.focus.HasFocus() { + labelColor = b.labelColorActivated + } + Print(screen, b.label, x, y, width, AlignCenter, labelColor) + } +} + +// InputHandler returns the handler for this primitive. +func (b *Button) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return b.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + // Process key event. + switch key := event.Key(); key { + case tcell.KeyEnter: // Selected. + if b.selected != nil { + b.selected() + } + case tcell.KeyBacktab, tcell.KeyTab, tcell.KeyEscape: // Leave. No action. + if b.blur != nil { + b.blur(key) + } + } + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (b *Button) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return b.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !b.InRect(event.Position()) { + return false, nil + } + + // Process mouse event. + if action == MouseLeftClick { + setFocus(b) + if b.selected != nil { + b.selected() + } + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/checkbox.go b/vendor/github.com/rivo/tview/checkbox.go new file mode 100644 index 0000000..7c4b505 --- /dev/null +++ b/vendor/github.com/rivo/tview/checkbox.go @@ -0,0 +1,226 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Checkbox implements a simple box for boolean values which can be checked and +// unchecked. +// +// See https://github.com/rivo/tview/wiki/Checkbox for an example. +type Checkbox struct { + *Box + + // Whether or not this box is checked. + checked bool + + // The text to be displayed before the input area. + label string + + // The screen width of the label area. A value of 0 means use the width of + // the label text. + labelWidth int + + // The label color. + labelColor tcell.Color + + // The background color of the input area. + fieldBackgroundColor tcell.Color + + // The text color of the input area. + fieldTextColor tcell.Color + + // An optional function which is called when the user changes the checked + // state of this checkbox. + changed func(checked bool) + + // An optional function which is called when the user indicated that they + // are done entering text. The key which was pressed is provided (tab, + // shift-tab, or escape). + done func(tcell.Key) + + // A callback function set by the Form class and called when the user leaves + // this form item. + finished func(tcell.Key) +} + +// NewCheckbox returns a new input field. +func NewCheckbox() *Checkbox { + return &Checkbox{ + Box: NewBox(), + labelColor: Styles.SecondaryTextColor, + fieldBackgroundColor: Styles.ContrastBackgroundColor, + fieldTextColor: Styles.PrimaryTextColor, + } +} + +// SetChecked sets the state of the checkbox. +func (c *Checkbox) SetChecked(checked bool) *Checkbox { + c.checked = checked + return c +} + +// IsChecked returns whether or not the box is checked. +func (c *Checkbox) IsChecked() bool { + return c.checked +} + +// SetLabel sets the text to be displayed before the input area. +func (c *Checkbox) SetLabel(label string) *Checkbox { + c.label = label + return c +} + +// GetLabel returns the text to be displayed before the input area. +func (c *Checkbox) GetLabel() string { + return c.label +} + +// SetLabelWidth sets the screen width of the label. A value of 0 will cause the +// primitive to use the width of the label string. +func (c *Checkbox) SetLabelWidth(width int) *Checkbox { + c.labelWidth = width + return c +} + +// SetLabelColor sets the color of the label. +func (c *Checkbox) SetLabelColor(color tcell.Color) *Checkbox { + c.labelColor = color + return c +} + +// SetFieldBackgroundColor sets the background color of the input area. +func (c *Checkbox) SetFieldBackgroundColor(color tcell.Color) *Checkbox { + c.fieldBackgroundColor = color + return c +} + +// SetFieldTextColor sets the text color of the input area. +func (c *Checkbox) SetFieldTextColor(color tcell.Color) *Checkbox { + c.fieldTextColor = color + return c +} + +// SetFormAttributes sets attributes shared by all form items. +func (c *Checkbox) SetFormAttributes(labelWidth int, labelColor, bgColor, fieldTextColor, fieldBgColor tcell.Color) FormItem { + c.labelWidth = labelWidth + c.labelColor = labelColor + c.backgroundColor = bgColor + c.fieldTextColor = fieldTextColor + c.fieldBackgroundColor = fieldBgColor + return c +} + +// GetFieldWidth returns this primitive's field width. +func (c *Checkbox) GetFieldWidth() int { + return 1 +} + +// SetChangedFunc sets a handler which is called when the checked state of this +// checkbox was changed by the user. The handler function receives the new +// state. +func (c *Checkbox) SetChangedFunc(handler func(checked bool)) *Checkbox { + c.changed = handler + return c +} + +// SetDoneFunc sets a handler which is called when the user is done using the +// checkbox. The callback function is provided with the key that was pressed, +// which is one of the following: +// +// - KeyEscape: Abort text input. +// - KeyTab: Move to the next field. +// - KeyBacktab: Move to the previous field. +func (c *Checkbox) SetDoneFunc(handler func(key tcell.Key)) *Checkbox { + c.done = handler + return c +} + +// SetFinishedFunc sets a callback invoked when the user leaves this form item. +func (c *Checkbox) SetFinishedFunc(handler func(key tcell.Key)) FormItem { + c.finished = handler + return c +} + +// Draw draws this primitive onto the screen. +func (c *Checkbox) Draw(screen tcell.Screen) { + c.Box.Draw(screen) + + // Prepare + x, y, width, height := c.GetInnerRect() + rightLimit := x + width + if height < 1 || rightLimit <= x { + return + } + + // Draw label. + if c.labelWidth > 0 { + labelWidth := c.labelWidth + if labelWidth > rightLimit-x { + labelWidth = rightLimit - x + } + Print(screen, c.label, x, y, labelWidth, AlignLeft, c.labelColor) + x += labelWidth + } else { + _, drawnWidth := Print(screen, c.label, x, y, rightLimit-x, AlignLeft, c.labelColor) + x += drawnWidth + } + + // Draw checkbox. + fieldStyle := tcell.StyleDefault.Background(c.fieldBackgroundColor).Foreground(c.fieldTextColor) + if c.focus.HasFocus() { + fieldStyle = fieldStyle.Background(c.fieldTextColor).Foreground(c.fieldBackgroundColor) + } + checkedRune := 'X' + if !c.checked { + checkedRune = ' ' + } + screen.SetContent(x, y, checkedRune, nil, fieldStyle) +} + +// InputHandler returns the handler for this primitive. +func (c *Checkbox) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return c.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + // Process key event. + switch key := event.Key(); key { + case tcell.KeyRune, tcell.KeyEnter: // Check. + if key == tcell.KeyRune && event.Rune() != ' ' { + break + } + c.checked = !c.checked + if c.changed != nil { + c.changed(c.checked) + } + case tcell.KeyTab, tcell.KeyBacktab, tcell.KeyEscape: // We're done. + if c.done != nil { + c.done(key) + } + if c.finished != nil { + c.finished(key) + } + } + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (c *Checkbox) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return c.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + x, y := event.Position() + _, rectY, _, _ := c.GetInnerRect() + if !c.InRect(x, y) { + return false, nil + } + + // Process mouse event. + if action == MouseLeftClick && y == rectY { + setFocus(c) + c.checked = !c.checked + if c.changed != nil { + c.changed(c.checked) + } + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/doc.go b/vendor/github.com/rivo/tview/doc.go new file mode 100644 index 0000000..4bceea2 --- /dev/null +++ b/vendor/github.com/rivo/tview/doc.go @@ -0,0 +1,180 @@ +/* +Package tview implements rich widgets for terminal based user interfaces. The +widgets provided with this package are useful for data exploration and data +entry. + +Widgets + +The package implements the following widgets: + + - TextView: A scrollable window that display multi-colored text. Text may also + be highlighted. + - Table: A scrollable display of tabular data. Table cells, rows, or columns + may also be highlighted. + - TreeView: A scrollable display for hierarchical data. Tree nodes can be + highlighted, collapsed, expanded, and more. + - List: A navigable text list with optional keyboard shortcuts. + - InputField: One-line input fields to enter text. + - DropDown: Drop-down selection fields. + - Checkbox: Selectable checkbox for boolean values. + - Button: Buttons which get activated when the user selects them. + - Form: Forms composed of input fields, drop down selections, checkboxes, and + buttons. + - Modal: A centered window with a text message and one or more buttons. + - Grid: A grid based layout manager. + - Flex: A Flexbox based layout manager. + - Pages: A page based layout manager. + +The package also provides Application which is used to poll the event queue and +draw widgets on screen. + +Hello World + +The following is a very basic example showing a box with the title "Hello, +world!": + + package main + + import ( + "github.com/rivo/tview" + ) + + func main() { + box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!") + if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil { + panic(err) + } + } + +First, we create a box primitive with a border and a title. Then we create an +application, set the box as its root primitive, and run the event loop. The +application exits when the application's Stop() function is called or when +Ctrl-C is pressed. + +If we have a primitive which consumes key presses, we call the application's +SetFocus() function to redirect all key presses to that primitive. Most +primitives then offer ways to install handlers that allow you to react to any +actions performed on them. + +More Demos + +You will find more demos in the "demos" subdirectory. It also contains a +presentation (written using tview) which gives an overview of the different +widgets and how they can be used. + +Colors + +Throughout this package, colors are specified using the tcell.Color type. +Functions such as tcell.GetColor(), tcell.NewHexColor(), and tcell.NewRGBColor() +can be used to create colors from W3C color names or RGB values. + +Almost all strings which are displayed can contain color tags. Color tags are +W3C color names or six hexadecimal digits following a hash tag, wrapped in +square brackets. Examples: + + This is a [red]warning[white]! + The sky is [#8080ff]blue[#ffffff]. + +A color tag changes the color of the characters following that color tag. This +applies to almost everything from box titles, list text, form item labels, to +table cells. In a TextView, this functionality has to be switched on explicitly. +See the TextView documentation for more information. + +Color tags may contain not just the foreground (text) color but also the +background color and additional flags. In fact, the full definition of a color +tag is as follows: + + [::] + +Each of the three fields can be left blank and trailing fields can be omitted. +(Empty square brackets "[]", however, are not considered color tags.) Colors +that are not specified will be left unchanged. A field with just a dash ("-") +means "reset to default". + +You can specify the following flags (some flags may not be supported by your +terminal): + + l: blink + b: bold + d: dim + r: reverse (switch foreground and background color) + u: underline + +Examples: + + [yellow]Yellow text + [yellow:red]Yellow text on red background + [:red]Red background, text color unchanged + [yellow::u]Yellow text underlined + [::bl]Bold, blinking text + [::-]Colors unchanged, flags reset + [-]Reset foreground color + [-:-:-]Reset everything + [:]No effect + []Not a valid color tag, will print square brackets as they are + +In the rare event that you want to display a string such as "[red]" or +"[#00ff1a]" without applying its effect, you need to put an opening square +bracket before the closing square bracket. Note that the text inside the +brackets will be matched less strictly than region or colors tags. I.e. any +character that may be used in color or region tags will be recognized. Examples: + + [red[] will be output as [red] + ["123"[] will be output as ["123"] + [#6aff00[[] will be output as [#6aff00[] + [a#"[[[] will be output as [a#"[[] + [] will be output as [] (see color tags above) + [[] will be output as [[] (not an escaped tag) + +You can use the Escape() function to insert brackets automatically where needed. + +Styles + +When primitives are instantiated, they are initialized with colors taken from +the global Styles variable. You may change this variable to adapt the look and +feel of the primitives to your preferred style. + +Unicode Support + +This package supports unicode characters including wide characters. + +Concurrency + +Many functions in this package are not thread-safe. For many applications, this +may not be an issue: If your code makes changes in response to key events, it +will execute in the main goroutine and thus will not cause any race conditions. + +If you access your primitives from other goroutines, however, you will need to +synchronize execution. The easiest way to do this is to call +Application.QueueUpdate() or Application.QueueUpdateDraw() (see the function +documentation for details): + + go func() { + app.QueueUpdateDraw(func() { + table.SetCellSimple(0, 0, "Foo bar") + }) + }() + +One exception to this is the io.Writer interface implemented by TextView. You +can safely write to a TextView from any goroutine. See the TextView +documentation for details. + +You can also call Application.Draw() from any goroutine without having to wrap +it in QueueUpdate(). And, as mentioned above, key event callbacks are executed +in the main goroutine and thus should not use QueueUpdate() as that may lead to +deadlocks. + +Type Hierarchy + +All widgets listed above contain the Box type. All of Box's functions are +therefore available for all widgets, too. + +All widgets also implement the Primitive interface. There is also the Focusable +interface which is used to override functions in subclassing types. + +The tview package is based on https://github.com/gdamore/tcell. It uses types +and constants from that package (e.g. colors and keyboard values). + +This package does not process mouse input (yet). +*/ +package tview diff --git a/vendor/github.com/rivo/tview/dropdown.go b/vendor/github.com/rivo/tview/dropdown.go new file mode 100644 index 0000000..4e54e4b --- /dev/null +++ b/vendor/github.com/rivo/tview/dropdown.go @@ -0,0 +1,555 @@ +package tview + +import ( + "strings" + + "github.com/gdamore/tcell" +) + +// dropDownOption is one option that can be selected in a drop-down primitive. +type dropDownOption struct { + Text string // The text to be displayed in the drop-down. + Selected func() // The (optional) callback for when this option was selected. +} + +// DropDown implements a selection widget whose options become visible in a +// drop-down list when activated. +// +// See https://github.com/rivo/tview/wiki/DropDown for an example. +type DropDown struct { + *Box + + // The options from which the user can choose. + options []*dropDownOption + + // Strings to be placed before and after each drop-down option. + optionPrefix, optionSuffix string + + // The index of the currently selected option. Negative if no option is + // currently selected. + currentOption int + + // Strings to be placed beefore and after the current option. + currentOptionPrefix, currentOptionSuffix string + + // The text to be displayed when no option has yet been selected. + noSelection string + + // Set to true if the options are visible and selectable. + open bool + + // The runes typed so far to directly access one of the list items. + prefix string + + // The list element for the options. + list *List + + // The text to be displayed before the input area. + label string + + // The label color. + labelColor tcell.Color + + // The background color of the input area. + fieldBackgroundColor tcell.Color + + // The text color of the input area. + fieldTextColor tcell.Color + + // The color for prefixes. + prefixTextColor tcell.Color + + // The screen width of the label area. A value of 0 means use the width of + // the label text. + labelWidth int + + // The screen width of the input area. A value of 0 means extend as much as + // possible. + fieldWidth int + + // An optional function which is called when the user indicated that they + // are done selecting options. The key which was pressed is provided (tab, + // shift-tab, or escape). + done func(tcell.Key) + + // A callback function set by the Form class and called when the user leaves + // this form item. + finished func(tcell.Key) + + // A callback function which is called when the user changes the drop-down's + // selection. + selected func(text string, index int) + + dragging bool // Set to true when mouse dragging is in progress. +} + +// NewDropDown returns a new drop-down. +func NewDropDown() *DropDown { + list := NewList() + list.ShowSecondaryText(false). + SetMainTextColor(Styles.PrimitiveBackgroundColor). + SetSelectedTextColor(Styles.PrimitiveBackgroundColor). + SetSelectedBackgroundColor(Styles.PrimaryTextColor). + SetHighlightFullLine(true). + SetBackgroundColor(Styles.MoreContrastBackgroundColor) + + d := &DropDown{ + Box: NewBox(), + currentOption: -1, + list: list, + labelColor: Styles.SecondaryTextColor, + fieldBackgroundColor: Styles.ContrastBackgroundColor, + fieldTextColor: Styles.PrimaryTextColor, + prefixTextColor: Styles.ContrastSecondaryTextColor, + } + + d.focus = d + + return d +} + +// SetCurrentOption sets the index of the currently selected option. This may +// be a negative value to indicate that no option is currently selected. Calling +// this function will also trigger the "selected" callback (if there is one). +func (d *DropDown) SetCurrentOption(index int) *DropDown { + if index >= 0 && index < len(d.options) { + d.currentOption = index + d.list.SetCurrentItem(index) + if d.selected != nil { + d.selected(d.options[index].Text, index) + } + if d.options[index].Selected != nil { + d.options[index].Selected() + } + } else { + d.currentOption = -1 + d.list.SetCurrentItem(0) // Set to 0 because -1 means "last item". + if d.selected != nil { + d.selected("", -1) + } + } + return d +} + +// GetCurrentOption returns the index of the currently selected option as well +// as its text. If no option was selected, -1 and an empty string is returned. +func (d *DropDown) GetCurrentOption() (int, string) { + var text string + if d.currentOption >= 0 && d.currentOption < len(d.options) { + text = d.options[d.currentOption].Text + } + return d.currentOption, text +} + +// SetTextOptions sets the text to be placed before and after each drop-down +// option (prefix/suffix), the text placed before and after the currently +// selected option (currentPrefix/currentSuffix) as well as the text to be +// displayed when no option is currently selected. Per default, all of these +// strings are empty. +func (d *DropDown) SetTextOptions(prefix, suffix, currentPrefix, currentSuffix, noSelection string) *DropDown { + d.currentOptionPrefix = currentPrefix + d.currentOptionSuffix = currentSuffix + d.noSelection = noSelection + d.optionPrefix = prefix + d.optionSuffix = suffix + for index := 0; index < d.list.GetItemCount(); index++ { + d.list.SetItemText(index, prefix+d.options[index].Text+suffix, "") + } + return d +} + +// SetLabel sets the text to be displayed before the input area. +func (d *DropDown) SetLabel(label string) *DropDown { + d.label = label + return d +} + +// GetLabel returns the text to be displayed before the input area. +func (d *DropDown) GetLabel() string { + return d.label +} + +// SetLabelWidth sets the screen width of the label. A value of 0 will cause the +// primitive to use the width of the label string. +func (d *DropDown) SetLabelWidth(width int) *DropDown { + d.labelWidth = width + return d +} + +// SetLabelColor sets the color of the label. +func (d *DropDown) SetLabelColor(color tcell.Color) *DropDown { + d.labelColor = color + return d +} + +// SetFieldBackgroundColor sets the background color of the options area. +func (d *DropDown) SetFieldBackgroundColor(color tcell.Color) *DropDown { + d.fieldBackgroundColor = color + return d +} + +// SetFieldTextColor sets the text color of the options area. +func (d *DropDown) SetFieldTextColor(color tcell.Color) *DropDown { + d.fieldTextColor = color + return d +} + +// SetPrefixTextColor sets the color of the prefix string. The prefix string is +// shown when the user starts typing text, which directly selects the first +// option that starts with the typed string. +func (d *DropDown) SetPrefixTextColor(color tcell.Color) *DropDown { + d.prefixTextColor = color + return d +} + +// SetFormAttributes sets attributes shared by all form items. +func (d *DropDown) SetFormAttributes(labelWidth int, labelColor, bgColor, fieldTextColor, fieldBgColor tcell.Color) FormItem { + d.labelWidth = labelWidth + d.labelColor = labelColor + d.backgroundColor = bgColor + d.fieldTextColor = fieldTextColor + d.fieldBackgroundColor = fieldBgColor + return d +} + +// SetFieldWidth sets the screen width of the options area. A value of 0 means +// extend to as long as the longest option text. +func (d *DropDown) SetFieldWidth(width int) *DropDown { + d.fieldWidth = width + return d +} + +// GetFieldWidth returns this primitive's field screen width. +func (d *DropDown) GetFieldWidth() int { + if d.fieldWidth > 0 { + return d.fieldWidth + } + fieldWidth := 0 + for _, option := range d.options { + width := TaggedStringWidth(option.Text) + if width > fieldWidth { + fieldWidth = width + } + } + return fieldWidth +} + +// AddOption adds a new selectable option to this drop-down. The "selected" +// callback is called when this option was selected. It may be nil. +func (d *DropDown) AddOption(text string, selected func()) *DropDown { + d.options = append(d.options, &dropDownOption{Text: text, Selected: selected}) + d.list.AddItem(d.optionPrefix+text+d.optionSuffix, "", 0, nil) + return d +} + +// SetOptions replaces all current options with the ones provided and installs +// one callback function which is called when one of the options is selected. +// It will be called with the option's text and its index into the options +// slice. The "selected" parameter may be nil. +func (d *DropDown) SetOptions(texts []string, selected func(text string, index int)) *DropDown { + d.list.Clear() + d.options = nil + for index, text := range texts { + func(t string, i int) { + d.AddOption(text, nil) + }(text, index) + } + d.selected = selected + return d +} + +// SetSelectedFunc sets a handler which is called when the user changes the +// drop-down's option. This handler will be called in addition and prior to +// an option's optional individual handler. The handler is provided with the +// selected option's text and index. If "no option" was selected, these values +// are an empty string and -1. +func (d *DropDown) SetSelectedFunc(handler func(text string, index int)) *DropDown { + d.selected = handler + return d +} + +// SetDoneFunc sets a handler which is called when the user is done selecting +// options. The callback function is provided with the key that was pressed, +// which is one of the following: +// +// - KeyEscape: Abort selection. +// - KeyTab: Move to the next field. +// - KeyBacktab: Move to the previous field. +func (d *DropDown) SetDoneFunc(handler func(key tcell.Key)) *DropDown { + d.done = handler + return d +} + +// SetFinishedFunc sets a callback invoked when the user leaves this form item. +func (d *DropDown) SetFinishedFunc(handler func(key tcell.Key)) FormItem { + d.finished = handler + return d +} + +// Draw draws this primitive onto the screen. +func (d *DropDown) Draw(screen tcell.Screen) { + d.Box.Draw(screen) + + // Prepare. + x, y, width, height := d.GetInnerRect() + rightLimit := x + width + if height < 1 || rightLimit <= x { + return + } + + // Draw label. + if d.labelWidth > 0 { + labelWidth := d.labelWidth + if labelWidth > rightLimit-x { + labelWidth = rightLimit - x + } + Print(screen, d.label, x, y, labelWidth, AlignLeft, d.labelColor) + x += labelWidth + } else { + _, drawnWidth := Print(screen, d.label, x, y, rightLimit-x, AlignLeft, d.labelColor) + x += drawnWidth + } + + // What's the longest option text? + maxWidth := 0 + optionWrapWidth := TaggedStringWidth(d.optionPrefix + d.optionSuffix) + for _, option := range d.options { + strWidth := TaggedStringWidth(option.Text) + optionWrapWidth + if strWidth > maxWidth { + maxWidth = strWidth + } + } + + // Draw selection area. + fieldWidth := d.fieldWidth + if fieldWidth == 0 { + fieldWidth = maxWidth + if d.currentOption < 0 { + noSelectionWidth := TaggedStringWidth(d.noSelection) + if noSelectionWidth > fieldWidth { + fieldWidth = noSelectionWidth + } + } else if d.currentOption < len(d.options) { + currentOptionWidth := TaggedStringWidth(d.currentOptionPrefix + d.options[d.currentOption].Text + d.currentOptionSuffix) + if currentOptionWidth > fieldWidth { + fieldWidth = currentOptionWidth + } + } + } + if rightLimit-x < fieldWidth { + fieldWidth = rightLimit - x + } + fieldStyle := tcell.StyleDefault.Background(d.fieldBackgroundColor) + if d.GetFocusable().HasFocus() && !d.open { + fieldStyle = fieldStyle.Background(d.fieldTextColor) + } + for index := 0; index < fieldWidth; index++ { + screen.SetContent(x+index, y, ' ', nil, fieldStyle) + } + + // Draw selected text. + if d.open && len(d.prefix) > 0 { + // Show the prefix. + currentOptionPrefixWidth := TaggedStringWidth(d.currentOptionPrefix) + prefixWidth := stringWidth(d.prefix) + listItemText := d.options[d.list.GetCurrentItem()].Text + Print(screen, d.currentOptionPrefix, x, y, fieldWidth, AlignLeft, d.fieldTextColor) + Print(screen, d.prefix, x+currentOptionPrefixWidth, y, fieldWidth-currentOptionPrefixWidth, AlignLeft, d.prefixTextColor) + if len(d.prefix) < len(listItemText) { + Print(screen, listItemText[len(d.prefix):]+d.currentOptionSuffix, x+prefixWidth+currentOptionPrefixWidth, y, fieldWidth-prefixWidth-currentOptionPrefixWidth, AlignLeft, d.fieldTextColor) + } + } else { + color := d.fieldTextColor + text := d.noSelection + if d.currentOption >= 0 && d.currentOption < len(d.options) { + text = d.currentOptionPrefix + d.options[d.currentOption].Text + d.currentOptionSuffix + } + // Just show the current selection. + if d.GetFocusable().HasFocus() && !d.open { + color = d.fieldBackgroundColor + } + Print(screen, text, x, y, fieldWidth, AlignLeft, color) + } + + // Draw options list. + if d.HasFocus() && d.open { + // We prefer to drop down but if there is no space, maybe drop up? + lx := x + ly := y + 1 + lwidth := maxWidth + lheight := len(d.options) + _, sheight := screen.Size() + if ly+lheight >= sheight && ly-2 > lheight-ly { + ly = y - lheight + if ly < 0 { + ly = 0 + } + } + if ly+lheight >= sheight { + lheight = sheight - ly + } + d.list.SetRect(lx, ly, lwidth, lheight) + d.list.Draw(screen) + } +} + +// InputHandler returns the handler for this primitive. +func (d *DropDown) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return d.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + // If the list has focus, let it process its own key events. + if d.list.GetFocusable().HasFocus() { + if handler := d.list.InputHandler(); handler != nil { + handler(event, setFocus) + } + return + } + + // Process key event. + switch key := event.Key(); key { + case tcell.KeyEnter, tcell.KeyRune, tcell.KeyDown: + d.prefix = "" + + // If the first key was a letter already, it becomes part of the prefix. + if r := event.Rune(); key == tcell.KeyRune && r != ' ' { + d.prefix += string(r) + d.evalPrefix() + } + + d.openList(setFocus) + case tcell.KeyEscape, tcell.KeyTab, tcell.KeyBacktab: + if d.done != nil { + d.done(key) + } + if d.finished != nil { + d.finished(key) + } + } + }) +} + +// evalPrefix selects an item in the drop-down list based on the current prefix. +func (d *DropDown) evalPrefix() { + if len(d.prefix) > 0 { + for index, option := range d.options { + if strings.HasPrefix(strings.ToLower(option.Text), d.prefix) { + d.list.SetCurrentItem(index) + return + } + } + + // Prefix does not match any item. Remove last rune. + r := []rune(d.prefix) + d.prefix = string(r[:len(r)-1]) + } +} + +// openList hands control over to the embedded List primitive. +func (d *DropDown) openList(setFocus func(Primitive)) { + d.open = true + optionBefore := d.currentOption + + d.list.SetSelectedFunc(func(index int, mainText, secondaryText string, shortcut rune) { + if d.dragging { + return // If we're dragging the mouse, we don't want to trigger any events. + } + + // An option was selected. Close the list again. + d.currentOption = index + d.closeList(setFocus) + + // Trigger "selected" event. + if d.selected != nil { + d.selected(d.options[d.currentOption].Text, d.currentOption) + } + if d.options[d.currentOption].Selected != nil { + d.options[d.currentOption].Selected() + } + }).SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + if event.Key() == tcell.KeyRune { + d.prefix += string(event.Rune()) + d.evalPrefix() + } else if event.Key() == tcell.KeyBackspace || event.Key() == tcell.KeyBackspace2 { + if len(d.prefix) > 0 { + r := []rune(d.prefix) + d.prefix = string(r[:len(r)-1]) + } + d.evalPrefix() + } else if event.Key() == tcell.KeyEscape { + d.currentOption = optionBefore + d.closeList(setFocus) + } else { + d.prefix = "" + } + + return event + }) + + setFocus(d.list) +} + +// closeList closes the embedded List element by hiding it and removing focus +// from it. +func (d *DropDown) closeList(setFocus func(Primitive)) { + d.open = false + if d.list.HasFocus() { + setFocus(d) + } +} + +// Focus is called by the application when the primitive receives focus. +func (d *DropDown) Focus(delegate func(p Primitive)) { + d.Box.Focus(delegate) + if d.open { + delegate(d.list) + } +} + +// HasFocus returns whether or not this primitive has focus. +func (d *DropDown) HasFocus() bool { + if d.open { + return d.list.HasFocus() + } + return d.hasFocus +} + +// MouseHandler returns the mouse handler for this primitive. +func (d *DropDown) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return d.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + // Was the mouse event in the drop-down box itself (or on its label)? + x, y := event.Position() + _, rectY, _, _ := d.GetInnerRect() + inRect := y == rectY + if !d.open && !inRect { + return d.InRect(x, y), nil // No, and it's not expanded either. Ignore. + } + + // Handle dragging. Clicks are implicitly handled by this logic. + switch action { + case MouseLeftDown: + consumed = d.open || inRect + capture = d + if !d.open { + d.openList(setFocus) + d.dragging = true + } else if consumed, _ := d.list.MouseHandler()(MouseLeftClick, event, setFocus); !consumed { + d.closeList(setFocus) // Close drop-down if clicked outside of it. + } + case MouseMove: + if d.dragging { + // We pretend it's a left click so we can see the selection during + // dragging. Because we don't act upon it, it's not a problem. + d.list.MouseHandler()(MouseLeftClick, event, setFocus) + consumed = true + capture = d + } + case MouseLeftUp: + if d.dragging { + d.dragging = false + d.list.MouseHandler()(MouseLeftClick, event, setFocus) + consumed = true + } + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/flex.go b/vendor/github.com/rivo/tview/flex.go new file mode 100644 index 0000000..20e26a5 --- /dev/null +++ b/vendor/github.com/rivo/tview/flex.go @@ -0,0 +1,239 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Configuration values. +const ( + FlexRow = iota + FlexColumn +) + +// flexItem holds layout options for one item. +type flexItem struct { + Item Primitive // The item to be positioned. May be nil for an empty item. + FixedSize int // The item's fixed size which may not be changed, 0 if it has no fixed size. + Proportion int // The item's proportion. + Focus bool // Whether or not this item attracts the layout's focus. +} + +// Flex is a basic implementation of the Flexbox layout. The contained +// primitives are arranged horizontally or vertically. The way they are +// distributed along that dimension depends on their layout settings, which is +// either a fixed length or a proportional length. See AddItem() for details. +// +// See https://github.com/rivo/tview/wiki/Flex for an example. +type Flex struct { + *Box + + // The items to be positioned. + items []*flexItem + + // FlexRow or FlexColumn. + direction int + + // If set to true, Flex will use the entire screen as its available space + // instead its box dimensions. + fullScreen bool +} + +// NewFlex returns a new flexbox layout container with no primitives and its +// direction set to FlexColumn. To add primitives to this layout, see AddItem(). +// To change the direction, see SetDirection(). +// +// Note that Box, the superclass of Flex, will have its background color set to +// transparent so that any nil flex items will leave their background unchanged. +// To clear a Flex's background before any items are drawn, set it to the +// desired color: +// +// flex.SetBackgroundColor(tview.Styles.PrimitiveBackgroundColor) +func NewFlex() *Flex { + f := &Flex{ + Box: NewBox().SetBackgroundColor(tcell.ColorDefault), + direction: FlexColumn, + } + f.focus = f + return f +} + +// SetDirection sets the direction in which the contained primitives are +// distributed. This can be either FlexColumn (default) or FlexRow. +func (f *Flex) SetDirection(direction int) *Flex { + f.direction = direction + return f +} + +// SetFullScreen sets the flag which, when true, causes the flex layout to use +// the entire screen space instead of whatever size it is currently assigned to. +func (f *Flex) SetFullScreen(fullScreen bool) *Flex { + f.fullScreen = fullScreen + return f +} + +// AddItem adds a new item to the container. The "fixedSize" argument is a width +// or height that may not be changed by the layout algorithm. A value of 0 means +// that its size is flexible and may be changed. The "proportion" argument +// defines the relative size of the item compared to other flexible-size items. +// For example, items with a proportion of 2 will be twice as large as items +// with a proportion of 1. The proportion must be at least 1 if fixedSize == 0 +// (ignored otherwise). +// +// If "focus" is set to true, the item will receive focus when the Flex +// primitive receives focus. If multiple items have the "focus" flag set to +// true, the first one will receive focus. +// +// You can provide a nil value for the primitive. This will still consume screen +// space but nothing will be drawn. +func (f *Flex) AddItem(item Primitive, fixedSize, proportion int, focus bool) *Flex { + f.items = append(f.items, &flexItem{Item: item, FixedSize: fixedSize, Proportion: proportion, Focus: focus}) + return f +} + +// RemoveItem removes all items for the given primitive from the container, +// keeping the order of the remaining items intact. +func (f *Flex) RemoveItem(p Primitive) *Flex { + for index := len(f.items) - 1; index >= 0; index-- { + if f.items[index].Item == p { + f.items = append(f.items[:index], f.items[index+1:]...) + } + } + return f +} + +// Clear removes all items from the container. +func (f *Flex) Clear() *Flex { + f.items = nil + return f +} + +// ResizeItem sets a new size for the item(s) with the given primitive. If there +// are multiple Flex items with the same primitive, they will all receive the +// same size. For details regarding the size parameters, see AddItem(). +func (f *Flex) ResizeItem(p Primitive, fixedSize, proportion int) *Flex { + for _, item := range f.items { + if item.Item == p { + item.FixedSize = fixedSize + item.Proportion = proportion + } + } + return f +} + +// Draw draws this primitive onto the screen. +func (f *Flex) Draw(screen tcell.Screen) { + f.Box.Draw(screen) + + // Calculate size and position of the items. + + // Do we use the entire screen? + if f.fullScreen { + width, height := screen.Size() + f.SetRect(0, 0, width, height) + } + + // How much space can we distribute? + x, y, width, height := f.GetInnerRect() + var proportionSum int + distSize := width + if f.direction == FlexRow { + distSize = height + } + for _, item := range f.items { + if item.FixedSize > 0 { + distSize -= item.FixedSize + } else { + proportionSum += item.Proportion + } + } + + // Calculate positions and draw items. + pos := x + if f.direction == FlexRow { + pos = y + } + for _, item := range f.items { + size := item.FixedSize + if size <= 0 { + if proportionSum > 0 { + size = distSize * item.Proportion / proportionSum + distSize -= size + proportionSum -= item.Proportion + } else { + size = 0 + } + } + if item.Item != nil { + if f.direction == FlexColumn { + item.Item.SetRect(pos, y, size, height) + } else { + item.Item.SetRect(x, pos, width, size) + } + } + pos += size + + if item.Item != nil { + if item.Item.GetFocusable().HasFocus() { + defer item.Item.Draw(screen) + } else { + item.Item.Draw(screen) + } + } + } +} + +// Focus is called when this primitive receives focus. +func (f *Flex) Focus(delegate func(p Primitive)) { + for _, item := range f.items { + if item.Item != nil && item.Focus { + delegate(item.Item) + return + } + } +} + +// HasFocus returns whether or not this primitive has focus. +func (f *Flex) HasFocus() bool { + for _, item := range f.items { + if item.Item != nil && item.Item.GetFocusable().HasFocus() { + return true + } + } + return false +} + +// MouseHandler returns the mouse handler for this primitive. +func (f *Flex) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return f.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !f.InRect(event.Position()) { + return false, nil + } + + // Pass mouse events along to the first child item that takes it. + for _, item := range f.items { + if item.Item == nil { + continue + } + consumed, capture = item.Item.MouseHandler()(action, event, setFocus) + if consumed { + return + } + } + + return + }) +} + +// InputHandler returns the handler for this primitive. +func (f *Flex) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return f.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + for _, item := range f.items { + if item.Item != nil && item.Item.GetFocusable().HasFocus() { + if handler := item.Item.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + } + }) +} diff --git a/vendor/github.com/rivo/tview/focusable.go b/vendor/github.com/rivo/tview/focusable.go new file mode 100644 index 0000000..99fdaaf --- /dev/null +++ b/vendor/github.com/rivo/tview/focusable.go @@ -0,0 +1,8 @@ +package tview + +// Focusable provides a method which determines if a primitive has focus. +// Composed primitives may be focused based on the focused state of their +// contained primitives. +type Focusable interface { + HasFocus() bool +} diff --git a/vendor/github.com/rivo/tview/form.go b/vendor/github.com/rivo/tview/form.go new file mode 100644 index 0000000..71b26c3 --- /dev/null +++ b/vendor/github.com/rivo/tview/form.go @@ -0,0 +1,686 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// DefaultFormFieldWidth is the default field screen width of form elements +// whose field width is flexible (0). This is used in the Form class for +// horizontal layouts. +var DefaultFormFieldWidth = 10 + +// FormItem is the interface all form items must implement to be able to be +// included in a form. +type FormItem interface { + Primitive + + // GetLabel returns the item's label text. + GetLabel() string + + // SetFormAttributes sets a number of item attributes at once. + SetFormAttributes(labelWidth int, labelColor, bgColor, fieldTextColor, fieldBgColor tcell.Color) FormItem + + // GetFieldWidth returns the width of the form item's field (the area which + // is manipulated by the user) in number of screen cells. A value of 0 + // indicates the the field width is flexible and may use as much space as + // required. + GetFieldWidth() int + + // SetFinishedFunc sets the handler function for when the user finished + // entering data into the item. The handler may receive events for the + // Enter key (we're done), the Escape key (cancel input), the Tab key (move to + // next field), and the Backtab key (move to previous field). + SetFinishedFunc(handler func(key tcell.Key)) FormItem +} + +// Form allows you to combine multiple one-line form elements into a vertical +// or horizontal layout. Form elements include types such as InputField or +// Checkbox. These elements can be optionally followed by one or more buttons +// for which you can define form-wide actions (e.g. Save, Clear, Cancel). +// +// See https://github.com/rivo/tview/wiki/Form for an example. +type Form struct { + *Box + + // The items of the form (one row per item). + items []FormItem + + // The buttons of the form. + buttons []*Button + + // If set to true, instead of position items and buttons from top to bottom, + // they are positioned from left to right. + horizontal bool + + // The alignment of the buttons. + buttonsAlign int + + // The number of empty rows between items. + itemPadding int + + // The index of the item or button which has focus. (Items are counted first, + // buttons are counted last.) This is only used when the form itself receives + // focus so that the last element that had focus keeps it. + focusedElement int + + // The label color. + labelColor tcell.Color + + // The background color of the input area. + fieldBackgroundColor tcell.Color + + // The text color of the input area. + fieldTextColor tcell.Color + + // The background color of the buttons. + buttonBackgroundColor tcell.Color + + // The color of the button text. + buttonTextColor tcell.Color + + // An optional function which is called when the user hits Escape. + cancel func() +} + +// NewForm returns a new form. +func NewForm() *Form { + box := NewBox().SetBorderPadding(1, 1, 1, 1) + + f := &Form{ + Box: box, + itemPadding: 1, + labelColor: Styles.SecondaryTextColor, + fieldBackgroundColor: Styles.ContrastBackgroundColor, + fieldTextColor: Styles.PrimaryTextColor, + buttonBackgroundColor: Styles.ContrastBackgroundColor, + buttonTextColor: Styles.PrimaryTextColor, + } + + f.focus = f + + return f +} + +// SetItemPadding sets the number of empty rows between form items for vertical +// layouts and the number of empty cells between form items for horizontal +// layouts. +func (f *Form) SetItemPadding(padding int) *Form { + f.itemPadding = padding + return f +} + +// SetHorizontal sets the direction the form elements are laid out. If set to +// true, instead of positioning them from top to bottom (the default), they are +// positioned from left to right, moving into the next row if there is not +// enough space. +func (f *Form) SetHorizontal(horizontal bool) *Form { + f.horizontal = horizontal + return f +} + +// SetLabelColor sets the color of the labels. +func (f *Form) SetLabelColor(color tcell.Color) *Form { + f.labelColor = color + return f +} + +// SetFieldBackgroundColor sets the background color of the input areas. +func (f *Form) SetFieldBackgroundColor(color tcell.Color) *Form { + f.fieldBackgroundColor = color + return f +} + +// SetFieldTextColor sets the text color of the input areas. +func (f *Form) SetFieldTextColor(color tcell.Color) *Form { + f.fieldTextColor = color + return f +} + +// SetButtonsAlign sets how the buttons align horizontally, one of AlignLeft +// (the default), AlignCenter, and AlignRight. This is only +func (f *Form) SetButtonsAlign(align int) *Form { + f.buttonsAlign = align + return f +} + +// SetButtonBackgroundColor sets the background color of the buttons. +func (f *Form) SetButtonBackgroundColor(color tcell.Color) *Form { + f.buttonBackgroundColor = color + return f +} + +// SetButtonTextColor sets the color of the button texts. +func (f *Form) SetButtonTextColor(color tcell.Color) *Form { + f.buttonTextColor = color + return f +} + +// SetFocus shifts the focus to the form element with the given index, counting +// non-button items first and buttons last. Note that this index is only used +// when the form itself receives focus. +func (f *Form) SetFocus(index int) *Form { + if index < 0 { + f.focusedElement = 0 + } else if index >= len(f.items)+len(f.buttons) { + f.focusedElement = len(f.items) + len(f.buttons) + } else { + f.focusedElement = index + } + return f +} + +// AddInputField adds an input field to the form. It has a label, an optional +// initial value, a field width (a value of 0 extends it as far as possible), +// an optional accept function to validate the item's value (set to nil to +// accept any text), and an (optional) callback function which is invoked when +// the input field's text has changed. +func (f *Form) AddInputField(label, value string, fieldWidth int, accept func(textToCheck string, lastChar rune) bool, changed func(text string)) *Form { + f.items = append(f.items, NewInputField(). + SetLabel(label). + SetText(value). + SetFieldWidth(fieldWidth). + SetAcceptanceFunc(accept). + SetChangedFunc(changed)) + return f +} + +// AddPasswordField adds a password field to the form. This is similar to an +// input field except that the user's input not shown. Instead, a "mask" +// character is displayed. The password field has a label, an optional initial +// value, a field width (a value of 0 extends it as far as possible), and an +// (optional) callback function which is invoked when the input field's text has +// changed. +func (f *Form) AddPasswordField(label, value string, fieldWidth int, mask rune, changed func(text string)) *Form { + if mask == 0 { + mask = '*' + } + f.items = append(f.items, NewInputField(). + SetLabel(label). + SetText(value). + SetFieldWidth(fieldWidth). + SetMaskCharacter(mask). + SetChangedFunc(changed)) + return f +} + +// AddDropDown adds a drop-down element to the form. It has a label, options, +// and an (optional) callback function which is invoked when an option was +// selected. The initial option may be a negative value to indicate that no +// option is currently selected. +func (f *Form) AddDropDown(label string, options []string, initialOption int, selected func(option string, optionIndex int)) *Form { + f.items = append(f.items, NewDropDown(). + SetLabel(label). + SetOptions(options, selected). + SetCurrentOption(initialOption)) + return f +} + +// AddCheckbox adds a checkbox to the form. It has a label, an initial state, +// and an (optional) callback function which is invoked when the state of the +// checkbox was changed by the user. +func (f *Form) AddCheckbox(label string, checked bool, changed func(checked bool)) *Form { + f.items = append(f.items, NewCheckbox(). + SetLabel(label). + SetChecked(checked). + SetChangedFunc(changed)) + return f +} + +// AddButton adds a new button to the form. The "selected" function is called +// when the user selects this button. It may be nil. +func (f *Form) AddButton(label string, selected func()) *Form { + f.buttons = append(f.buttons, NewButton(label).SetSelectedFunc(selected)) + return f +} + +// GetButton returns the button at the specified 0-based index. Note that +// buttons have been specially prepared for this form and modifying some of +// their attributes may have unintended side effects. +func (f *Form) GetButton(index int) *Button { + return f.buttons[index] +} + +// RemoveButton removes the button at the specified position, starting with 0 +// for the button that was added first. +func (f *Form) RemoveButton(index int) *Form { + f.buttons = append(f.buttons[:index], f.buttons[index+1:]...) + return f +} + +// GetButtonCount returns the number of buttons in this form. +func (f *Form) GetButtonCount() int { + return len(f.buttons) +} + +// GetButtonIndex returns the index of the button with the given label, starting +// with 0 for the button that was added first. If no such label was found, -1 +// is returned. +func (f *Form) GetButtonIndex(label string) int { + for index, button := range f.buttons { + if button.GetLabel() == label { + return index + } + } + return -1 +} + +// Clear removes all input elements from the form, including the buttons if +// specified. +func (f *Form) Clear(includeButtons bool) *Form { + f.items = nil + if includeButtons { + f.ClearButtons() + } + f.focusedElement = 0 + return f +} + +// ClearButtons removes all buttons from the form. +func (f *Form) ClearButtons() *Form { + f.buttons = nil + return f +} + +// AddFormItem adds a new item to the form. This can be used to add your own +// objects to the form. Note, however, that the Form class will override some +// of its attributes to make it work in the form context. Specifically, these +// are: +// +// - The label width +// - The label color +// - The background color +// - The field text color +// - The field background color +func (f *Form) AddFormItem(item FormItem) *Form { + f.items = append(f.items, item) + return f +} + +// GetFormItemCount returns the number of items in the form (not including the +// buttons). +func (f *Form) GetFormItemCount() int { + return len(f.items) +} + +// GetFormItem returns the form item at the given position, starting with index +// 0. Elements are referenced in the order they were added. Buttons are not +// included. +func (f *Form) GetFormItem(index int) FormItem { + return f.items[index] +} + +// RemoveFormItem removes the form element at the given position, starting with +// index 0. Elements are referenced in the order they were added. Buttons are +// not included. +func (f *Form) RemoveFormItem(index int) *Form { + f.items = append(f.items[:index], f.items[index+1:]...) + return f +} + +// GetFormItemByLabel returns the first form element with the given label. If +// no such element is found, nil is returned. Buttons are not searched and will +// therefore not be returned. +func (f *Form) GetFormItemByLabel(label string) FormItem { + for _, item := range f.items { + if item.GetLabel() == label { + return item + } + } + return nil +} + +// GetFormItemIndex returns the index of the first form element with the given +// label. If no such element is found, -1 is returned. Buttons are not searched +// and will therefore not be returned. +func (f *Form) GetFormItemIndex(label string) int { + for index, item := range f.items { + if item.GetLabel() == label { + return index + } + } + return -1 +} + +// GetFocusedItemIndex returns the indices of the form element or button which +// currently has focus. If they don't, -1 is returned resepectively. +func (f *Form) GetFocusedItemIndex() (formItem, button int) { + index := f.focusIndex() + if index < 0 { + return -1, -1 + } + if index < len(f.items) { + return index, -1 + } + return -1, index - len(f.items) +} + +// SetCancelFunc sets a handler which is called when the user hits the Escape +// key. +func (f *Form) SetCancelFunc(callback func()) *Form { + f.cancel = callback + return f +} + +// Draw draws this primitive onto the screen. +func (f *Form) Draw(screen tcell.Screen) { + f.Box.Draw(screen) + + // Determine the actual item that has focus. + if index := f.focusIndex(); index >= 0 { + f.focusedElement = index + } + + // Determine the dimensions. + x, y, width, height := f.GetInnerRect() + topLimit := y + bottomLimit := y + height + rightLimit := x + width + startX := x + + // Find the longest label. + var maxLabelWidth int + for _, item := range f.items { + labelWidth := TaggedStringWidth(item.GetLabel()) + if labelWidth > maxLabelWidth { + maxLabelWidth = labelWidth + } + } + maxLabelWidth++ // Add one space. + + // Calculate positions of form items. + positions := make([]struct{ x, y, width, height int }, len(f.items)+len(f.buttons)) + var focusedPosition struct{ x, y, width, height int } + for index, item := range f.items { + // Calculate the space needed. + labelWidth := TaggedStringWidth(item.GetLabel()) + var itemWidth int + if f.horizontal { + fieldWidth := item.GetFieldWidth() + if fieldWidth == 0 { + fieldWidth = DefaultFormFieldWidth + } + labelWidth++ + itemWidth = labelWidth + fieldWidth + } else { + // We want all fields to align vertically. + labelWidth = maxLabelWidth + itemWidth = width + } + + // Advance to next line if there is no space. + if f.horizontal && x+labelWidth+1 >= rightLimit { + x = startX + y += 2 + } + + // Adjust the item's attributes. + if x+itemWidth >= rightLimit { + itemWidth = rightLimit - x + } + item.SetFormAttributes( + labelWidth, + f.labelColor, + f.backgroundColor, + f.fieldTextColor, + f.fieldBackgroundColor, + ) + + // Save position. + positions[index].x = x + positions[index].y = y + positions[index].width = itemWidth + positions[index].height = 1 + if item.GetFocusable().HasFocus() { + focusedPosition = positions[index] + } + + // Advance to next item. + if f.horizontal { + x += itemWidth + f.itemPadding + } else { + y += 1 + f.itemPadding + } + } + + // How wide are the buttons? + buttonWidths := make([]int, len(f.buttons)) + buttonsWidth := 0 + for index, button := range f.buttons { + w := TaggedStringWidth(button.GetLabel()) + 4 + buttonWidths[index] = w + buttonsWidth += w + 1 + } + buttonsWidth-- + + // Where do we place them? + if !f.horizontal && x+buttonsWidth < rightLimit { + if f.buttonsAlign == AlignRight { + x = rightLimit - buttonsWidth + } else if f.buttonsAlign == AlignCenter { + x = (x + rightLimit - buttonsWidth) / 2 + } + + // In vertical layouts, buttons always appear after an empty line. + if f.itemPadding == 0 { + y++ + } + } + + // Calculate positions of buttons. + for index, button := range f.buttons { + space := rightLimit - x + buttonWidth := buttonWidths[index] + if f.horizontal { + if space < buttonWidth-4 { + x = startX + y += 2 + space = width + } + } else { + if space < 1 { + break // No space for this button anymore. + } + } + if buttonWidth > space { + buttonWidth = space + } + button.SetLabelColor(f.buttonTextColor). + SetLabelColorActivated(f.buttonBackgroundColor). + SetBackgroundColorActivated(f.buttonTextColor). + SetBackgroundColor(f.buttonBackgroundColor) + + buttonIndex := index + len(f.items) + positions[buttonIndex].x = x + positions[buttonIndex].y = y + positions[buttonIndex].width = buttonWidth + positions[buttonIndex].height = 1 + + if button.HasFocus() { + focusedPosition = positions[buttonIndex] + } + + x += buttonWidth + 1 + } + + // Determine vertical offset based on the position of the focused item. + var offset int + if focusedPosition.y+focusedPosition.height > bottomLimit { + offset = focusedPosition.y + focusedPosition.height - bottomLimit + if focusedPosition.y-offset < topLimit { + offset = focusedPosition.y - topLimit + } + } + + // Draw items. + for index, item := range f.items { + // Set position. + y := positions[index].y - offset + height := positions[index].height + item.SetRect(positions[index].x, y, positions[index].width, height) + + // Is this item visible? + if y+height <= topLimit || y >= bottomLimit { + continue + } + + // Draw items with focus last (in case of overlaps). + if item.GetFocusable().HasFocus() { + defer item.Draw(screen) + } else { + item.Draw(screen) + } + } + + // Draw buttons. + for index, button := range f.buttons { + // Set position. + buttonIndex := index + len(f.items) + y := positions[buttonIndex].y - offset + height := positions[buttonIndex].height + button.SetRect(positions[buttonIndex].x, y, positions[buttonIndex].width, height) + + // Is this button visible? + if y+height <= topLimit || y >= bottomLimit { + continue + } + + // Draw button. + button.Draw(screen) + } +} + +// Focus is called by the application when the primitive receives focus. +func (f *Form) Focus(delegate func(p Primitive)) { + if len(f.items)+len(f.buttons) == 0 { + f.hasFocus = true + return + } + f.hasFocus = false + + // Hand on the focus to one of our child elements. + if f.focusedElement < 0 || f.focusedElement >= len(f.items)+len(f.buttons) { + f.focusedElement = 0 + } + handler := func(key tcell.Key) { + switch key { + case tcell.KeyTab, tcell.KeyEnter: + f.focusedElement++ + f.Focus(delegate) + case tcell.KeyBacktab: + f.focusedElement-- + if f.focusedElement < 0 { + f.focusedElement = len(f.items) + len(f.buttons) - 1 + } + f.Focus(delegate) + case tcell.KeyEscape: + if f.cancel != nil { + f.cancel() + } else { + f.focusedElement = 0 + f.Focus(delegate) + } + } + } + + if f.focusedElement < len(f.items) { + // We're selecting an item. + item := f.items[f.focusedElement] + item.SetFinishedFunc(handler) + delegate(item) + } else { + // We're selecting a button. + button := f.buttons[f.focusedElement-len(f.items)] + button.SetBlurFunc(handler) + delegate(button) + } +} + +// HasFocus returns whether or not this primitive has focus. +func (f *Form) HasFocus() bool { + if f.hasFocus { + return true + } + return f.focusIndex() >= 0 +} + +// focusIndex returns the index of the currently focused item, counting form +// items first, then buttons. A negative value indicates that no containeed item +// has focus. +func (f *Form) focusIndex() int { + for index, item := range f.items { + if item.GetFocusable().HasFocus() { + return index + } + } + for index, button := range f.buttons { + if button.focus.HasFocus() { + return len(f.items) + index + } + } + return -1 +} + +// MouseHandler returns the mouse handler for this primitive. +func (f *Form) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return f.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !f.InRect(event.Position()) { + return false, nil + } + + // At the end, update f.focusedElement and prepare current item/button. + defer func() { + if consumed { + index := f.focusIndex() + if index >= 0 { + f.focusedElement = index + } + f.Focus(setFocus) + } + }() + + // Determine items to pass mouse events to. + for _, item := range f.items { + consumed, capture = item.MouseHandler()(action, event, setFocus) + if consumed { + return + } + } + for _, button := range f.buttons { + consumed, capture = button.MouseHandler()(action, event, setFocus) + if consumed { + return + } + } + + // A mouse click anywhere else will return the focus to the last selected + // element. + if action == MouseLeftClick { + consumed = true + } + + return + }) +} + +// InputHandler returns the handler for this primitive. +func (f *Form) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return f.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + for _, item := range f.items { + if item != nil && item.GetFocusable().HasFocus() { + if handler := item.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + } + + for _, button := range f.buttons { + if button.GetFocusable().HasFocus() { + if handler := button.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + } + }) +} diff --git a/vendor/github.com/rivo/tview/frame.go b/vendor/github.com/rivo/tview/frame.go new file mode 100644 index 0000000..eb8c900 --- /dev/null +++ b/vendor/github.com/rivo/tview/frame.go @@ -0,0 +1,198 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// frameText holds information about a line of text shown in the frame. +type frameText struct { + Text string // The text to be displayed. + Header bool // true = place in header, false = place in footer. + Align int // One of the Align constants. + Color tcell.Color // The text color. +} + +// Frame is a wrapper which adds space around another primitive. In addition, +// the top area (header) and the bottom area (footer) may also contain text. +// +// See https://github.com/rivo/tview/wiki/Frame for an example. +type Frame struct { + *Box + + // The contained primitive. May be nil. + primitive Primitive + + // The lines of text to be displayed. + text []*frameText + + // Border spacing. + top, bottom, header, footer, left, right int +} + +// NewFrame returns a new frame around the given primitive. The primitive's +// size will be changed to fit within this frame. The primitive may be nil, in +// which case no other primitive is embedded in the frame. +func NewFrame(primitive Primitive) *Frame { + box := NewBox() + + f := &Frame{ + Box: box, + primitive: primitive, + top: 1, + bottom: 1, + header: 1, + footer: 1, + left: 1, + right: 1, + } + + f.focus = f + + return f +} + +// AddText adds text to the frame. Set "header" to true if the text is to appear +// in the header, above the contained primitive. Set it to false for it to +// appear in the footer, below the contained primitive. "align" must be one of +// the Align constants. Rows in the header are printed top to bottom, rows in +// the footer are printed bottom to top. Note that long text can overlap as +// different alignments will be placed on the same row. +func (f *Frame) AddText(text string, header bool, align int, color tcell.Color) *Frame { + f.text = append(f.text, &frameText{ + Text: text, + Header: header, + Align: align, + Color: color, + }) + return f +} + +// Clear removes all text from the frame. +func (f *Frame) Clear() *Frame { + f.text = nil + return f +} + +// SetBorders sets the width of the frame borders as well as "header" and +// "footer", the vertical space between the header and footer text and the +// contained primitive (does not apply if there is no text). +func (f *Frame) SetBorders(top, bottom, header, footer, left, right int) *Frame { + f.top, f.bottom, f.header, f.footer, f.left, f.right = top, bottom, header, footer, left, right + return f +} + +// Draw draws this primitive onto the screen. +func (f *Frame) Draw(screen tcell.Screen) { + f.Box.Draw(screen) + + // Calculate start positions. + x, top, width, height := f.GetInnerRect() + bottom := top + height - 1 + x += f.left + top += f.top + bottom -= f.bottom + width -= f.left + f.right + if width <= 0 || top >= bottom { + return // No space left. + } + + // Draw text. + var rows [6]int // top-left, top-center, top-right, bottom-left, bottom-center, bottom-right. + topMax := top + bottomMin := bottom + for _, text := range f.text { + // Where do we place this text? + var y int + if text.Header { + y = top + rows[text.Align] + rows[text.Align]++ + if y >= bottomMin { + continue + } + if y+1 > topMax { + topMax = y + 1 + } + } else { + y = bottom - rows[3+text.Align] + rows[3+text.Align]++ + if y <= topMax { + continue + } + if y-1 < bottomMin { + bottomMin = y - 1 + } + } + + // Draw text. + Print(screen, text.Text, x, y, width, text.Align, text.Color) + } + + // Set the size of the contained primitive. + if f.primitive != nil { + if topMax > top { + top = topMax + f.header + } + if bottomMin < bottom { + bottom = bottomMin - f.footer + } + if top > bottom { + return // No space for the primitive. + } + f.primitive.SetRect(x, top, width, bottom+1-top) + + // Finally, draw the contained primitive. + f.primitive.Draw(screen) + } +} + +// Focus is called when this primitive receives focus. +func (f *Frame) Focus(delegate func(p Primitive)) { + if f.primitive != nil { + delegate(f.primitive) + } else { + f.hasFocus = true + } +} + +// HasFocus returns whether or not this primitive has focus. +func (f *Frame) HasFocus() bool { + if f.primitive == nil { + return f.hasFocus + } + focusable, ok := f.primitive.(Focusable) + if ok { + return focusable.HasFocus() + } + return f.hasFocus +} + +// MouseHandler returns the mouse handler for this primitive. +func (f *Frame) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return f.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !f.InRect(event.Position()) { + return false, nil + } + + // Pass mouse events on to contained primitive. + if f.primitive != nil { + return f.primitive.MouseHandler()(action, event, setFocus) + } + + return false, nil + }) +} + +// InputHandler returns the handler for this primitive. +func (f *Frame) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return f.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + if f.primitive == nil { + return + } + if f.primitive.GetFocusable().HasFocus() { + if handler := f.primitive.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + }) +} diff --git a/vendor/github.com/rivo/tview/go.mod b/vendor/github.com/rivo/tview/go.mod new file mode 100644 index 0000000..dc77408 --- /dev/null +++ b/vendor/github.com/rivo/tview/go.mod @@ -0,0 +1,12 @@ +module github.com/rivo/tview + +go 1.12 + +require ( + github.com/gdamore/tcell v1.3.0 + github.com/lucasb-eyer/go-colorful v1.0.3 + github.com/mattn/go-runewidth v0.0.9 + github.com/rivo/uniseg v0.1.0 + golang.org/x/sys v0.0.0-20200817155316-9781c653f443 // indirect + golang.org/x/text v0.3.2 // indirect +) diff --git a/vendor/github.com/rivo/tview/go.sum b/vendor/github.com/rivo/tview/go.sum new file mode 100644 index 0000000..7566d43 --- /dev/null +++ b/vendor/github.com/rivo/tview/go.sum @@ -0,0 +1,25 @@ +github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.3.0 h1:r35w0JBADPZCVQijYebl6YMWWtHRqVEGt7kL2eBADRM= +github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= +github.com/lucasb-eyer/go-colorful v1.0.2 h1:mCMFu6PgSozg9tDNMMK3g18oJBX7oYGrC09mS6CXfO4= +github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= +github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443 h1:X18bCaipMcoJGm27Nv7zr4XYPKGUy92GtqboKC2Hxaw= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/vendor/github.com/rivo/tview/grid.go b/vendor/github.com/rivo/tview/grid.go new file mode 100644 index 0000000..8066384 --- /dev/null +++ b/vendor/github.com/rivo/tview/grid.go @@ -0,0 +1,698 @@ +package tview + +import ( + "math" + + "github.com/gdamore/tcell" +) + +// gridItem represents one primitive and its possible position on a grid. +type gridItem struct { + Item Primitive // The item to be positioned. May be nil for an empty item. + Row, Column int // The top-left grid cell where the item is placed. + Width, Height int // The number of rows and columns the item occupies. + MinGridWidth, MinGridHeight int // The minimum grid width/height for which this item is visible. + Focus bool // Whether or not this item attracts the layout's focus. + + visible bool // Whether or not this item was visible the last time the grid was drawn. + x, y, w, h int // The last position of the item relative to the top-left corner of the grid. Undefined if visible is false. +} + +// Grid is an implementation of a grid-based layout. It works by defining the +// size of the rows and columns, then placing primitives into the grid. +// +// Some settings can lead to the grid exceeding its available space. SetOffset() +// can then be used to scroll in steps of rows and columns. These offset values +// can also be controlled with the arrow keys (or the "g","G", "j", "k", "h", +// and "l" keys) while the grid has focus and none of its contained primitives +// do. +// +// See https://github.com/rivo/tview/wiki/Grid for an example. +type Grid struct { + *Box + + // The items to be positioned. + items []*gridItem + + // The definition of the rows and columns of the grid. See + // SetRows()/SetColumns() for details. + rows, columns []int + + // The minimum sizes for rows and columns. + minWidth, minHeight int + + // The size of the gaps between neighboring primitives. This is automatically + // set to 1 if borders is true. + gapRows, gapColumns int + + // The number of rows and columns skipped before drawing the top-left corner + // of the grid. + rowOffset, columnOffset int + + // Whether or not borders are drawn around grid items. If this is set to true, + // a gap size of 1 is automatically assumed (which is filled with the border + // graphics). + borders bool + + // The color of the borders around grid items. + bordersColor tcell.Color +} + +// NewGrid returns a new grid-based layout container with no initial primitives. +// +// Note that Box, the superclass of Grid, will have its background color set to +// transparent so that any grid areas not covered by any primitives will leave +// their background unchanged. To clear a Grid's background before any items are +// drawn, set it to the desired color: +// +// grid.SetBackgroundColor(tview.Styles.PrimitiveBackgroundColor) +func NewGrid() *Grid { + g := &Grid{ + Box: NewBox().SetBackgroundColor(tcell.ColorDefault), + bordersColor: Styles.GraphicsColor, + } + g.focus = g + return g +} + +// SetColumns defines how the columns of the grid are distributed. Each value +// defines the size of one column, starting with the leftmost column. Values +// greater 0 represent absolute column widths (gaps not included). Values less +// or equal 0 represent proportional column widths or fractions of the remaining +// free space, where 0 is treated the same as -1. That is, a column with a value +// of -3 will have three times the width of a column with a value of -1 (or 0). +// The minimum width set with SetMinSize() is always observed. +// +// Primitives may extend beyond the columns defined explicitly with this +// function. A value of 0 is assumed for any undefined column. In fact, if you +// never call this function, all columns occupied by primitives will have the +// same width. On the other hand, unoccupied columns defined with this function +// will always take their place. +// +// Assuming a total width of the grid of 100 cells and a minimum width of 0, the +// following call will result in columns with widths of 30, 10, 15, 15, and 30 +// cells: +// +// grid.Setcolumns(30, 10, -1, -1, -2) +// +// If a primitive were then placed in the 6th and 7th column, the resulting +// widths would be: 30, 10, 10, 10, 20, 10, and 10 cells. +// +// If you then called SetMinSize() as follows: +// +// grid.SetMinSize(15, 20) +// +// The resulting widths would be: 30, 15, 15, 15, 20, 15, and 15 cells, a total +// of 125 cells, 25 cells wider than the available grid width. +func (g *Grid) SetColumns(columns ...int) *Grid { + g.columns = columns + return g +} + +// SetRows defines how the rows of the grid are distributed. These values behave +// the same as the column values provided with SetColumns(), see there for a +// definition and examples. +// +// The provided values correspond to row heights, the first value defining +// the height of the topmost row. +func (g *Grid) SetRows(rows ...int) *Grid { + g.rows = rows + return g +} + +// SetSize is a shortcut for SetRows() and SetColumns() where all row and column +// values are set to the given size values. See SetColumns() for details on sizes. +func (g *Grid) SetSize(numRows, numColumns, rowSize, columnSize int) *Grid { + g.rows = make([]int, numRows) + for index := range g.rows { + g.rows[index] = rowSize + } + g.columns = make([]int, numColumns) + for index := range g.columns { + g.columns[index] = columnSize + } + return g +} + +// SetMinSize sets an absolute minimum width for rows and an absolute minimum +// height for columns. Panics if negative values are provided. +func (g *Grid) SetMinSize(row, column int) *Grid { + if row < 0 || column < 0 { + panic("Invalid minimum row/column size") + } + g.minHeight, g.minWidth = row, column + return g +} + +// SetGap sets the size of the gaps between neighboring primitives on the grid. +// If borders are drawn (see SetBorders()), these values are ignored and a gap +// of 1 is assumed. Panics if negative values are provided. +func (g *Grid) SetGap(row, column int) *Grid { + if row < 0 || column < 0 { + panic("Invalid gap size") + } + g.gapRows, g.gapColumns = row, column + return g +} + +// SetBorders sets whether or not borders are drawn around grid items. Setting +// this value to true will cause the gap values (see SetGap()) to be ignored and +// automatically assumed to be 1 where the border graphics are drawn. +func (g *Grid) SetBorders(borders bool) *Grid { + g.borders = borders + return g +} + +// SetBordersColor sets the color of the item borders. +func (g *Grid) SetBordersColor(color tcell.Color) *Grid { + g.bordersColor = color + return g +} + +// AddItem adds a primitive and its position to the grid. The top-left corner +// of the primitive will be located in the top-left corner of the grid cell at +// the given row and column and will span "rowSpan" rows and "colSpan" columns. +// For example, for a primitive to occupy rows 2, 3, and 4 and columns 5 and 6: +// +// grid.AddItem(p, 2, 5, 3, 2, 0, 0, true) +// +// If rowSpan or colSpan is 0, the primitive will not be drawn. +// +// You can add the same primitive multiple times with different grid positions. +// The minGridWidth and minGridHeight values will then determine which of those +// positions will be used. This is similar to CSS media queries. These minimum +// values refer to the overall size of the grid. If multiple items for the same +// primitive apply, the one that has at least one highest minimum value will be +// used, or the primitive added last if those values are the same. Example: +// +// grid.AddItem(p, 0, 0, 0, 0, 0, 0, true). // Hide in small grids. +// AddItem(p, 0, 0, 1, 2, 100, 0, true). // One-column layout for medium grids. +// AddItem(p, 1, 1, 3, 2, 300, 0, true) // Multi-column layout for large grids. +// +// To use the same grid layout for all sizes, simply set minGridWidth and +// minGridHeight to 0. +// +// If the item's focus is set to true, it will receive focus when the grid +// receives focus. If there are multiple items with a true focus flag, the last +// visible one that was added will receive focus. +func (g *Grid) AddItem(p Primitive, row, column, rowSpan, colSpan, minGridHeight, minGridWidth int, focus bool) *Grid { + g.items = append(g.items, &gridItem{ + Item: p, + Row: row, + Column: column, + Height: rowSpan, + Width: colSpan, + MinGridHeight: minGridHeight, + MinGridWidth: minGridWidth, + Focus: focus, + }) + return g +} + +// RemoveItem removes all items for the given primitive from the grid, keeping +// the order of the remaining items intact. +func (g *Grid) RemoveItem(p Primitive) *Grid { + for index := len(g.items) - 1; index >= 0; index-- { + if g.items[index].Item == p { + g.items = append(g.items[:index], g.items[index+1:]...) + } + } + return g +} + +// Clear removes all items from the grid. +func (g *Grid) Clear() *Grid { + g.items = nil + return g +} + +// SetOffset sets the number of rows and columns which are skipped before +// drawing the first grid cell in the top-left corner. As the grid will never +// completely move off the screen, these values may be adjusted the next time +// the grid is drawn. The actual position of the grid may also be adjusted such +// that contained primitives that have focus remain visible. +func (g *Grid) SetOffset(rows, columns int) *Grid { + g.rowOffset, g.columnOffset = rows, columns + return g +} + +// GetOffset returns the current row and column offset (see SetOffset() for +// details). +func (g *Grid) GetOffset() (rows, columns int) { + return g.rowOffset, g.columnOffset +} + +// Focus is called when this primitive receives focus. +func (g *Grid) Focus(delegate func(p Primitive)) { + for _, item := range g.items { + if item.Focus { + delegate(item.Item) + return + } + } + g.hasFocus = true +} + +// Blur is called when this primitive loses focus. +func (g *Grid) Blur() { + g.hasFocus = false +} + +// HasFocus returns whether or not this primitive has focus. +func (g *Grid) HasFocus() bool { + for _, item := range g.items { + if item.visible && item.Item.GetFocusable().HasFocus() { + return true + } + } + return g.hasFocus +} + +// InputHandler returns the handler for this primitive. +func (g *Grid) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return g.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + if !g.hasFocus { + // Pass event on to child primitive. + for _, item := range g.items { + if item != nil && item.Item.GetFocusable().HasFocus() { + if handler := item.Item.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + } + return + } + + // Process our own key events if we have direct focus. + switch event.Key() { + case tcell.KeyRune: + switch event.Rune() { + case 'g': + g.rowOffset, g.columnOffset = 0, 0 + case 'G': + g.rowOffset = math.MaxInt32 + case 'j': + g.rowOffset++ + case 'k': + g.rowOffset-- + case 'h': + g.columnOffset-- + case 'l': + g.columnOffset++ + } + case tcell.KeyHome: + g.rowOffset, g.columnOffset = 0, 0 + case tcell.KeyEnd: + g.rowOffset = math.MaxInt32 + case tcell.KeyUp: + g.rowOffset-- + case tcell.KeyDown: + g.rowOffset++ + case tcell.KeyLeft: + g.columnOffset-- + case tcell.KeyRight: + g.columnOffset++ + } + }) +} + +// Draw draws this primitive onto the screen. +func (g *Grid) Draw(screen tcell.Screen) { + g.Box.Draw(screen) + x, y, width, height := g.GetInnerRect() + screenWidth, screenHeight := screen.Size() + + // Make a list of items which apply. + items := make(map[Primitive]*gridItem) + for _, item := range g.items { + item.visible = false + if item.Width <= 0 || item.Height <= 0 || width < item.MinGridWidth || height < item.MinGridHeight { + continue + } + previousItem, ok := items[item.Item] + if ok && item.MinGridWidth < previousItem.MinGridWidth && item.MinGridHeight < previousItem.MinGridHeight { + continue + } + items[item.Item] = item + } + + // How many rows and columns do we have? + rows := len(g.rows) + columns := len(g.columns) + for _, item := range items { + rowEnd := item.Row + item.Height + if rowEnd > rows { + rows = rowEnd + } + columnEnd := item.Column + item.Width + if columnEnd > columns { + columns = columnEnd + } + } + if rows == 0 || columns == 0 { + return // No content. + } + + // Where are they located? + rowPos := make([]int, rows) + rowHeight := make([]int, rows) + columnPos := make([]int, columns) + columnWidth := make([]int, columns) + + // How much space do we distribute? + remainingWidth := width + remainingHeight := height + proportionalWidth := 0 + proportionalHeight := 0 + for index, row := range g.rows { + if row > 0 { + if row < g.minHeight { + row = g.minHeight + } + remainingHeight -= row + rowHeight[index] = row + } else if row == 0 { + proportionalHeight++ + } else { + proportionalHeight += -row + } + } + for index, column := range g.columns { + if column > 0 { + if column < g.minWidth { + column = g.minWidth + } + remainingWidth -= column + columnWidth[index] = column + } else if column == 0 { + proportionalWidth++ + } else { + proportionalWidth += -column + } + } + if g.borders { + remainingHeight -= rows + 1 + remainingWidth -= columns + 1 + } else { + remainingHeight -= (rows - 1) * g.gapRows + remainingWidth -= (columns - 1) * g.gapColumns + } + if rows > len(g.rows) { + proportionalHeight += rows - len(g.rows) + } + if columns > len(g.columns) { + proportionalWidth += columns - len(g.columns) + } + + // Distribute proportional rows/columns. + for index := 0; index < rows; index++ { + row := 0 + if index < len(g.rows) { + row = g.rows[index] + } + if row > 0 { + if row < g.minHeight { + row = g.minHeight + } + continue // Not proportional. We already know the width. + } else if row == 0 { + row = 1 + } else { + row = -row + } + rowAbs := row * remainingHeight / proportionalHeight + remainingHeight -= rowAbs + proportionalHeight -= row + if rowAbs < g.minHeight { + rowAbs = g.minHeight + } + rowHeight[index] = rowAbs + } + for index := 0; index < columns; index++ { + column := 0 + if index < len(g.columns) { + column = g.columns[index] + } + if column > 0 { + if column < g.minWidth { + column = g.minWidth + } + continue // Not proportional. We already know the height. + } else if column == 0 { + column = 1 + } else { + column = -column + } + columnAbs := column * remainingWidth / proportionalWidth + remainingWidth -= columnAbs + proportionalWidth -= column + if columnAbs < g.minWidth { + columnAbs = g.minWidth + } + columnWidth[index] = columnAbs + } + + // Calculate row/column positions. + var columnX, rowY int + if g.borders { + columnX++ + rowY++ + } + for index, row := range rowHeight { + rowPos[index] = rowY + gap := g.gapRows + if g.borders { + gap = 1 + } + rowY += row + gap + } + for index, column := range columnWidth { + columnPos[index] = columnX + gap := g.gapColumns + if g.borders { + gap = 1 + } + columnX += column + gap + } + + // Calculate primitive positions. + var focus *gridItem // The item which has focus. + for primitive, item := range items { + px := columnPos[item.Column] + py := rowPos[item.Row] + var pw, ph int + for index := 0; index < item.Height; index++ { + ph += rowHeight[item.Row+index] + } + for index := 0; index < item.Width; index++ { + pw += columnWidth[item.Column+index] + } + if g.borders { + pw += item.Width - 1 + ph += item.Height - 1 + } else { + pw += (item.Width - 1) * g.gapColumns + ph += (item.Height - 1) * g.gapRows + } + item.x, item.y, item.w, item.h = px, py, pw, ph + item.visible = true + if primitive.GetFocusable().HasFocus() { + focus = item + } + } + + // Calculate screen offsets. + var offsetX, offsetY int + add := 1 + if !g.borders { + add = g.gapRows + } + for index, height := range rowHeight { + if index >= g.rowOffset { + break + } + offsetY += height + add + } + if !g.borders { + add = g.gapColumns + } + for index, width := range columnWidth { + if index >= g.columnOffset { + break + } + offsetX += width + add + } + + // Line up the last row/column with the end of the available area. + var border int + if g.borders { + border = 1 + } + last := len(rowPos) - 1 + if rowPos[last]+rowHeight[last]+border-offsetY < height { + offsetY = rowPos[last] - height + rowHeight[last] + border + } + last = len(columnPos) - 1 + if columnPos[last]+columnWidth[last]+border-offsetX < width { + offsetX = columnPos[last] - width + columnWidth[last] + border + } + + // The focused item must be within the visible area. + if focus != nil { + if focus.y+focus.h-offsetY >= height { + offsetY = focus.y - height + focus.h + } + if focus.y-offsetY < 0 { + offsetY = focus.y + } + if focus.x+focus.w-offsetX >= width { + offsetX = focus.x - width + focus.w + } + if focus.x-offsetX < 0 { + offsetX = focus.x + } + } + + // Adjust row/column offsets based on this value. + var from, to int + for index, pos := range rowPos { + if pos-offsetY < 0 { + from = index + 1 + } + if pos-offsetY < height { + to = index + } + } + if g.rowOffset < from { + g.rowOffset = from + } + if g.rowOffset > to { + g.rowOffset = to + } + from, to = 0, 0 + for index, pos := range columnPos { + if pos-offsetX < 0 { + from = index + 1 + } + if pos-offsetX < width { + to = index + } + } + if g.columnOffset < from { + g.columnOffset = from + } + if g.columnOffset > to { + g.columnOffset = to + } + + // Draw primitives and borders. + for primitive, item := range items { + // Final primitive position. + if !item.visible { + continue + } + item.x -= offsetX + item.y -= offsetY + if item.x >= width || item.x+item.w <= 0 || item.y >= height || item.y+item.h <= 0 { + item.visible = false + continue + } + if item.x+item.w > width { + item.w = width - item.x + } + if item.y+item.h > height { + item.h = height - item.y + } + if item.x < 0 { + item.w += item.x + item.x = 0 + } + if item.y < 0 { + item.h += item.y + item.y = 0 + } + if item.w <= 0 || item.h <= 0 { + item.visible = false + continue + } + item.x += x + item.y += y + primitive.SetRect(item.x, item.y, item.w, item.h) + + // Draw primitive. + if item == focus { + defer primitive.Draw(screen) + } else { + primitive.Draw(screen) + } + + // Draw border around primitive. + if g.borders { + for bx := item.x; bx < item.x+item.w; bx++ { // Top/bottom lines. + if bx < 0 || bx >= screenWidth { + continue + } + by := item.y - 1 + if by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.Horizontal, g.bordersColor) + } + by = item.y + item.h + if by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.Horizontal, g.bordersColor) + } + } + for by := item.y; by < item.y+item.h; by++ { // Left/right lines. + if by < 0 || by >= screenHeight { + continue + } + bx := item.x - 1 + if bx >= 0 && bx < screenWidth { + PrintJoinedSemigraphics(screen, bx, by, Borders.Vertical, g.bordersColor) + } + bx = item.x + item.w + if bx >= 0 && bx < screenWidth { + PrintJoinedSemigraphics(screen, bx, by, Borders.Vertical, g.bordersColor) + } + } + bx, by := item.x-1, item.y-1 // Top-left corner. + if bx >= 0 && bx < screenWidth && by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.TopLeft, g.bordersColor) + } + bx, by = item.x+item.w, item.y-1 // Top-right corner. + if bx >= 0 && bx < screenWidth && by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.TopRight, g.bordersColor) + } + bx, by = item.x-1, item.y+item.h // Bottom-left corner. + if bx >= 0 && bx < screenWidth && by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.BottomLeft, g.bordersColor) + } + bx, by = item.x+item.w, item.y+item.h // Bottom-right corner. + if bx >= 0 && bx < screenWidth && by >= 0 && by < screenHeight { + PrintJoinedSemigraphics(screen, bx, by, Borders.BottomRight, g.bordersColor) + } + } + } +} + +// MouseHandler returns the mouse handler for this primitive. +func (g *Grid) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return g.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !g.InRect(event.Position()) { + return false, nil + } + + // Pass mouse events along to the first child item that takes it. + for _, item := range g.items { + if item.Item == nil { + continue + } + consumed, capture = item.Item.MouseHandler()(action, event, setFocus) + if consumed { + return + } + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/inputfield.go b/vendor/github.com/rivo/tview/inputfield.go new file mode 100644 index 0000000..d497bf9 --- /dev/null +++ b/vendor/github.com/rivo/tview/inputfield.go @@ -0,0 +1,625 @@ +package tview + +import ( + "math" + "regexp" + "strings" + "sync" + "unicode/utf8" + + "github.com/gdamore/tcell" +) + +// InputField is a one-line box (three lines if there is a title) where the +// user can enter text. Use SetAcceptanceFunc() to accept or reject input, +// SetChangedFunc() to listen for changes, and SetMaskCharacter() to hide input +// from onlookers (e.g. for password input). +// +// The following keys can be used for navigation and editing: +// +// - Left arrow: Move left by one character. +// - Right arrow: Move right by one character. +// - Home, Ctrl-A, Alt-a: Move to the beginning of the line. +// - End, Ctrl-E, Alt-e: Move to the end of the line. +// - Alt-left, Alt-b: Move left by one word. +// - Alt-right, Alt-f: Move right by one word. +// - Backspace: Delete the character before the cursor. +// - Delete: Delete the character after the cursor. +// - Ctrl-K: Delete from the cursor to the end of the line. +// - Ctrl-W: Delete the last word before the cursor. +// - Ctrl-U: Delete the entire line. +// +// See https://github.com/rivo/tview/wiki/InputField for an example. +type InputField struct { + *Box + + // The text that was entered. + text string + + // The text to be displayed before the input area. + label string + + // The text to be displayed in the input area when "text" is empty. + placeholder string + + // The label color. + labelColor tcell.Color + + // The background color of the input area. + fieldBackgroundColor tcell.Color + + // The text color of the input area. + fieldTextColor tcell.Color + + // The text color of the placeholder. + placeholderTextColor tcell.Color + + // The screen width of the label area. A value of 0 means use the width of + // the label text. + labelWidth int + + // The screen width of the input area. A value of 0 means extend as much as + // possible. + fieldWidth int + + // A character to mask entered text (useful for password fields). A value of 0 + // disables masking. + maskCharacter rune + + // The cursor position as a byte index into the text string. + cursorPos int + + // An optional autocomplete function which receives the current text of the + // input field and returns a slice of strings to be displayed in a drop-down + // selection. + autocomplete func(text string) []string + + // The List object which shows the selectable autocomplete entries. If not + // nil, the list's main texts represent the current autocomplete entries. + autocompleteList *List + autocompleteListMutex sync.Mutex + + // An optional function which may reject the last character that was entered. + accept func(text string, ch rune) bool + + // An optional function which is called when the input has changed. + changed func(text string) + + // An optional function which is called when the user indicated that they + // are done entering text. The key which was pressed is provided (tab, + // shift-tab, enter, or escape). + done func(tcell.Key) + + // A callback function set by the Form class and called when the user leaves + // this form item. + finished func(tcell.Key) + + fieldX int // The x-coordinate of the input field as determined during the last call to Draw(). + offset int // The number of bytes of the text string skipped ahead while drawing. +} + +// NewInputField returns a new input field. +func NewInputField() *InputField { + return &InputField{ + Box: NewBox(), + labelColor: Styles.SecondaryTextColor, + fieldBackgroundColor: Styles.ContrastBackgroundColor, + fieldTextColor: Styles.PrimaryTextColor, + placeholderTextColor: Styles.ContrastSecondaryTextColor, + } +} + +// SetText sets the current text of the input field. +func (i *InputField) SetText(text string) *InputField { + i.text = text + i.cursorPos = len(text) + if i.changed != nil { + i.changed(text) + } + return i +} + +// GetText returns the current text of the input field. +func (i *InputField) GetText() string { + return i.text +} + +// SetLabel sets the text to be displayed before the input area. +func (i *InputField) SetLabel(label string) *InputField { + i.label = label + return i +} + +// GetLabel returns the text to be displayed before the input area. +func (i *InputField) GetLabel() string { + return i.label +} + +// SetLabelWidth sets the screen width of the label. A value of 0 will cause the +// primitive to use the width of the label string. +func (i *InputField) SetLabelWidth(width int) *InputField { + i.labelWidth = width + return i +} + +// SetPlaceholder sets the text to be displayed when the input text is empty. +func (i *InputField) SetPlaceholder(text string) *InputField { + i.placeholder = text + return i +} + +// SetLabelColor sets the color of the label. +func (i *InputField) SetLabelColor(color tcell.Color) *InputField { + i.labelColor = color + return i +} + +// SetFieldBackgroundColor sets the background color of the input area. +func (i *InputField) SetFieldBackgroundColor(color tcell.Color) *InputField { + i.fieldBackgroundColor = color + return i +} + +// SetFieldTextColor sets the text color of the input area. +func (i *InputField) SetFieldTextColor(color tcell.Color) *InputField { + i.fieldTextColor = color + return i +} + +// SetPlaceholderTextColor sets the text color of placeholder text. +func (i *InputField) SetPlaceholderTextColor(color tcell.Color) *InputField { + i.placeholderTextColor = color + return i +} + +// SetFormAttributes sets attributes shared by all form items. +func (i *InputField) SetFormAttributes(labelWidth int, labelColor, bgColor, fieldTextColor, fieldBgColor tcell.Color) FormItem { + i.labelWidth = labelWidth + i.labelColor = labelColor + i.backgroundColor = bgColor + i.fieldTextColor = fieldTextColor + i.fieldBackgroundColor = fieldBgColor + return i +} + +// SetFieldWidth sets the screen width of the input area. A value of 0 means +// extend as much as possible. +func (i *InputField) SetFieldWidth(width int) *InputField { + i.fieldWidth = width + return i +} + +// GetFieldWidth returns this primitive's field width. +func (i *InputField) GetFieldWidth() int { + return i.fieldWidth +} + +// SetMaskCharacter sets a character that masks user input on a screen. A value +// of 0 disables masking. +func (i *InputField) SetMaskCharacter(mask rune) *InputField { + i.maskCharacter = mask + return i +} + +// SetAutocompleteFunc sets an autocomplete callback function which may return +// strings to be selected from a drop-down based on the current text of the +// input field. The drop-down appears only if len(entries) > 0. The callback is +// invoked in this function and whenever the current text changes or when +// Autocomplete() is called. Entries are cleared when the user selects an entry +// or presses Escape. +func (i *InputField) SetAutocompleteFunc(callback func(currentText string) (entries []string)) *InputField { + i.autocomplete = callback + i.Autocomplete() + return i +} + +// Autocomplete invokes the autocomplete callback (if there is one). If the +// length of the returned autocomplete entries slice is greater than 0, the +// input field will present the user with a corresponding drop-down list the +// next time the input field is drawn. +// +// It is safe to call this function from any goroutine. Note that the input +// field is not redrawn automatically unless called from the main goroutine +// (e.g. in response to events). +func (i *InputField) Autocomplete() *InputField { + i.autocompleteListMutex.Lock() + defer i.autocompleteListMutex.Unlock() + if i.autocomplete == nil { + return i + } + + // Do we have any autocomplete entries? + entries := i.autocomplete(i.text) + if len(entries) == 0 { + // No entries, no list. + i.autocompleteList = nil + return i + } + + // Make a list if we have none. + if i.autocompleteList == nil { + i.autocompleteList = NewList() + i.autocompleteList.ShowSecondaryText(false). + SetMainTextColor(Styles.PrimitiveBackgroundColor). + SetSelectedTextColor(Styles.PrimitiveBackgroundColor). + SetSelectedBackgroundColor(Styles.PrimaryTextColor). + SetHighlightFullLine(true). + SetBackgroundColor(Styles.MoreContrastBackgroundColor) + } + + // Fill it with the entries. + currentEntry := -1 + i.autocompleteList.Clear() + for index, entry := range entries { + i.autocompleteList.AddItem(entry, "", 0, nil) + if currentEntry < 0 && entry == i.text { + currentEntry = index + } + } + + // Set the selection if we have one. + if currentEntry >= 0 { + i.autocompleteList.SetCurrentItem(currentEntry) + } + + return i +} + +// SetAcceptanceFunc sets a handler which may reject the last character that was +// entered (by returning false). +// +// This package defines a number of variables prefixed with InputField which may +// be used for common input (e.g. numbers, maximum text length). +func (i *InputField) SetAcceptanceFunc(handler func(textToCheck string, lastChar rune) bool) *InputField { + i.accept = handler + return i +} + +// SetChangedFunc sets a handler which is called whenever the text of the input +// field has changed. It receives the current text (after the change). +func (i *InputField) SetChangedFunc(handler func(text string)) *InputField { + i.changed = handler + return i +} + +// SetDoneFunc sets a handler which is called when the user is done entering +// text. The callback function is provided with the key that was pressed, which +// is one of the following: +// +// - KeyEnter: Done entering text. +// - KeyEscape: Abort text input. +// - KeyTab: Move to the next field. +// - KeyBacktab: Move to the previous field. +func (i *InputField) SetDoneFunc(handler func(key tcell.Key)) *InputField { + i.done = handler + return i +} + +// SetFinishedFunc sets a callback invoked when the user leaves this form item. +func (i *InputField) SetFinishedFunc(handler func(key tcell.Key)) FormItem { + i.finished = handler + return i +} + +// Draw draws this primitive onto the screen. +func (i *InputField) Draw(screen tcell.Screen) { + i.Box.Draw(screen) + + // Prepare + x, y, width, height := i.GetInnerRect() + rightLimit := x + width + if height < 1 || rightLimit <= x { + return + } + + // Draw label. + if i.labelWidth > 0 { + labelWidth := i.labelWidth + if labelWidth > rightLimit-x { + labelWidth = rightLimit - x + } + Print(screen, i.label, x, y, labelWidth, AlignLeft, i.labelColor) + x += labelWidth + } else { + _, drawnWidth := Print(screen, i.label, x, y, rightLimit-x, AlignLeft, i.labelColor) + x += drawnWidth + } + + // Draw input area. + i.fieldX = x + fieldWidth := i.fieldWidth + if fieldWidth == 0 { + fieldWidth = math.MaxInt32 + } + if rightLimit-x < fieldWidth { + fieldWidth = rightLimit - x + } + fieldStyle := tcell.StyleDefault.Background(i.fieldBackgroundColor) + for index := 0; index < fieldWidth; index++ { + screen.SetContent(x+index, y, ' ', nil, fieldStyle) + } + + // Text. + var cursorScreenPos int + text := i.text + if text == "" && i.placeholder != "" { + // Draw placeholder text. + Print(screen, Escape(i.placeholder), x, y, fieldWidth, AlignLeft, i.placeholderTextColor) + i.offset = 0 + } else { + // Draw entered text. + if i.maskCharacter > 0 { + text = strings.Repeat(string(i.maskCharacter), utf8.RuneCountInString(i.text)) + } + if fieldWidth >= stringWidth(text) { + // We have enough space for the full text. + Print(screen, Escape(text), x, y, fieldWidth, AlignLeft, i.fieldTextColor) + i.offset = 0 + iterateString(text, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + if textPos >= i.cursorPos { + return true + } + cursorScreenPos += screenWidth + return false + }) + } else { + // The text doesn't fit. Where is the cursor? + if i.cursorPos < 0 { + i.cursorPos = 0 + } else if i.cursorPos > len(text) { + i.cursorPos = len(text) + } + // Shift the text so the cursor is inside the field. + var shiftLeft int + if i.offset > i.cursorPos { + i.offset = i.cursorPos + } else if subWidth := stringWidth(text[i.offset:i.cursorPos]); subWidth > fieldWidth-1 { + shiftLeft = subWidth - fieldWidth + 1 + } + currentOffset := i.offset + iterateString(text, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + if textPos >= currentOffset { + if shiftLeft > 0 { + i.offset = textPos + textWidth + shiftLeft -= screenWidth + } else { + if textPos+textWidth > i.cursorPos { + return true + } + cursorScreenPos += screenWidth + } + } + return false + }) + Print(screen, Escape(text[i.offset:]), x, y, fieldWidth, AlignLeft, i.fieldTextColor) + } + } + + // Draw autocomplete list. + i.autocompleteListMutex.Lock() + defer i.autocompleteListMutex.Unlock() + if i.autocompleteList != nil { + // How much space do we need? + lheight := i.autocompleteList.GetItemCount() + lwidth := 0 + for index := 0; index < lheight; index++ { + entry, _ := i.autocompleteList.GetItemText(index) + width := TaggedStringWidth(entry) + if width > lwidth { + lwidth = width + } + } + + // We prefer to drop down but if there is no space, maybe drop up? + lx := x + ly := y + 1 + _, sheight := screen.Size() + if ly+lheight >= sheight && ly-2 > lheight-ly { + ly = y - lheight + if ly < 0 { + ly = 0 + } + } + if ly+lheight >= sheight { + lheight = sheight - ly + } + i.autocompleteList.SetRect(lx, ly, lwidth, lheight) + i.autocompleteList.Draw(screen) + } + + // Set cursor. + if i.focus.HasFocus() { + screen.ShowCursor(x+cursorScreenPos, y) + } +} + +// InputHandler returns the handler for this primitive. +func (i *InputField) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return i.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + // Trigger changed events. + currentText := i.text + defer func() { + if i.text != currentText { + i.Autocomplete() + if i.changed != nil { + i.changed(i.text) + } + } + }() + + // Movement functions. + home := func() { i.cursorPos = 0 } + end := func() { i.cursorPos = len(i.text) } + moveLeft := func() { + iterateStringReverse(i.text[:i.cursorPos], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + i.cursorPos -= textWidth + return true + }) + } + moveRight := func() { + iterateString(i.text[i.cursorPos:], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + i.cursorPos += textWidth + return true + }) + } + moveWordLeft := func() { + i.cursorPos = len(regexp.MustCompile(`\S+\s*$`).ReplaceAllString(i.text[:i.cursorPos], "")) + } + moveWordRight := func() { + i.cursorPos = len(i.text) - len(regexp.MustCompile(`^\s*\S+\s*`).ReplaceAllString(i.text[i.cursorPos:], "")) + } + + // Add character function. Returns whether or not the rune character is + // accepted. + add := func(r rune) bool { + newText := i.text[:i.cursorPos] + string(r) + i.text[i.cursorPos:] + if i.accept != nil && !i.accept(newText, r) { + return false + } + i.text = newText + i.cursorPos += len(string(r)) + return true + } + + // Finish up. + finish := func(key tcell.Key) { + if i.done != nil { + i.done(key) + } + if i.finished != nil { + i.finished(key) + } + } + + // Process key event. + i.autocompleteListMutex.Lock() + defer i.autocompleteListMutex.Unlock() + switch key := event.Key(); key { + case tcell.KeyRune: // Regular character. + if event.Modifiers()&tcell.ModAlt > 0 { + // We accept some Alt- key combinations. + switch event.Rune() { + case 'a': // Home. + home() + case 'e': // End. + end() + case 'b': // Move word left. + moveWordLeft() + case 'f': // Move word right. + moveWordRight() + default: + if !add(event.Rune()) { + return + } + } + } else { + // Other keys are simply accepted as regular characters. + if !add(event.Rune()) { + return + } + } + case tcell.KeyCtrlU: // Delete all. + i.text = "" + i.cursorPos = 0 + case tcell.KeyCtrlK: // Delete until the end of the line. + i.text = i.text[:i.cursorPos] + case tcell.KeyCtrlW: // Delete last word. + lastWord := regexp.MustCompile(`\S+\s*$`) + newText := lastWord.ReplaceAllString(i.text[:i.cursorPos], "") + i.text[i.cursorPos:] + i.cursorPos -= len(i.text) - len(newText) + i.text = newText + case tcell.KeyBackspace, tcell.KeyBackspace2: // Delete character before the cursor. + iterateStringReverse(i.text[:i.cursorPos], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + i.text = i.text[:textPos] + i.text[textPos+textWidth:] + i.cursorPos -= textWidth + return true + }) + if i.offset >= i.cursorPos { + i.offset = 0 + } + case tcell.KeyDelete: // Delete character after the cursor. + iterateString(i.text[i.cursorPos:], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + i.text = i.text[:i.cursorPos] + i.text[i.cursorPos+textWidth:] + return true + }) + case tcell.KeyLeft: + if event.Modifiers()&tcell.ModAlt > 0 { + moveWordLeft() + } else { + moveLeft() + } + case tcell.KeyRight: + if event.Modifiers()&tcell.ModAlt > 0 { + moveWordRight() + } else { + moveRight() + } + case tcell.KeyHome, tcell.KeyCtrlA: + home() + case tcell.KeyEnd, tcell.KeyCtrlE: + end() + case tcell.KeyEnter, tcell.KeyEscape: // We might be done. + if i.autocompleteList != nil { + i.autocompleteList = nil + } else { + finish(key) + } + case tcell.KeyDown, tcell.KeyTab: // Autocomplete selection. + if i.autocompleteList != nil { + count := i.autocompleteList.GetItemCount() + newEntry := i.autocompleteList.GetCurrentItem() + 1 + if newEntry >= count { + newEntry = 0 + } + i.autocompleteList.SetCurrentItem(newEntry) + currentText, _ = i.autocompleteList.GetItemText(newEntry) // Don't trigger changed function twice. + i.SetText(currentText) + } else { + finish(key) + } + case tcell.KeyUp, tcell.KeyBacktab: // Autocomplete selection. + if i.autocompleteList != nil { + newEntry := i.autocompleteList.GetCurrentItem() - 1 + if newEntry < 0 { + newEntry = i.autocompleteList.GetItemCount() - 1 + } + i.autocompleteList.SetCurrentItem(newEntry) + currentText, _ = i.autocompleteList.GetItemText(newEntry) // Don't trigger changed function twice. + i.SetText(currentText) + } else { + finish(key) + } + } + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (i *InputField) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return i.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + x, y := event.Position() + _, rectY, _, _ := i.GetInnerRect() + if !i.InRect(x, y) { + return false, nil + } + + // Process mouse event. + if action == MouseLeftClick && y == rectY { + // Determine where to place the cursor. + if x >= i.fieldX { + if !iterateString(i.text[i.offset:], func(main rune, comb []rune, textPos int, textWidth int, screenPos int, screenWidth int) bool { + if x-i.fieldX < screenPos+screenWidth { + i.cursorPos = textPos + i.offset + return true + } + return false + }) { + i.cursorPos = len(i.text) + } + } + setFocus(i) + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/list.go b/vendor/github.com/rivo/tview/list.go new file mode 100644 index 0000000..692eb11 --- /dev/null +++ b/vendor/github.com/rivo/tview/list.go @@ -0,0 +1,628 @@ +package tview + +import ( + "fmt" + "strings" + + "github.com/gdamore/tcell" +) + +// listItem represents one item in a List. +type listItem struct { + MainText string // The main text of the list item. + SecondaryText string // A secondary text to be shown underneath the main text. + Shortcut rune // The key to select the list item directly, 0 if there is no shortcut. + Selected func() // The optional function which is called when the item is selected. +} + +// List displays rows of items, each of which can be selected. +// +// See https://github.com/rivo/tview/wiki/List for an example. +type List struct { + *Box + + // The items of the list. + items []*listItem + + // The index of the currently selected item. + currentItem int + + // Whether or not to show the secondary item texts. + showSecondaryText bool + + // The item main text color. + mainTextColor tcell.Color + + // The item secondary text color. + secondaryTextColor tcell.Color + + // The item shortcut text color. + shortcutColor tcell.Color + + // The text color for selected items. + selectedTextColor tcell.Color + + // The background color for selected items. + selectedBackgroundColor tcell.Color + + // If true, the selection is only shown when the list has focus. + selectedFocusOnly bool + + // If true, the entire row is highlighted when selected. + highlightFullLine bool + + // Whether or not navigating the list will wrap around. + wrapAround bool + + // The number of list items skipped at the top before the first item is drawn. + offset int + + // An optional function which is called when the user has navigated to a list + // item. + changed func(index int, mainText, secondaryText string, shortcut rune) + + // An optional function which is called when a list item was selected. This + // function will be called even if the list item defines its own callback. + selected func(index int, mainText, secondaryText string, shortcut rune) + + // An optional function which is called when the user presses the Escape key. + done func() +} + +// NewList returns a new form. +func NewList() *List { + return &List{ + Box: NewBox(), + showSecondaryText: true, + wrapAround: true, + mainTextColor: Styles.PrimaryTextColor, + secondaryTextColor: Styles.TertiaryTextColor, + shortcutColor: Styles.SecondaryTextColor, + selectedTextColor: Styles.PrimitiveBackgroundColor, + selectedBackgroundColor: Styles.PrimaryTextColor, + } +} + +// SetCurrentItem sets the currently selected item by its index, starting at 0 +// for the first item. If a negative index is provided, items are referred to +// from the back (-1 = last item, -2 = second-to-last item, and so on). Out of +// range indices are clamped to the beginning/end. +// +// Calling this function triggers a "changed" event if the selection changes. +func (l *List) SetCurrentItem(index int) *List { + if index < 0 { + index = len(l.items) + index + } + if index >= len(l.items) { + index = len(l.items) - 1 + } + if index < 0 { + index = 0 + } + + if index != l.currentItem && l.changed != nil { + item := l.items[index] + l.changed(index, item.MainText, item.SecondaryText, item.Shortcut) + } + + l.currentItem = index + + return l +} + +// GetCurrentItem returns the index of the currently selected list item, +// starting at 0 for the first item. +func (l *List) GetCurrentItem() int { + return l.currentItem +} + +// RemoveItem removes the item with the given index (starting at 0) from the +// list. If a negative index is provided, items are referred to from the back +// (-1 = last item, -2 = second-to-last item, and so on). Out of range indices +// are clamped to the beginning/end, i.e. unless the list is empty, an item is +// always removed. +// +// The currently selected item is shifted accordingly. If it is the one that is +// removed, a "changed" event is fired. +func (l *List) RemoveItem(index int) *List { + if len(l.items) == 0 { + return l + } + + // Adjust index. + if index < 0 { + index = len(l.items) + index + } + if index >= len(l.items) { + index = len(l.items) - 1 + } + if index < 0 { + index = 0 + } + + // Remove item. + l.items = append(l.items[:index], l.items[index+1:]...) + + // If there is nothing left, we're done. + if len(l.items) == 0 { + return l + } + + // Shift current item. + previousCurrentItem := l.currentItem + if l.currentItem >= index { + l.currentItem-- + } + + // Fire "changed" event for removed items. + if previousCurrentItem == index && l.changed != nil { + item := l.items[l.currentItem] + l.changed(l.currentItem, item.MainText, item.SecondaryText, item.Shortcut) + } + + return l +} + +// SetMainTextColor sets the color of the items' main text. +func (l *List) SetMainTextColor(color tcell.Color) *List { + l.mainTextColor = color + return l +} + +// SetSecondaryTextColor sets the color of the items' secondary text. +func (l *List) SetSecondaryTextColor(color tcell.Color) *List { + l.secondaryTextColor = color + return l +} + +// SetShortcutColor sets the color of the items' shortcut. +func (l *List) SetShortcutColor(color tcell.Color) *List { + l.shortcutColor = color + return l +} + +// SetSelectedTextColor sets the text color of selected items. +func (l *List) SetSelectedTextColor(color tcell.Color) *List { + l.selectedTextColor = color + return l +} + +// SetSelectedBackgroundColor sets the background color of selected items. +func (l *List) SetSelectedBackgroundColor(color tcell.Color) *List { + l.selectedBackgroundColor = color + return l +} + +// SetSelectedFocusOnly sets a flag which determines when the currently selected +// list item is highlighted. If set to true, selected items are only highlighted +// when the list has focus. If set to false, they are always highlighted. +func (l *List) SetSelectedFocusOnly(focusOnly bool) *List { + l.selectedFocusOnly = focusOnly + return l +} + +// SetHighlightFullLine sets a flag which determines whether the colored +// background of selected items spans the entire width of the view. If set to +// true, the highlight spans the entire view. If set to false, only the text of +// the selected item from beginning to end is highlighted. +func (l *List) SetHighlightFullLine(highlight bool) *List { + l.highlightFullLine = highlight + return l +} + +// ShowSecondaryText determines whether or not to show secondary item texts. +func (l *List) ShowSecondaryText(show bool) *List { + l.showSecondaryText = show + return l +} + +// SetWrapAround sets the flag that determines whether navigating the list will +// wrap around. That is, navigating downwards on the last item will move the +// selection to the first item (similarly in the other direction). If set to +// false, the selection won't change when navigating downwards on the last item +// or navigating upwards on the first item. +func (l *List) SetWrapAround(wrapAround bool) *List { + l.wrapAround = wrapAround + return l +} + +// SetChangedFunc sets the function which is called when the user navigates to +// a list item. The function receives the item's index in the list of items +// (starting with 0), its main text, secondary text, and its shortcut rune. +// +// This function is also called when the first item is added or when +// SetCurrentItem() is called. +func (l *List) SetChangedFunc(handler func(index int, mainText string, secondaryText string, shortcut rune)) *List { + l.changed = handler + return l +} + +// SetSelectedFunc sets the function which is called when the user selects a +// list item by pressing Enter on the current selection. The function receives +// the item's index in the list of items (starting with 0), its main text, +// secondary text, and its shortcut rune. +func (l *List) SetSelectedFunc(handler func(int, string, string, rune)) *List { + l.selected = handler + return l +} + +// SetDoneFunc sets a function which is called when the user presses the Escape +// key. +func (l *List) SetDoneFunc(handler func()) *List { + l.done = handler + return l +} + +// AddItem calls InsertItem() with an index of -1. +func (l *List) AddItem(mainText, secondaryText string, shortcut rune, selected func()) *List { + l.InsertItem(-1, mainText, secondaryText, shortcut, selected) + return l +} + +// InsertItem adds a new item to the list at the specified index. An index of 0 +// will insert the item at the beginning, an index of 1 before the second item, +// and so on. An index of GetItemCount() or higher will insert the item at the +// end of the list. Negative indices are also allowed: An index of -1 will +// insert the item at the end of the list, an index of -2 before the last item, +// and so on. An index of -GetItemCount()-1 or lower will insert the item at the +// beginning. +// +// An item has a main text which will be highlighted when selected. It also has +// a secondary text which is shown underneath the main text (if it is set to +// visible) but which may remain empty. +// +// The shortcut is a key binding. If the specified rune is entered, the item +// is selected immediately. Set to 0 for no binding. +// +// The "selected" callback will be invoked when the user selects the item. You +// may provide nil if no such callback is needed or if all events are handled +// through the selected callback set with SetSelectedFunc(). +// +// The currently selected item will shift its position accordingly. If the list +// was previously empty, a "changed" event is fired because the new item becomes +// selected. +func (l *List) InsertItem(index int, mainText, secondaryText string, shortcut rune, selected func()) *List { + item := &listItem{ + MainText: mainText, + SecondaryText: secondaryText, + Shortcut: shortcut, + Selected: selected, + } + + // Shift index to range. + if index < 0 { + index = len(l.items) + index + 1 + } + if index < 0 { + index = 0 + } else if index > len(l.items) { + index = len(l.items) + } + + // Shift current item. + if l.currentItem < len(l.items) && l.currentItem >= index { + l.currentItem++ + } + + // Insert item (make space for the new item, then shift and insert). + l.items = append(l.items, nil) + if index < len(l.items)-1 { // -1 because l.items has already grown by one item. + copy(l.items[index+1:], l.items[index:]) + } + l.items[index] = item + + // Fire a "change" event for the first item in the list. + if len(l.items) == 1 && l.changed != nil { + item := l.items[0] + l.changed(0, item.MainText, item.SecondaryText, item.Shortcut) + } + + return l +} + +// GetItemCount returns the number of items in the list. +func (l *List) GetItemCount() int { + return len(l.items) +} + +// GetItemText returns an item's texts (main and secondary). Panics if the index +// is out of range. +func (l *List) GetItemText(index int) (main, secondary string) { + return l.items[index].MainText, l.items[index].SecondaryText +} + +// SetItemText sets an item's main and secondary text. Panics if the index is +// out of range. +func (l *List) SetItemText(index int, main, secondary string) *List { + item := l.items[index] + item.MainText = main + item.SecondaryText = secondary + return l +} + +// FindItems searches the main and secondary texts for the given strings and +// returns a list of item indices in which those strings are found. One of the +// two search strings may be empty, it will then be ignored. Indices are always +// returned in ascending order. +// +// If mustContainBoth is set to true, mainSearch must be contained in the main +// text AND secondarySearch must be contained in the secondary text. If it is +// false, only one of the two search strings must be contained. +// +// Set ignoreCase to true for case-insensitive search. +func (l *List) FindItems(mainSearch, secondarySearch string, mustContainBoth, ignoreCase bool) (indices []int) { + if mainSearch == "" && secondarySearch == "" { + return + } + + if ignoreCase { + mainSearch = strings.ToLower(mainSearch) + secondarySearch = strings.ToLower(secondarySearch) + } + + for index, item := range l.items { + mainText := item.MainText + secondaryText := item.SecondaryText + if ignoreCase { + mainText = strings.ToLower(mainText) + secondaryText = strings.ToLower(secondaryText) + } + + // strings.Contains() always returns true for a "" search. + mainContained := strings.Contains(mainText, mainSearch) + secondaryContained := strings.Contains(secondaryText, secondarySearch) + if mustContainBoth && mainContained && secondaryContained || + !mustContainBoth && (mainText != "" && mainContained || secondaryText != "" && secondaryContained) { + indices = append(indices, index) + } + } + + return +} + +// Clear removes all items from the list. +func (l *List) Clear() *List { + l.items = nil + l.currentItem = 0 + return l +} + +// Draw draws this primitive onto the screen. +func (l *List) Draw(screen tcell.Screen) { + l.Box.Draw(screen) + + // Determine the dimensions. + x, y, width, height := l.GetInnerRect() + bottomLimit := y + height + _, totalHeight := screen.Size() + if bottomLimit > totalHeight { + bottomLimit = totalHeight + } + + // Do we show any shortcuts? + var showShortcuts bool + for _, item := range l.items { + if item.Shortcut != 0 { + showShortcuts = true + x += 4 + width -= 4 + break + } + } + + // Adjust offset to keep the current selection in view. + if l.currentItem < l.offset { + l.offset = l.currentItem + } else if l.showSecondaryText { + if 2*(l.currentItem-l.offset) >= height-1 { + l.offset = (2*l.currentItem + 3 - height) / 2 + } + } else { + if l.currentItem-l.offset >= height { + l.offset = l.currentItem + 1 - height + } + } + + // Draw the list items. + for index, item := range l.items { + if index < l.offset { + continue + } + + if y >= bottomLimit { + break + } + + // Shortcuts. + if showShortcuts && item.Shortcut != 0 { + Print(screen, fmt.Sprintf("(%s)", string(item.Shortcut)), x-5, y, 4, AlignRight, l.shortcutColor) + } + + // Main text. + Print(screen, item.MainText, x, y, width, AlignLeft, l.mainTextColor) + + // Background color of selected text. + if index == l.currentItem && (!l.selectedFocusOnly || l.HasFocus()) { + textWidth := width + if !l.highlightFullLine { + if w := TaggedStringWidth(item.MainText); w < textWidth { + textWidth = w + } + } + + for bx := 0; bx < textWidth; bx++ { + m, c, style, _ := screen.GetContent(x+bx, y) + fg, _, _ := style.Decompose() + if fg == l.mainTextColor { + fg = l.selectedTextColor + } + style = style.Background(l.selectedBackgroundColor).Foreground(fg) + screen.SetContent(x+bx, y, m, c, style) + } + } + + y++ + + if y >= bottomLimit { + break + } + + // Secondary text. + if l.showSecondaryText { + Print(screen, item.SecondaryText, x, y, width, AlignLeft, l.secondaryTextColor) + y++ + } + } +} + +// InputHandler returns the handler for this primitive. +func (l *List) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return l.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + if event.Key() == tcell.KeyEscape { + if l.done != nil { + l.done() + } + return + } else if len(l.items) == 0 { + return + } + + previousItem := l.currentItem + + switch key := event.Key(); key { + case tcell.KeyTab, tcell.KeyDown, tcell.KeyRight: + l.currentItem++ + case tcell.KeyBacktab, tcell.KeyUp, tcell.KeyLeft: + l.currentItem-- + case tcell.KeyHome: + l.currentItem = 0 + case tcell.KeyEnd: + l.currentItem = len(l.items) - 1 + case tcell.KeyPgDn: + _, _, _, height := l.GetInnerRect() + l.currentItem += height + case tcell.KeyPgUp: + _, _, _, height := l.GetInnerRect() + l.currentItem -= height + case tcell.KeyEnter: + if l.currentItem >= 0 && l.currentItem < len(l.items) { + item := l.items[l.currentItem] + if item.Selected != nil { + item.Selected() + } + if l.selected != nil { + l.selected(l.currentItem, item.MainText, item.SecondaryText, item.Shortcut) + } + } + case tcell.KeyRune: + ch := event.Rune() + if ch != ' ' { + // It's not a space bar. Is it a shortcut? + var found bool + for index, item := range l.items { + if item.Shortcut == ch { + // We have a shortcut. + found = true + l.currentItem = index + break + } + } + if !found { + break + } + } + item := l.items[l.currentItem] + if item.Selected != nil { + item.Selected() + } + if l.selected != nil { + l.selected(l.currentItem, item.MainText, item.SecondaryText, item.Shortcut) + } + } + + if l.currentItem < 0 { + if l.wrapAround { + l.currentItem = len(l.items) - 1 + } else { + l.currentItem = 0 + } + } else if l.currentItem >= len(l.items) { + if l.wrapAround { + l.currentItem = 0 + } else { + l.currentItem = len(l.items) - 1 + } + } + + if l.currentItem != previousItem && l.currentItem < len(l.items) && l.changed != nil { + item := l.items[l.currentItem] + l.changed(l.currentItem, item.MainText, item.SecondaryText, item.Shortcut) + } + }) +} + +// indexAtPoint returns the index of the list item found at the given position +// or a negative value if there is no such list item. +func (l *List) indexAtPoint(x, y int) int { + rectX, rectY, width, height := l.GetInnerRect() + if rectX < 0 || rectX >= rectX+width || y < rectY || y >= rectY+height { + return -1 + } + + index := y - rectY + if l.showSecondaryText { + index /= 2 + } + index += l.offset + + if index >= len(l.items) { + return -1 + } + return index +} + +// MouseHandler returns the mouse handler for this primitive. +func (l *List) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return l.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !l.InRect(event.Position()) { + return false, nil + } + + // Process mouse event. + switch action { + case MouseLeftClick: + setFocus(l) + index := l.indexAtPoint(event.Position()) + if index != -1 { + item := l.items[index] + if item.Selected != nil { + item.Selected() + } + if l.selected != nil { + l.selected(index, item.MainText, item.SecondaryText, item.Shortcut) + } + if index != l.currentItem && l.changed != nil { + l.changed(index, item.MainText, item.SecondaryText, item.Shortcut) + } + l.currentItem = index + } + consumed = true + case MouseScrollUp: + if l.offset > 0 { + l.offset-- + } + consumed = true + case MouseScrollDown: + lines := len(l.items) - l.offset + if l.showSecondaryText { + lines *= 2 + } + if _, _, _, height := l.GetInnerRect(); lines > height { + l.offset++ + } + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/modal.go b/vendor/github.com/rivo/tview/modal.go new file mode 100644 index 0000000..2d557f0 --- /dev/null +++ b/vendor/github.com/rivo/tview/modal.go @@ -0,0 +1,202 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Modal is a centered message window used to inform the user or prompt them +// for an immediate decision. It needs to have at least one button (added via +// AddButtons()) or it will never disappear. +// +// See https://github.com/rivo/tview/wiki/Modal for an example. +type Modal struct { + *Box + + // The frame embedded in the modal. + frame *Frame + + // The form embedded in the modal's frame. + form *Form + + // The message text (original, not word-wrapped). + text string + + // The text color. + textColor tcell.Color + + // The optional callback for when the user clicked one of the buttons. It + // receives the index of the clicked button and the button's label. + done func(buttonIndex int, buttonLabel string) +} + +// NewModal returns a new modal message window. +func NewModal() *Modal { + m := &Modal{ + Box: NewBox(), + textColor: Styles.PrimaryTextColor, + } + m.form = NewForm(). + SetButtonsAlign(AlignCenter). + SetButtonBackgroundColor(Styles.PrimitiveBackgroundColor). + SetButtonTextColor(Styles.PrimaryTextColor) + m.form.SetBackgroundColor(Styles.ContrastBackgroundColor).SetBorderPadding(0, 0, 0, 0) + m.form.SetCancelFunc(func() { + if m.done != nil { + m.done(-1, "") + } + }) + m.frame = NewFrame(m.form).SetBorders(0, 0, 1, 0, 0, 0) + m.frame.SetBorder(true). + SetBackgroundColor(Styles.ContrastBackgroundColor). + SetBorderPadding(1, 1, 1, 1) + m.focus = m + return m +} + +// SetBackgroundColor sets the color of the modal frame background. +func (m *Modal) SetBackgroundColor(color tcell.Color) *Modal { + m.form.SetBackgroundColor(color) + m.frame.SetBackgroundColor(color) + return m +} + +// SetTextColor sets the color of the message text. +func (m *Modal) SetTextColor(color tcell.Color) *Modal { + m.textColor = color + return m +} + +// SetButtonBackgroundColor sets the background color of the buttons. +func (m *Modal) SetButtonBackgroundColor(color tcell.Color) *Modal { + m.form.SetButtonBackgroundColor(color) + return m +} + +// SetButtonTextColor sets the color of the button texts. +func (m *Modal) SetButtonTextColor(color tcell.Color) *Modal { + m.form.SetButtonTextColor(color) + return m +} + +// SetDoneFunc sets a handler which is called when one of the buttons was +// pressed. It receives the index of the button as well as its label text. The +// handler is also called when the user presses the Escape key. The index will +// then be negative and the label text an emptry string. +func (m *Modal) SetDoneFunc(handler func(buttonIndex int, buttonLabel string)) *Modal { + m.done = handler + return m +} + +// SetText sets the message text of the window. The text may contain line +// breaks. Note that words are wrapped, too, based on the final size of the +// window. +func (m *Modal) SetText(text string) *Modal { + m.text = text + return m +} + +// AddButtons adds buttons to the window. There must be at least one button and +// a "done" handler so the window can be closed again. +func (m *Modal) AddButtons(labels []string) *Modal { + for index, label := range labels { + func(i int, l string) { + m.form.AddButton(label, func() { + if m.done != nil { + m.done(i, l) + } + }) + button := m.form.GetButton(m.form.GetButtonCount() - 1) + button.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + switch event.Key() { + case tcell.KeyDown, tcell.KeyRight: + return tcell.NewEventKey(tcell.KeyTab, 0, tcell.ModNone) + case tcell.KeyUp, tcell.KeyLeft: + return tcell.NewEventKey(tcell.KeyBacktab, 0, tcell.ModNone) + } + return event + }) + }(index, label) + } + return m +} + +// ClearButtons removes all buttons from the window. +func (m *Modal) ClearButtons() *Modal { + m.form.ClearButtons() + return m +} + +// SetFocus shifts the focus to the button with the given index. +func (m *Modal) SetFocus(index int) *Modal { + m.form.SetFocus(index) + return m +} + +// Focus is called when this primitive receives focus. +func (m *Modal) Focus(delegate func(p Primitive)) { + delegate(m.form) +} + +// HasFocus returns whether or not this primitive has focus. +func (m *Modal) HasFocus() bool { + return m.form.HasFocus() +} + +// Draw draws this primitive onto the screen. +func (m *Modal) Draw(screen tcell.Screen) { + // Calculate the width of this modal. + buttonsWidth := 0 + for _, button := range m.form.buttons { + buttonsWidth += TaggedStringWidth(button.label) + 4 + 2 + } + buttonsWidth -= 2 + screenWidth, screenHeight := screen.Size() + width := screenWidth / 3 + if width < buttonsWidth { + width = buttonsWidth + } + // width is now without the box border. + + // Reset the text and find out how wide it is. + m.frame.Clear() + lines := WordWrap(m.text, width) + for _, line := range lines { + m.frame.AddText(line, true, AlignCenter, m.textColor) + } + + // Set the modal's position and size. + height := len(lines) + 6 + width += 4 + x := (screenWidth - width) / 2 + y := (screenHeight - height) / 2 + m.SetRect(x, y, width, height) + + // Draw the frame. + m.frame.SetRect(x, y, width, height) + m.frame.Draw(screen) +} + +// MouseHandler returns the mouse handler for this primitive. +func (m *Modal) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return m.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + // Pass mouse events on to the form. + consumed, capture = m.form.MouseHandler()(action, event, setFocus) + if !consumed && action == MouseLeftClick && m.InRect(event.Position()) { + setFocus(m) + consumed = true + } + return + }) +} + +// InputHandler returns the handler for this primitive. +func (m *Modal) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return m.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + if m.frame.GetFocusable().HasFocus() { + if handler := m.frame.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + }) +} diff --git a/vendor/github.com/rivo/tview/pages.go b/vendor/github.com/rivo/tview/pages.go new file mode 100644 index 0000000..0ce9656 --- /dev/null +++ b/vendor/github.com/rivo/tview/pages.go @@ -0,0 +1,316 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// page represents one page of a Pages object. +type page struct { + Name string // The page's name. + Item Primitive // The page's primitive. + Resize bool // Whether or not to resize the page when it is drawn. + Visible bool // Whether or not this page is visible. +} + +// Pages is a container for other primitives often used as the application's +// root primitive. It allows to easily switch the visibility of the contained +// primitives. +// +// See https://github.com/rivo/tview/wiki/Pages for an example. +type Pages struct { + *Box + + // The contained pages. (Visible) pages are drawn from back to front. + pages []*page + + // We keep a reference to the function which allows us to set the focus to + // a newly visible page. + setFocus func(p Primitive) + + // An optional handler which is called whenever the visibility or the order of + // pages changes. + changed func() +} + +// NewPages returns a new Pages object. +func NewPages() *Pages { + p := &Pages{ + Box: NewBox(), + } + p.focus = p + return p +} + +// SetChangedFunc sets a handler which is called whenever the visibility or the +// order of any visible pages changes. This can be used to redraw the pages. +func (p *Pages) SetChangedFunc(handler func()) *Pages { + p.changed = handler + return p +} + +// GetPageCount returns the number of pages currently stored in this object. +func (p *Pages) GetPageCount() int { + return len(p.pages) +} + +// AddPage adds a new page with the given name and primitive. If there was +// previously a page with the same name, it is overwritten. Leaving the name +// empty may cause conflicts in other functions so always specify a non-empty +// name. +// +// Visible pages will be drawn in the order they were added (unless that order +// was changed in one of the other functions). If "resize" is set to true, the +// primitive will be set to the size available to the Pages primitive whenever +// the pages are drawn. +func (p *Pages) AddPage(name string, item Primitive, resize, visible bool) *Pages { + hasFocus := p.HasFocus() + for index, pg := range p.pages { + if pg.Name == name { + p.pages = append(p.pages[:index], p.pages[index+1:]...) + break + } + } + p.pages = append(p.pages, &page{Item: item, Name: name, Resize: resize, Visible: visible}) + if p.changed != nil { + p.changed() + } + if hasFocus { + p.Focus(p.setFocus) + } + return p +} + +// AddAndSwitchToPage calls AddPage(), then SwitchToPage() on that newly added +// page. +func (p *Pages) AddAndSwitchToPage(name string, item Primitive, resize bool) *Pages { + p.AddPage(name, item, resize, true) + p.SwitchToPage(name) + return p +} + +// RemovePage removes the page with the given name. If that page was the only +// visible page, visibility is assigned to the last page. +func (p *Pages) RemovePage(name string) *Pages { + var isVisible bool + hasFocus := p.HasFocus() + for index, page := range p.pages { + if page.Name == name { + isVisible = page.Visible + p.pages = append(p.pages[:index], p.pages[index+1:]...) + if page.Visible && p.changed != nil { + p.changed() + } + break + } + } + if isVisible { + for index, page := range p.pages { + if index < len(p.pages)-1 { + if page.Visible { + break // There is a remaining visible page. + } + } else { + page.Visible = true // We need at least one visible page. + } + } + } + if hasFocus { + p.Focus(p.setFocus) + } + return p +} + +// HasPage returns true if a page with the given name exists in this object. +func (p *Pages) HasPage(name string) bool { + for _, page := range p.pages { + if page.Name == name { + return true + } + } + return false +} + +// ShowPage sets a page's visibility to "true" (in addition to any other pages +// which are already visible). +func (p *Pages) ShowPage(name string) *Pages { + for _, page := range p.pages { + if page.Name == name { + page.Visible = true + if p.changed != nil { + p.changed() + } + break + } + } + if p.HasFocus() { + p.Focus(p.setFocus) + } + return p +} + +// HidePage sets a page's visibility to "false". +func (p *Pages) HidePage(name string) *Pages { + for _, page := range p.pages { + if page.Name == name { + page.Visible = false + if p.changed != nil { + p.changed() + } + break + } + } + if p.HasFocus() { + p.Focus(p.setFocus) + } + return p +} + +// SwitchToPage sets a page's visibility to "true" and all other pages' +// visibility to "false". +func (p *Pages) SwitchToPage(name string) *Pages { + for _, page := range p.pages { + if page.Name == name { + page.Visible = true + } else { + page.Visible = false + } + } + if p.changed != nil { + p.changed() + } + if p.HasFocus() { + p.Focus(p.setFocus) + } + return p +} + +// SendToFront changes the order of the pages such that the page with the given +// name comes last, causing it to be drawn last with the next update (if +// visible). +func (p *Pages) SendToFront(name string) *Pages { + for index, page := range p.pages { + if page.Name == name { + if index < len(p.pages)-1 { + p.pages = append(append(p.pages[:index], p.pages[index+1:]...), page) + } + if page.Visible && p.changed != nil { + p.changed() + } + break + } + } + if p.HasFocus() { + p.Focus(p.setFocus) + } + return p +} + +// SendToBack changes the order of the pages such that the page with the given +// name comes first, causing it to be drawn first with the next update (if +// visible). +func (p *Pages) SendToBack(name string) *Pages { + for index, pg := range p.pages { + if pg.Name == name { + if index > 0 { + p.pages = append(append([]*page{pg}, p.pages[:index]...), p.pages[index+1:]...) + } + if pg.Visible && p.changed != nil { + p.changed() + } + break + } + } + if p.HasFocus() { + p.Focus(p.setFocus) + } + return p +} + +// GetFrontPage returns the front-most visible page. If there are no visible +// pages, ("", nil) is returned. +func (p *Pages) GetFrontPage() (name string, item Primitive) { + for index := len(p.pages) - 1; index >= 0; index-- { + if p.pages[index].Visible { + return p.pages[index].Name, p.pages[index].Item + } + } + return +} + +// HasFocus returns whether or not this primitive has focus. +func (p *Pages) HasFocus() bool { + for _, page := range p.pages { + if page.Item.GetFocusable().HasFocus() { + return true + } + } + return false +} + +// Focus is called by the application when the primitive receives focus. +func (p *Pages) Focus(delegate func(p Primitive)) { + if delegate == nil { + return // We cannot delegate so we cannot focus. + } + p.setFocus = delegate + var topItem Primitive + for _, page := range p.pages { + if page.Visible { + topItem = page.Item + } + } + if topItem != nil { + delegate(topItem) + } +} + +// Draw draws this primitive onto the screen. +func (p *Pages) Draw(screen tcell.Screen) { + p.Box.Draw(screen) + for _, page := range p.pages { + if !page.Visible { + continue + } + if page.Resize { + x, y, width, height := p.GetInnerRect() + page.Item.SetRect(x, y, width, height) + } + page.Item.Draw(screen) + } +} + +// MouseHandler returns the mouse handler for this primitive. +func (p *Pages) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return p.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + if !p.InRect(event.Position()) { + return false, nil + } + + // Pass mouse events along to the last visible page item that takes it. + for index := len(p.pages) - 1; index >= 0; index-- { + page := p.pages[index] + if page.Visible { + consumed, capture = page.Item.MouseHandler()(action, event, setFocus) + if consumed { + return + } + } + } + + return + }) +} + +// InputHandler returns the handler for this primitive. +func (p *Pages) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return p.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + for _, page := range p.pages { + if page.Item.GetFocusable().HasFocus() { + if handler := page.Item.InputHandler(); handler != nil { + handler(event, setFocus) + return + } + } + } + }) +} diff --git a/vendor/github.com/rivo/tview/primitive.go b/vendor/github.com/rivo/tview/primitive.go new file mode 100644 index 0000000..416d708 --- /dev/null +++ b/vendor/github.com/rivo/tview/primitive.go @@ -0,0 +1,57 @@ +package tview + +import "github.com/gdamore/tcell" + +// Primitive is the top-most interface for all graphical primitives. +type Primitive interface { + // Draw draws this primitive onto the screen. Implementers can call the + // screen's ShowCursor() function but should only do so when they have focus. + // (They will need to keep track of this themselves.) + Draw(screen tcell.Screen) + + // GetRect returns the current position of the primitive, x, y, width, and + // height. + GetRect() (int, int, int, int) + + // SetRect sets a new position of the primitive. + SetRect(x, y, width, height int) + + // InputHandler returns a handler which receives key events when it has focus. + // It is called by the Application class. + // + // A value of nil may also be returned, in which case this primitive cannot + // receive focus and will not process any key events. + // + // The handler will receive the key event and a function that allows it to + // set the focus to a different primitive, so that future key events are sent + // to that primitive. + // + // The Application's Draw() function will be called automatically after the + // handler returns. + // + // The Box class provides functionality to intercept keyboard input. If you + // subclass from Box, it is recommended that you wrap your handler using + // Box.WrapInputHandler() so you inherit that functionality. + InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) + + // Focus is called by the application when the primitive receives focus. + // Implementers may call delegate() to pass the focus on to another primitive. + Focus(delegate func(p Primitive)) + + // Blur is called by the application when the primitive loses focus. + Blur() + + // GetFocusable returns the item's Focusable. + GetFocusable() Focusable + + // MouseHandler returns a handler which receives mouse events. + // It is called by the Application class. + // + // A value of nil may also be returned to stop the downward propagation of + // mouse events. + // + // The Box class provides functionality to intercept mouse events. If you + // subclass from Box, it is recommended that you wrap your handler using + // Box.WrapMouseHandler() so you inherit that functionality. + MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) +} diff --git a/vendor/github.com/rivo/tview/semigraphics.go b/vendor/github.com/rivo/tview/semigraphics.go new file mode 100644 index 0000000..3b66c5f --- /dev/null +++ b/vendor/github.com/rivo/tview/semigraphics.go @@ -0,0 +1,296 @@ +package tview + +import "github.com/gdamore/tcell" + +// Semigraphics provides an easy way to access unicode characters for drawing. +// +// Named like the unicode characters, 'Semigraphics'-prefix used if unicode block +// isn't prefixed itself. +const ( + // Block: General Punctation U+2000-U+206F (http://unicode.org/charts/PDF/U2000.pdf) + SemigraphicsHorizontalEllipsis rune = '\u2026' // … + + // Block: Box Drawing U+2500-U+257F (http://unicode.org/charts/PDF/U2500.pdf) + BoxDrawingsLightHorizontal rune = '\u2500' // ─ + BoxDrawingsHeavyHorizontal rune = '\u2501' // ━ + BoxDrawingsLightVertical rune = '\u2502' // │ + BoxDrawingsHeavyVertical rune = '\u2503' // ┃ + BoxDrawingsLightTripleDashHorizontal rune = '\u2504' // ┄ + BoxDrawingsHeavyTripleDashHorizontal rune = '\u2505' // ┅ + BoxDrawingsLightTripleDashVertical rune = '\u2506' // ┆ + BoxDrawingsHeavyTripleDashVertical rune = '\u2507' // ┇ + BoxDrawingsLightQuadrupleDashHorizontal rune = '\u2508' // ┈ + BoxDrawingsHeavyQuadrupleDashHorizontal rune = '\u2509' // ┉ + BoxDrawingsLightQuadrupleDashVertical rune = '\u250a' // ┊ + BoxDrawingsHeavyQuadrupleDashVertical rune = '\u250b' // ┋ + BoxDrawingsLightDownAndRight rune = '\u250c' // ┌ + BoxDrawingsDownLighAndRightHeavy rune = '\u250d' // ┍ + BoxDrawingsDownHeavyAndRightLight rune = '\u250e' // ┎ + BoxDrawingsHeavyDownAndRight rune = '\u250f' // ┏ + BoxDrawingsLightDownAndLeft rune = '\u2510' // ┐ + BoxDrawingsDownLighAndLeftHeavy rune = '\u2511' // ┑ + BoxDrawingsDownHeavyAndLeftLight rune = '\u2512' // ┒ + BoxDrawingsHeavyDownAndLeft rune = '\u2513' // ┓ + BoxDrawingsLightUpAndRight rune = '\u2514' // └ + BoxDrawingsUpLightAndRightHeavy rune = '\u2515' // ┕ + BoxDrawingsUpHeavyAndRightLight rune = '\u2516' // ┖ + BoxDrawingsHeavyUpAndRight rune = '\u2517' // ┗ + BoxDrawingsLightUpAndLeft rune = '\u2518' // ┘ + BoxDrawingsUpLightAndLeftHeavy rune = '\u2519' // ┙ + BoxDrawingsUpHeavyAndLeftLight rune = '\u251a' // ┚ + BoxDrawingsHeavyUpAndLeft rune = '\u251b' // ┛ + BoxDrawingsLightVerticalAndRight rune = '\u251c' // ├ + BoxDrawingsVerticalLightAndRightHeavy rune = '\u251d' // ┝ + BoxDrawingsUpHeavyAndRightDownLight rune = '\u251e' // ┞ + BoxDrawingsDownHeacyAndRightUpLight rune = '\u251f' // ┟ + BoxDrawingsVerticalHeavyAndRightLight rune = '\u2520' // ┠ + BoxDrawingsDownLightAnbdRightUpHeavy rune = '\u2521' // ┡ + BoxDrawingsUpLightAndRightDownHeavy rune = '\u2522' // ┢ + BoxDrawingsHeavyVerticalAndRight rune = '\u2523' // ┣ + BoxDrawingsLightVerticalAndLeft rune = '\u2524' // ┤ + BoxDrawingsVerticalLightAndLeftHeavy rune = '\u2525' // ┥ + BoxDrawingsUpHeavyAndLeftDownLight rune = '\u2526' // ┦ + BoxDrawingsDownHeavyAndLeftUpLight rune = '\u2527' // ┧ + BoxDrawingsVerticalheavyAndLeftLight rune = '\u2528' // ┨ + BoxDrawingsDownLightAndLeftUpHeavy rune = '\u2529' // ┨ + BoxDrawingsUpLightAndLeftDownHeavy rune = '\u252a' // ┪ + BoxDrawingsHeavyVerticalAndLeft rune = '\u252b' // ┫ + BoxDrawingsLightDownAndHorizontal rune = '\u252c' // ┬ + BoxDrawingsLeftHeavyAndRightDownLight rune = '\u252d' // ┭ + BoxDrawingsRightHeavyAndLeftDownLight rune = '\u252e' // ┮ + BoxDrawingsDownLightAndHorizontalHeavy rune = '\u252f' // ┯ + BoxDrawingsDownHeavyAndHorizontalLight rune = '\u2530' // ┰ + BoxDrawingsRightLightAndLeftDownHeavy rune = '\u2531' // ┱ + BoxDrawingsLeftLightAndRightDownHeavy rune = '\u2532' // ┲ + BoxDrawingsHeavyDownAndHorizontal rune = '\u2533' // ┳ + BoxDrawingsLightUpAndHorizontal rune = '\u2534' // ┴ + BoxDrawingsLeftHeavyAndRightUpLight rune = '\u2535' // ┵ + BoxDrawingsRightHeavyAndLeftUpLight rune = '\u2536' // ┶ + BoxDrawingsUpLightAndHorizontalHeavy rune = '\u2537' // ┷ + BoxDrawingsUpHeavyAndHorizontalLight rune = '\u2538' // ┸ + BoxDrawingsRightLightAndLeftUpHeavy rune = '\u2539' // ┹ + BoxDrawingsLeftLightAndRightUpHeavy rune = '\u253a' // ┺ + BoxDrawingsHeavyUpAndHorizontal rune = '\u253b' // ┻ + BoxDrawingsLightVerticalAndHorizontal rune = '\u253c' // ┼ + BoxDrawingsLeftHeavyAndRightVerticalLight rune = '\u253d' // ┽ + BoxDrawingsRightHeavyAndLeftVerticalLight rune = '\u253e' // ┾ + BoxDrawingsVerticalLightAndHorizontalHeavy rune = '\u253f' // ┿ + BoxDrawingsUpHeavyAndDownHorizontalLight rune = '\u2540' // ╀ + BoxDrawingsDownHeavyAndUpHorizontalLight rune = '\u2541' // ╁ + BoxDrawingsVerticalHeavyAndHorizontalLight rune = '\u2542' // ╂ + BoxDrawingsLeftUpHeavyAndRightDownLight rune = '\u2543' // ╃ + BoxDrawingsRightUpHeavyAndLeftDownLight rune = '\u2544' // ╄ + BoxDrawingsLeftDownHeavyAndRightUpLight rune = '\u2545' // ╅ + BoxDrawingsRightDownHeavyAndLeftUpLight rune = '\u2546' // ╆ + BoxDrawingsDownLightAndUpHorizontalHeavy rune = '\u2547' // ╇ + BoxDrawingsUpLightAndDownHorizontalHeavy rune = '\u2548' // ╈ + BoxDrawingsRightLightAndLeftVerticalHeavy rune = '\u2549' // ╉ + BoxDrawingsLeftLightAndRightVerticalHeavy rune = '\u254a' // ╊ + BoxDrawingsHeavyVerticalAndHorizontal rune = '\u254b' // ╋ + BoxDrawingsLightDoubleDashHorizontal rune = '\u254c' // ╌ + BoxDrawingsHeavyDoubleDashHorizontal rune = '\u254d' // ╍ + BoxDrawingsLightDoubleDashVertical rune = '\u254e' // ╎ + BoxDrawingsHeavyDoubleDashVertical rune = '\u254f' // ╏ + BoxDrawingsDoubleHorizontal rune = '\u2550' // ═ + BoxDrawingsDoubleVertical rune = '\u2551' // ║ + BoxDrawingsDownSingleAndRightDouble rune = '\u2552' // ╒ + BoxDrawingsDownDoubleAndRightSingle rune = '\u2553' // ╓ + BoxDrawingsDoubleDownAndRight rune = '\u2554' // ╔ + BoxDrawingsDownSingleAndLeftDouble rune = '\u2555' // ╕ + BoxDrawingsDownDoubleAndLeftSingle rune = '\u2556' // ╖ + BoxDrawingsDoubleDownAndLeft rune = '\u2557' // ╗ + BoxDrawingsUpSingleAndRightDouble rune = '\u2558' // ╘ + BoxDrawingsUpDoubleAndRightSingle rune = '\u2559' // ╙ + BoxDrawingsDoubleUpAndRight rune = '\u255a' // ╚ + BoxDrawingsUpSingleAndLeftDouble rune = '\u255b' // ╛ + BoxDrawingsUpDobuleAndLeftSingle rune = '\u255c' // ╜ + BoxDrawingsDoubleUpAndLeft rune = '\u255d' // ╝ + BoxDrawingsVerticalSingleAndRightDouble rune = '\u255e' // ╞ + BoxDrawingsVerticalDoubleAndRightSingle rune = '\u255f' // ╟ + BoxDrawingsDoubleVerticalAndRight rune = '\u2560' // ╠ + BoxDrawingsVerticalSingleAndLeftDouble rune = '\u2561' // ╡ + BoxDrawingsVerticalDoubleAndLeftSingle rune = '\u2562' // ╢ + BoxDrawingsDoubleVerticalAndLeft rune = '\u2563' // ╣ + BoxDrawingsDownSingleAndHorizontalDouble rune = '\u2564' // ╤ + BoxDrawingsDownDoubleAndHorizontalSingle rune = '\u2565' // ╥ + BoxDrawingsDoubleDownAndHorizontal rune = '\u2566' // ╦ + BoxDrawingsUpSingleAndHorizontalDouble rune = '\u2567' // ╧ + BoxDrawingsUpDoubleAndHorizontalSingle rune = '\u2568' // ╨ + BoxDrawingsDoubleUpAndHorizontal rune = '\u2569' // ╩ + BoxDrawingsVerticalSingleAndHorizontalDouble rune = '\u256a' // ╪ + BoxDrawingsVerticalDoubleAndHorizontalSingle rune = '\u256b' // ╫ + BoxDrawingsDoubleVerticalAndHorizontal rune = '\u256c' // ╬ + BoxDrawingsLightArcDownAndRight rune = '\u256d' // ╭ + BoxDrawingsLightArcDownAndLeft rune = '\u256e' // ╮ + BoxDrawingsLightArcUpAndLeft rune = '\u256f' // ╯ + BoxDrawingsLightArcUpAndRight rune = '\u2570' // ╰ + BoxDrawingsLightDiagonalUpperRightToLowerLeft rune = '\u2571' // ╱ + BoxDrawingsLightDiagonalUpperLeftToLowerRight rune = '\u2572' // ╲ + BoxDrawingsLightDiagonalCross rune = '\u2573' // ╳ + BoxDrawingsLightLeft rune = '\u2574' // ╴ + BoxDrawingsLightUp rune = '\u2575' // ╵ + BoxDrawingsLightRight rune = '\u2576' // ╶ + BoxDrawingsLightDown rune = '\u2577' // ╷ + BoxDrawingsHeavyLeft rune = '\u2578' // ╸ + BoxDrawingsHeavyUp rune = '\u2579' // ╹ + BoxDrawingsHeavyRight rune = '\u257a' // ╺ + BoxDrawingsHeavyDown rune = '\u257b' // ╻ + BoxDrawingsLightLeftAndHeavyRight rune = '\u257c' // ╼ + BoxDrawingsLightUpAndHeavyDown rune = '\u257d' // ╽ + BoxDrawingsHeavyLeftAndLightRight rune = '\u257e' // ╾ + BoxDrawingsHeavyUpAndLightDown rune = '\u257f' // ╿ +) + +// SemigraphicJoints is a map for joining semigraphic (or otherwise) runes. +// So far only light lines are supported but if you want to change the border +// styling you need to provide the joints, too. +// The matching will be sorted ascending by rune value, so you don't need to +// provide all rune combinations, +// e.g. (─) + (│) = (┼) will also match (│) + (─) = (┼) +var SemigraphicJoints = map[string]rune{ + // (─) + (│) = (┼) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightVertical}): BoxDrawingsLightVerticalAndHorizontal, + // (─) + (┌) = (┬) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightDownAndRight}): BoxDrawingsLightDownAndHorizontal, + // (─) + (┐) = (┬) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightDownAndLeft}): BoxDrawingsLightDownAndHorizontal, + // (─) + (└) = (┴) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightUpAndRight}): BoxDrawingsLightUpAndHorizontal, + // (─) + (┘) = (┴) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightUpAndLeft}): BoxDrawingsLightUpAndHorizontal, + // (─) + (├) = (┼) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndHorizontal, + // (─) + (┤) = (┼) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndHorizontal, + // (─) + (┬) = (┬) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightDownAndHorizontal, + // (─) + (┴) = (┴) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightUpAndHorizontal, + // (─) + (┼) = (┼) + string([]rune{BoxDrawingsLightHorizontal, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (│) + (┌) = (├) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightDownAndRight}): BoxDrawingsLightVerticalAndRight, + // (│) + (┐) = (┤) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightDownAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (│) + (└) = (├) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightUpAndRight}): BoxDrawingsLightVerticalAndRight, + // (│) + (┘) = (┤) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightUpAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (│) + (├) = (├) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndRight, + // (│) + (┤) = (┤) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (│) + (┬) = (┼) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (│) + (┴) = (┼) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (│) + (┼) = (┼) + string([]rune{BoxDrawingsLightVertical, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┌) + (┐) = (┬) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightDownAndLeft}): BoxDrawingsLightDownAndHorizontal, + // (┌) + (└) = (├) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightUpAndRight}): BoxDrawingsLightVerticalAndRight, + // (┌) + (┘) = (┼) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightUpAndLeft}): BoxDrawingsLightVerticalAndHorizontal, + // (┌) + (├) = (├) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndRight, + // (┌) + (┤) = (┼) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndHorizontal, + // (┌) + (┬) = (┬) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightDownAndHorizontal, + // (┌) + (┴) = (┼) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┌) + (┴) = (┼) + string([]rune{BoxDrawingsLightDownAndRight, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┐) + (└) = (┼) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightUpAndRight}): BoxDrawingsLightVerticalAndHorizontal, + // (┐) + (┘) = (┤) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightUpAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (┐) + (├) = (┼) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndHorizontal, + // (┐) + (┤) = (┤) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (┐) + (┬) = (┬) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightDownAndHorizontal, + // (┐) + (┴) = (┼) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┐) + (┼) = (┼) + string([]rune{BoxDrawingsLightDownAndLeft, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (└) + (┘) = (┴) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightUpAndLeft}): BoxDrawingsLightUpAndHorizontal, + // (└) + (├) = (├) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndRight, + // (└) + (┤) = (┼) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndHorizontal, + // (└) + (┬) = (┼) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (└) + (┴) = (┴) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightUpAndHorizontal, + // (└) + (┼) = (┼) + string([]rune{BoxDrawingsLightUpAndRight, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┘) + (├) = (┼) + string([]rune{BoxDrawingsLightUpAndLeft, BoxDrawingsLightVerticalAndRight}): BoxDrawingsLightVerticalAndHorizontal, + // (┘) + (┤) = (┤) + string([]rune{BoxDrawingsLightUpAndLeft, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndLeft, + // (┘) + (┬) = (┼) + string([]rune{BoxDrawingsLightUpAndLeft, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┘) + (┴) = (┴) + string([]rune{BoxDrawingsLightUpAndLeft, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightUpAndHorizontal, + // (┘) + (┼) = (┼) + string([]rune{BoxDrawingsLightUpAndLeft, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (├) + (┤) = (┼) + string([]rune{BoxDrawingsLightVerticalAndRight, BoxDrawingsLightVerticalAndLeft}): BoxDrawingsLightVerticalAndHorizontal, + // (├) + (┬) = (┼) + string([]rune{BoxDrawingsLightVerticalAndRight, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (├) + (┴) = (┼) + string([]rune{BoxDrawingsLightVerticalAndRight, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (├) + (┼) = (┼) + string([]rune{BoxDrawingsLightVerticalAndRight, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┤) + (┬) = (┼) + string([]rune{BoxDrawingsLightVerticalAndLeft, BoxDrawingsLightDownAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┤) + (┴) = (┼) + string([]rune{BoxDrawingsLightVerticalAndLeft, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┤) + (┼) = (┼) + string([]rune{BoxDrawingsLightVerticalAndLeft, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┬) + (┴) = (┼) + string([]rune{BoxDrawingsLightDownAndHorizontal, BoxDrawingsLightUpAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + // (┬) + (┼) = (┼) + string([]rune{BoxDrawingsLightDownAndHorizontal, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, + + // (┴) + (┼) = (┼) + string([]rune{BoxDrawingsLightUpAndHorizontal, BoxDrawingsLightVerticalAndHorizontal}): BoxDrawingsLightVerticalAndHorizontal, +} + +// PrintJoinedSemigraphics prints a semigraphics rune into the screen at the given +// position with the given color, joining it with any existing semigraphics +// rune. Background colors are preserved. At this point, only regular single +// line borders are supported. +func PrintJoinedSemigraphics(screen tcell.Screen, x, y int, ch rune, color tcell.Color) { + previous, _, style, _ := screen.GetContent(x, y) + style = style.Foreground(color) + + // What's the resulting rune? + var result rune + if ch == previous { + result = ch + } else { + if ch < previous { + previous, ch = ch, previous + } + result = SemigraphicJoints[string([]rune{previous, ch})] + } + if result == 0 { + result = ch + } + + // We only print something if we have something. + screen.SetContent(x, y, result, nil, style) +} diff --git a/vendor/github.com/rivo/tview/styles.go b/vendor/github.com/rivo/tview/styles.go new file mode 100644 index 0000000..4f0448f --- /dev/null +++ b/vendor/github.com/rivo/tview/styles.go @@ -0,0 +1,35 @@ +package tview + +import "github.com/gdamore/tcell" + +// Theme defines the colors used when primitives are initialized. +type Theme struct { + PrimitiveBackgroundColor tcell.Color // Main background color for primitives. + ContrastBackgroundColor tcell.Color // Background color for contrasting elements. + MoreContrastBackgroundColor tcell.Color // Background color for even more contrasting elements. + BorderColor tcell.Color // Box borders. + TitleColor tcell.Color // Box titles. + GraphicsColor tcell.Color // Graphics. + PrimaryTextColor tcell.Color // Primary text. + SecondaryTextColor tcell.Color // Secondary text (e.g. labels). + TertiaryTextColor tcell.Color // Tertiary text (e.g. subtitles, notes). + InverseTextColor tcell.Color // Text on primary-colored backgrounds. + ContrastSecondaryTextColor tcell.Color // Secondary text on ContrastBackgroundColor-colored backgrounds. +} + +// Styles defines the theme for applications. The default is for a black +// background and some basic colors: black, white, yellow, green, cyan, and +// blue. +var Styles = Theme{ + PrimitiveBackgroundColor: tcell.ColorBlack, + ContrastBackgroundColor: tcell.ColorBlue, + MoreContrastBackgroundColor: tcell.ColorGreen, + BorderColor: tcell.ColorWhite, + TitleColor: tcell.ColorWhite, + GraphicsColor: tcell.ColorWhite, + PrimaryTextColor: tcell.ColorWhite, + SecondaryTextColor: tcell.ColorYellow, + TertiaryTextColor: tcell.ColorGreen, + InverseTextColor: tcell.ColorBlue, + ContrastSecondaryTextColor: tcell.ColorDarkCyan, +} diff --git a/vendor/github.com/rivo/tview/table.go b/vendor/github.com/rivo/tview/table.go new file mode 100644 index 0000000..3ce2503 --- /dev/null +++ b/vendor/github.com/rivo/tview/table.go @@ -0,0 +1,1266 @@ +package tview + +import ( + "sort" + + "github.com/gdamore/tcell" + colorful "github.com/lucasb-eyer/go-colorful" +) + +// TableCell represents one cell inside a Table. You can instantiate this type +// directly but all colors (background and text) will be set to their default +// which is black. +type TableCell struct { + // The reference object. + Reference interface{} + + // The text to be displayed in the table cell. + Text string + + // The alignment of the cell text. One of AlignLeft (default), AlignCenter, + // or AlignRight. + Align int + + // The maximum width of the cell in screen space. This is used to give a + // column a maximum width. Any cell text whose screen width exceeds this width + // is cut off. Set to 0 if there is no maximum width. + MaxWidth int + + // If the total table width is less than the available width, this value is + // used to add extra width to a column. See SetExpansion() for details. + Expansion int + + // The color of the cell text. + Color tcell.Color + + // The background color of the cell. + BackgroundColor tcell.Color + + // The style attributes of the cell. + Attributes tcell.AttrMask + + // If set to true, this cell cannot be selected. + NotSelectable bool + + // The position and width of the cell the last time table was drawn. + x, y, width int +} + +// NewTableCell returns a new table cell with sensible defaults. That is, left +// aligned text with the primary text color (see Styles) and a transparent +// background (using the background of the Table). +func NewTableCell(text string) *TableCell { + return &TableCell{ + Text: text, + Align: AlignLeft, + Color: Styles.PrimaryTextColor, + BackgroundColor: tcell.ColorDefault, + } +} + +// SetText sets the cell's text. +func (c *TableCell) SetText(text string) *TableCell { + c.Text = text + return c +} + +// SetAlign sets the cell's text alignment, one of AlignLeft, AlignCenter, or +// AlignRight. +func (c *TableCell) SetAlign(align int) *TableCell { + c.Align = align + return c +} + +// SetMaxWidth sets maximum width of the cell in screen space. This is used to +// give a column a maximum width. Any cell text whose screen width exceeds this +// width is cut off. Set to 0 if there is no maximum width. +func (c *TableCell) SetMaxWidth(maxWidth int) *TableCell { + c.MaxWidth = maxWidth + return c +} + +// SetExpansion sets the value by which the column of this cell expands if the +// available width for the table is more than the table width (prior to applying +// this expansion value). This is a proportional value. The amount of unused +// horizontal space is divided into widths to be added to each column. How much +// extra width a column receives depends on the expansion value: A value of 0 +// (the default) will not cause the column to increase in width. Other values +// are proportional, e.g. a value of 2 will cause a column to grow by twice +// the amount of a column with a value of 1. +// +// Since this value affects an entire column, the maximum over all visible cells +// in that column is used. +// +// This function panics if a negative value is provided. +func (c *TableCell) SetExpansion(expansion int) *TableCell { + if expansion < 0 { + panic("Table cell expansion values may not be negative") + } + c.Expansion = expansion + return c +} + +// SetTextColor sets the cell's text color. +func (c *TableCell) SetTextColor(color tcell.Color) *TableCell { + c.Color = color + return c +} + +// SetBackgroundColor sets the cell's background color. Set to +// tcell.ColorDefault to use the table's background color. +func (c *TableCell) SetBackgroundColor(color tcell.Color) *TableCell { + c.BackgroundColor = color + return c +} + +// SetAttributes sets the cell's text attributes. You can combine different +// attributes using bitmask operations: +// +// cell.SetAttributes(tcell.AttrUnderline | tcell.AttrBold) +func (c *TableCell) SetAttributes(attr tcell.AttrMask) *TableCell { + c.Attributes = attr + return c +} + +// SetStyle sets the cell's style (foreground color, background color, and +// attributes) all at once. +func (c *TableCell) SetStyle(style tcell.Style) *TableCell { + c.Color, c.BackgroundColor, c.Attributes = style.Decompose() + return c +} + +// SetSelectable sets whether or not this cell can be selected by the user. +func (c *TableCell) SetSelectable(selectable bool) *TableCell { + c.NotSelectable = !selectable + return c +} + +// SetReference allows you to store a reference of any type in this cell. This +// will allow you to establish a mapping between the cell and your +// actual data. +func (c *TableCell) SetReference(reference interface{}) *TableCell { + c.Reference = reference + return c +} + +// GetReference returns this cell's reference object. +func (c *TableCell) GetReference() interface{} { + return c.Reference +} + +// GetLastPosition returns the position of the table cell the last time it was +// drawn on screen. If the cell is not on screen, the return values are +// undefined. +// +// Because the Table class will attempt to keep selected cells on screen, this +// function is most useful in response to a "selected" event (see +// SetSelectedFunc()) or a "selectionChanged" event (see +// SetSelectionChangedFunc()). +func (c *TableCell) GetLastPosition() (x, y, width int) { + return c.x, c.y, c.width +} + +// Table visualizes two-dimensional data consisting of rows and columns. Each +// Table cell is defined via SetCell() by the TableCell type. They can be added +// dynamically to the table and changed any time. +// +// The most compact display of a table is without borders. Each row will then +// occupy one row on screen and columns are separated by the rune defined via +// SetSeparator() (a space character by default). +// +// When borders are turned on (via SetBorders()), each table cell is surrounded +// by lines. Therefore one table row will require two rows on screen. +// +// Columns will use as much horizontal space as they need. You can constrain +// their size with the MaxWidth parameter of the TableCell type. +// +// Fixed Columns +// +// You can define fixed rows and rolumns via SetFixed(). They will always stay +// in their place, even when the table is scrolled. Fixed rows are always the +// top rows. Fixed columns are always the leftmost columns. +// +// Selections +// +// You can call SetSelectable() to set columns and/or rows to "selectable". If +// the flag is set only for columns, entire columns can be selected by the user. +// If it is set only for rows, entire rows can be selected. If both flags are +// set, individual cells can be selected. The "selected" handler set via +// SetSelectedFunc() is invoked when the user presses Enter on a selection. +// +// Navigation +// +// If the table extends beyond the available space, it can be navigated with +// key bindings similar to Vim: +// +// - h, left arrow: Move left by one column. +// - l, right arrow: Move right by one column. +// - j, down arrow: Move down by one row. +// - k, up arrow: Move up by one row. +// - g, home: Move to the top. +// - G, end: Move to the bottom. +// - Ctrl-F, page down: Move down by one page. +// - Ctrl-B, page up: Move up by one page. +// +// When there is no selection, this affects the entire table (except for fixed +// rows and columns). When there is a selection, the user moves the selection. +// The class will attempt to keep the selection from moving out of the screen. +// +// Use SetInputCapture() to override or modify keyboard input. +// +// See https://github.com/rivo/tview/wiki/Table for an example. +type Table struct { + *Box + + // Whether or not this table has borders around each cell. + borders bool + + // The color of the borders or the separator. + bordersColor tcell.Color + + // If there are no borders, the column separator. + separator rune + + // The cells of the table. Rows first, then columns. + cells [][]*TableCell + + // The rightmost column in the data set. + lastColumn int + + // If true, when calculating the widths of the columns, all rows are evaluated + // instead of only the visible ones. + evaluateAllRows bool + + // The number of fixed rows / columns. + fixedRows, fixedColumns int + + // Whether or not rows or columns can be selected. If both are set to true, + // cells can be selected. + rowsSelectable, columnsSelectable bool + + // The currently selected row and column. + selectedRow, selectedColumn int + + // The number of rows/columns by which the table is scrolled down/to the + // right. + rowOffset, columnOffset int + + // If set to true, the table's last row will always be visible. + trackEnd bool + + // The number of visible rows the last time the table was drawn. + visibleRows int + + // The indices of the visible columns as of the last time the table was drawn. + visibleColumnIndices []int + + // The net widths of the visible columns as of the last time the table was + // drawn. + visibleColumnWidths []int + + // The style of the selected rows. If this value is 0, selected rows are + // simply inverted. + selectedStyle tcell.Style + + // An optional function which gets called when the user presses Enter on a + // selected cell. If entire rows selected, the column value is undefined. + // Likewise for entire columns. + selected func(row, column int) + + // An optional function which gets called when the user changes the selection. + // If entire rows selected, the column value is undefined. + // Likewise for entire columns. + selectionChanged func(row, column int) + + // An optional function which gets called when the user presses Escape, Tab, + // or Backtab. Also when the user presses Enter if nothing is selectable. + done func(key tcell.Key) +} + +// NewTable returns a new table. +func NewTable() *Table { + return &Table{ + Box: NewBox(), + bordersColor: Styles.GraphicsColor, + separator: ' ', + lastColumn: -1, + } +} + +// Clear removes all table data. +func (t *Table) Clear() *Table { + t.cells = nil + t.lastColumn = -1 + return t +} + +// SetBorders sets whether or not each cell in the table is surrounded by a +// border. +func (t *Table) SetBorders(show bool) *Table { + t.borders = show + return t +} + +// SetBordersColor sets the color of the cell borders. +func (t *Table) SetBordersColor(color tcell.Color) *Table { + t.bordersColor = color + return t +} + +// SetSelectedStyle sets a specific style for selected cells. If no such style +// is set, per default, selected cells are inverted (i.e. their foreground and +// background colors are swapped). +// +// To reset a previous setting to its default, make the following call: +// +// table.SetSelectedStyle(tcell.ColorDefault, tcell.ColorDefault, 0) +func (t *Table) SetSelectedStyle(foregroundColor, backgroundColor tcell.Color, attributes tcell.AttrMask) *Table { + t.selectedStyle = tcell.StyleDefault.Foreground(foregroundColor).Background(backgroundColor) | tcell.Style(attributes) + return t +} + +// SetSeparator sets the character used to fill the space between two +// neighboring cells. This is a space character ' ' per default but you may +// want to set it to Borders.Vertical (or any other rune) if the column +// separation should be more visible. If cell borders are activated, this is +// ignored. +// +// Separators have the same color as borders. +func (t *Table) SetSeparator(separator rune) *Table { + t.separator = separator + return t +} + +// SetFixed sets the number of fixed rows and columns which are always visible +// even when the rest of the cells are scrolled out of view. Rows are always the +// top-most ones. Columns are always the left-most ones. +func (t *Table) SetFixed(rows, columns int) *Table { + t.fixedRows, t.fixedColumns = rows, columns + return t +} + +// SetSelectable sets the flags which determine what can be selected in a table. +// There are three selection modi: +// +// - rows = false, columns = false: Nothing can be selected. +// - rows = true, columns = false: Rows can be selected. +// - rows = false, columns = true: Columns can be selected. +// - rows = true, columns = true: Individual cells can be selected. +func (t *Table) SetSelectable(rows, columns bool) *Table { + t.rowsSelectable, t.columnsSelectable = rows, columns + return t +} + +// GetSelectable returns what can be selected in a table. Refer to +// SetSelectable() for details. +func (t *Table) GetSelectable() (rows, columns bool) { + return t.rowsSelectable, t.columnsSelectable +} + +// GetSelection returns the position of the current selection. +// If entire rows are selected, the column index is undefined. +// Likewise for entire columns. +func (t *Table) GetSelection() (row, column int) { + return t.selectedRow, t.selectedColumn +} + +// Select sets the selected cell. Depending on the selection settings +// specified via SetSelectable(), this may be an entire row or column, or even +// ignored completely. The "selection changed" event is fired if such a callback +// is available (even if the selection ends up being the same as before and even +// if cells are not selectable). +func (t *Table) Select(row, column int) *Table { + t.selectedRow, t.selectedColumn = row, column + if t.selectionChanged != nil { + t.selectionChanged(row, column) + } + return t +} + +// SetOffset sets how many rows and columns should be skipped when drawing the +// table. This is useful for large tables that do not fit on the screen. +// Navigating a selection can change these values. +// +// Fixed rows and columns are never skipped. +func (t *Table) SetOffset(row, column int) *Table { + t.rowOffset, t.columnOffset = row, column + t.trackEnd = false + return t +} + +// GetOffset returns the current row and column offset. This indicates how many +// rows and columns the table is scrolled down and to the right. +func (t *Table) GetOffset() (row, column int) { + return t.rowOffset, t.columnOffset +} + +// SetEvaluateAllRows sets a flag which determines the rows to be evaluated when +// calculating the widths of the table's columns. When false, only visible rows +// are evaluated. When true, all rows in the table are evaluated. +// +// Set this flag to true to avoid shifting column widths when the table is +// scrolled. (May be slower for large tables.) +func (t *Table) SetEvaluateAllRows(all bool) *Table { + t.evaluateAllRows = all + return t +} + +// SetSelectedFunc sets a handler which is called whenever the user presses the +// Enter key on a selected cell/row/column. The handler receives the position of +// the selection and its cell contents. If entire rows are selected, the column +// index is undefined. Likewise for entire columns. +func (t *Table) SetSelectedFunc(handler func(row, column int)) *Table { + t.selected = handler + return t +} + +// SetSelectionChangedFunc sets a handler which is called whenever the current +// selection changes. The handler receives the position of the new selection. +// If entire rows are selected, the column index is undefined. Likewise for +// entire columns. +func (t *Table) SetSelectionChangedFunc(handler func(row, column int)) *Table { + t.selectionChanged = handler + return t +} + +// SetDoneFunc sets a handler which is called whenever the user presses the +// Escape, Tab, or Backtab key. If nothing is selected, it is also called when +// user presses the Enter key (because pressing Enter on a selection triggers +// the "selected" handler set via SetSelectedFunc()). +func (t *Table) SetDoneFunc(handler func(key tcell.Key)) *Table { + t.done = handler + return t +} + +// SetCell sets the content of a cell the specified position. It is ok to +// directly instantiate a TableCell object. If the cell has content, at least +// the Text and Color fields should be set. +// +// Note that setting cells in previously unknown rows and columns will +// automatically extend the internal table representation, e.g. starting with +// a row of 100,000 will immediately create 100,000 empty rows. +// +// To avoid unnecessary garbage collection, fill columns from left to right. +func (t *Table) SetCell(row, column int, cell *TableCell) *Table { + if row >= len(t.cells) { + t.cells = append(t.cells, make([][]*TableCell, row-len(t.cells)+1)...) + } + rowLen := len(t.cells[row]) + if column >= rowLen { + t.cells[row] = append(t.cells[row], make([]*TableCell, column-rowLen+1)...) + for c := rowLen; c < column; c++ { + t.cells[row][c] = &TableCell{} + } + } + t.cells[row][column] = cell + if column > t.lastColumn { + t.lastColumn = column + } + return t +} + +// SetCellSimple calls SetCell() with the given text, left-aligned, in white. +func (t *Table) SetCellSimple(row, column int, text string) *Table { + t.SetCell(row, column, NewTableCell(text)) + return t +} + +// GetCell returns the contents of the cell at the specified position. A valid +// TableCell object is always returned but it will be uninitialized if the cell +// was not previously set. Such an uninitialized object will not automatically +// be inserted. Therefore, repeated calls to this function may return different +// pointers for uninitialized cells. +func (t *Table) GetCell(row, column int) *TableCell { + if row >= len(t.cells) || column >= len(t.cells[row]) { + return &TableCell{} + } + return t.cells[row][column] +} + +// RemoveRow removes the row at the given position from the table. If there is +// no such row, this has no effect. +func (t *Table) RemoveRow(row int) *Table { + if row < 0 || row >= len(t.cells) { + return t + } + + t.cells = append(t.cells[:row], t.cells[row+1:]...) + + return t +} + +// RemoveColumn removes the column at the given position from the table. If +// there is no such column, this has no effect. +func (t *Table) RemoveColumn(column int) *Table { + for row := range t.cells { + if column < 0 || column >= len(t.cells[row]) { + continue + } + t.cells[row] = append(t.cells[row][:column], t.cells[row][column+1:]...) + } + + return t +} + +// InsertRow inserts a row before the row with the given index. Cells on the +// given row and below will be shifted to the bottom by one row. If "row" is +// equal or larger than the current number of rows, this function has no effect. +func (t *Table) InsertRow(row int) *Table { + if row >= len(t.cells) { + return t + } + t.cells = append(t.cells, nil) // Extend by one. + copy(t.cells[row+1:], t.cells[row:]) // Shift down. + t.cells[row] = nil // New row is uninitialized. + return t +} + +// InsertColumn inserts a column before the column with the given index. Cells +// in the given column and to its right will be shifted to the right by one +// column. Rows that have fewer initialized cells than "column" will remain +// unchanged. +func (t *Table) InsertColumn(column int) *Table { + for row := range t.cells { + if column >= len(t.cells[row]) { + continue + } + t.cells[row] = append(t.cells[row], nil) // Extend by one. + copy(t.cells[row][column+1:], t.cells[row][column:]) // Shift to the right. + t.cells[row][column] = &TableCell{} // New element is an uninitialized table cell. + } + return t +} + +// GetRowCount returns the number of rows in the table. +func (t *Table) GetRowCount() int { + return len(t.cells) +} + +// GetColumnCount returns the (maximum) number of columns in the table. +func (t *Table) GetColumnCount() int { + if len(t.cells) == 0 { + return 0 + } + return t.lastColumn + 1 +} + +// cellAt returns the row and column located at the given screen coordinates. +// Each returned value may be negative if there is no row and/or cell. This +// function will also process coordinates outside the table's inner rectangle so +// callers will need to check for bounds themselves. +func (t *Table) cellAt(x, y int) (row, column int) { + rectX, rectY, _, _ := t.GetInnerRect() + + // Determine row as seen on screen. + if t.borders { + row = (y - rectY - 1) / 2 + } else { + row = y - rectY + } + + // Respect fixed rows and row offset. + if row >= 0 { + if row >= t.fixedRows { + row += t.rowOffset + } + if row >= len(t.cells) { + row = -1 + } + } + + // Saerch for the clicked column. + column = -1 + if x >= rectX { + columnX := rectX + if t.borders { + columnX++ + } + for index, width := range t.visibleColumnWidths { + columnX += width + 1 + if x < columnX { + column = t.visibleColumnIndices[index] + break + } + } + } + + return +} + +// ScrollToBeginning scrolls the table to the beginning to that the top left +// corner of the table is shown. Note that this position may be corrected if +// there is a selection. +func (t *Table) ScrollToBeginning() *Table { + t.trackEnd = false + t.columnOffset = 0 + t.rowOffset = 0 + return t +} + +// ScrollToEnd scrolls the table to the beginning to that the bottom left corner +// of the table is shown. Adding more rows to the table will cause it to +// automatically scroll with the new data. Note that this position may be +// corrected if there is a selection. +func (t *Table) ScrollToEnd() *Table { + t.trackEnd = true + t.columnOffset = 0 + t.rowOffset = len(t.cells) + return t +} + +// Draw draws this primitive onto the screen. +func (t *Table) Draw(screen tcell.Screen) { + t.Box.Draw(screen) + + // What's our available screen space? + _, totalHeight := screen.Size() + x, y, width, height := t.GetInnerRect() + if t.borders { + t.visibleRows = height / 2 + } else { + t.visibleRows = height + } + + // Return the cell at the specified position (nil if it doesn't exist). + getCell := func(row, column int) *TableCell { + if row < 0 || column < 0 || row >= len(t.cells) || column >= len(t.cells[row]) { + return nil + } + return t.cells[row][column] + } + + // If this cell is not selectable, find the next one. + if t.rowsSelectable || t.columnsSelectable { + if t.selectedColumn < 0 { + t.selectedColumn = 0 + } + if t.selectedRow < 0 { + t.selectedRow = 0 + } + for t.selectedRow < len(t.cells) { + cell := getCell(t.selectedRow, t.selectedColumn) + if cell == nil || !cell.NotSelectable { + break + } + t.selectedColumn++ + if t.selectedColumn > t.lastColumn { + t.selectedColumn = 0 + t.selectedRow++ + } + } + } + + // Clamp row offsets. + if t.rowsSelectable { + if t.selectedRow >= t.fixedRows && t.selectedRow < t.fixedRows+t.rowOffset { + t.rowOffset = t.selectedRow - t.fixedRows + t.trackEnd = false + } + if t.borders { + if 2*(t.selectedRow+1-t.rowOffset) >= height { + t.rowOffset = t.selectedRow + 1 - height/2 + t.trackEnd = false + } + } else { + if t.selectedRow+1-t.rowOffset >= height { + t.rowOffset = t.selectedRow + 1 - height + t.trackEnd = false + } + } + } + if t.borders { + if 2*(len(t.cells)-t.rowOffset) < height { + t.trackEnd = true + } + } else { + if len(t.cells)-t.rowOffset < height { + t.trackEnd = true + } + } + if t.trackEnd { + if t.borders { + t.rowOffset = len(t.cells) - height/2 + } else { + t.rowOffset = len(t.cells) - height + } + } + if t.rowOffset < 0 { + t.rowOffset = 0 + } + + // Clamp column offset. (Only left side here. The right side is more + // difficult and we'll do it below.) + if t.columnsSelectable && t.selectedColumn >= t.fixedColumns && t.selectedColumn < t.fixedColumns+t.columnOffset { + t.columnOffset = t.selectedColumn - t.fixedColumns + } + if t.columnOffset < 0 { + t.columnOffset = 0 + } + if t.selectedColumn < 0 { + t.selectedColumn = 0 + } + + // Determine the indices and widths of the columns and rows which fit on the + // screen. + var ( + columns, rows, allRows, widths []int + tableHeight, tableWidth int + ) + rowStep := 1 + if t.borders { + rowStep = 2 // With borders, every table row takes two screen rows. + tableWidth = 1 // We start at the second character because of the left table border. + } + if t.evaluateAllRows { + allRows = make([]int, len(t.cells)) + for row := range t.cells { + allRows[row] = row + } + } + indexRow := func(row int) bool { // Determine if this row is visible, store its index. + if tableHeight >= height { + return false + } + rows = append(rows, row) + tableHeight += rowStep + return true + } + for row := 0; row < t.fixedRows && row < len(t.cells); row++ { // Do the fixed rows first. + if !indexRow(row) { + break + } + } + for row := t.fixedRows + t.rowOffset; row < len(t.cells); row++ { // Then the remaining rows. + if !indexRow(row) { + break + } + } + var ( + skipped, lastTableWidth, expansionTotal int + expansions []int + ) +ColumnLoop: + for column := 0; ; column++ { + // If we've moved beyond the right border, we stop or skip a column. + for tableWidth-1 >= width { // -1 because we include one extra column if the separator falls on the right end of the box. + // We've moved beyond the available space. + if column < t.fixedColumns { + break ColumnLoop // We're in the fixed area. We're done. + } + if !t.columnsSelectable && skipped >= t.columnOffset { + break ColumnLoop // There is no selection and we've already reached the offset. + } + if t.columnsSelectable && t.selectedColumn-skipped == t.fixedColumns { + break ColumnLoop // The selected column reached the leftmost point before disappearing. + } + if t.columnsSelectable && skipped >= t.columnOffset && + (t.selectedColumn < column && lastTableWidth < width-1 && tableWidth < width-1 || t.selectedColumn < column-1) { + break ColumnLoop // We've skipped as many as requested and the selection is visible. + } + if len(columns) <= t.fixedColumns { + break // Nothing to skip. + } + + // We need to skip a column. + skipped++ + lastTableWidth -= widths[t.fixedColumns] + 1 + tableWidth -= widths[t.fixedColumns] + 1 + columns = append(columns[:t.fixedColumns], columns[t.fixedColumns+1:]...) + widths = append(widths[:t.fixedColumns], widths[t.fixedColumns+1:]...) + expansions = append(expansions[:t.fixedColumns], expansions[t.fixedColumns+1:]...) + } + + // What's this column's width (without expansion)? + maxWidth := -1 + expansion := 0 + evaluationRows := rows + if t.evaluateAllRows { + evaluationRows = allRows + } + for _, row := range evaluationRows { + if cell := getCell(row, column); cell != nil { + _, _, _, _, _, _, cellWidth := decomposeString(cell.Text, true, false) + if cell.MaxWidth > 0 && cell.MaxWidth < cellWidth { + cellWidth = cell.MaxWidth + } + if cellWidth > maxWidth { + maxWidth = cellWidth + } + if cell.Expansion > expansion { + expansion = cell.Expansion + } + } + } + if maxWidth < 0 { + break // No more cells found in this column. + } + + // Store new column info at the end. + columns = append(columns, column) + widths = append(widths, maxWidth) + lastTableWidth = tableWidth + tableWidth += maxWidth + 1 + expansions = append(expansions, expansion) + expansionTotal += expansion + } + t.columnOffset = skipped + + // If we have space left, distribute it. + if tableWidth < width { + toDistribute := width - tableWidth + for index, expansion := range expansions { + if expansionTotal <= 0 { + break + } + expWidth := toDistribute * expansion / expansionTotal + widths[index] += expWidth + toDistribute -= expWidth + expansionTotal -= expansion + } + } + + // Helper function which draws border runes. + borderStyle := tcell.StyleDefault.Background(t.backgroundColor).Foreground(t.bordersColor) + drawBorder := func(colX, rowY int, ch rune) { + screen.SetContent(x+colX, y+rowY, ch, nil, borderStyle) + } + + // Draw the cells (and borders). + var columnX int + if !t.borders { + columnX-- + } + for columnIndex, column := range columns { + columnWidth := widths[columnIndex] + for rowY, row := range rows { + if t.borders { + // Draw borders. + rowY *= 2 + for pos := 0; pos < columnWidth && columnX+1+pos < width; pos++ { + drawBorder(columnX+pos+1, rowY, Borders.Horizontal) + } + ch := Borders.Cross + if columnIndex == 0 { + if rowY == 0 { + ch = Borders.TopLeft + } else { + ch = Borders.LeftT + } + } else if rowY == 0 { + ch = Borders.TopT + } + drawBorder(columnX, rowY, ch) + rowY++ + if rowY >= height || y+rowY >= totalHeight { + break // No space for the text anymore. + } + drawBorder(columnX, rowY, Borders.Vertical) + } else if columnIndex > 0 { + // Draw separator. + drawBorder(columnX, rowY, t.separator) + } + + // Get the cell. + cell := getCell(row, column) + if cell == nil { + continue + } + + // Draw text. + finalWidth := columnWidth + if columnX+1+columnWidth >= width { + finalWidth = width - columnX - 1 + } + cell.x, cell.y, cell.width = x+columnX+1, y+rowY, finalWidth + _, printed := printWithStyle(screen, cell.Text, x+columnX+1, y+rowY, finalWidth, cell.Align, tcell.StyleDefault.Foreground(cell.Color)|tcell.Style(cell.Attributes)) + if TaggedStringWidth(cell.Text)-printed > 0 && printed > 0 { + _, _, style, _ := screen.GetContent(x+columnX+finalWidth, y+rowY) + printWithStyle(screen, string(SemigraphicsHorizontalEllipsis), x+columnX+finalWidth, y+rowY, 1, AlignLeft, style) + } + } + + // Draw bottom border. + if rowY := 2 * len(rows); t.borders && rowY < height { + for pos := 0; pos < columnWidth && columnX+1+pos < width; pos++ { + drawBorder(columnX+pos+1, rowY, Borders.Horizontal) + } + ch := Borders.BottomT + if columnIndex == 0 { + ch = Borders.BottomLeft + } + drawBorder(columnX, rowY, ch) + } + + columnX += columnWidth + 1 + } + + // Draw right border. + if t.borders && len(t.cells) > 0 && columnX < width { + for rowY := range rows { + rowY *= 2 + if rowY+1 < height { + drawBorder(columnX, rowY+1, Borders.Vertical) + } + ch := Borders.RightT + if rowY == 0 { + ch = Borders.TopRight + } + drawBorder(columnX, rowY, ch) + } + if rowY := 2 * len(rows); rowY < height { + drawBorder(columnX, rowY, Borders.BottomRight) + } + } + + // Helper function which colors the background of a box. + // backgroundColor == tcell.ColorDefault => Don't color the background. + // textColor == tcell.ColorDefault => Don't change the text color. + // attr == 0 => Don't change attributes. + // invert == true => Ignore attr, set text to backgroundColor or t.backgroundColor; + // set background to textColor. + colorBackground := func(fromX, fromY, w, h int, backgroundColor, textColor tcell.Color, attr tcell.AttrMask, invert bool) { + for by := 0; by < h && fromY+by < y+height; by++ { + for bx := 0; bx < w && fromX+bx < x+width; bx++ { + m, c, style, _ := screen.GetContent(fromX+bx, fromY+by) + fg, bg, a := style.Decompose() + if invert { + if fg == textColor || fg == t.bordersColor { + fg = backgroundColor + } + if fg == tcell.ColorDefault { + fg = t.backgroundColor + } + style = style.Background(textColor).Foreground(fg) + } else { + if backgroundColor != tcell.ColorDefault { + bg = backgroundColor + } + if textColor != tcell.ColorDefault { + fg = textColor + } + if attr != 0 { + a = attr + } + style = style.Background(bg).Foreground(fg) | tcell.Style(a) + } + screen.SetContent(fromX+bx, fromY+by, m, c, style) + } + } + } + + // Color the cell backgrounds. To avoid undesirable artefacts, we combine + // the drawing of a cell by background color, selected cells last. + type cellInfo struct { + x, y, w, h int + text tcell.Color + selected bool + } + cellsByBackgroundColor := make(map[tcell.Color][]*cellInfo) + var backgroundColors []tcell.Color + for rowY, row := range rows { + columnX := 0 + rowSelected := t.rowsSelectable && !t.columnsSelectable && row == t.selectedRow + for columnIndex, column := range columns { + columnWidth := widths[columnIndex] + cell := getCell(row, column) + if cell == nil { + continue + } + bx, by, bw, bh := x+columnX, y+rowY, columnWidth+1, 1 + if t.borders { + by = y + rowY*2 + bw++ + bh = 3 + } + columnSelected := t.columnsSelectable && !t.rowsSelectable && column == t.selectedColumn + cellSelected := !cell.NotSelectable && (columnSelected || rowSelected || t.rowsSelectable && t.columnsSelectable && column == t.selectedColumn && row == t.selectedRow) + entries, ok := cellsByBackgroundColor[cell.BackgroundColor] + cellsByBackgroundColor[cell.BackgroundColor] = append(entries, &cellInfo{ + x: bx, + y: by, + w: bw, + h: bh, + text: cell.Color, + selected: cellSelected, + }) + if !ok { + backgroundColors = append(backgroundColors, cell.BackgroundColor) + } + columnX += columnWidth + 1 + } + } + sort.Slice(backgroundColors, func(i int, j int) bool { + // Draw brightest colors last (i.e. on top). + r, g, b := backgroundColors[i].RGB() + c := colorful.Color{R: float64(r) / 255, G: float64(g) / 255, B: float64(b) / 255} + _, _, li := c.Hcl() + r, g, b = backgroundColors[j].RGB() + c = colorful.Color{R: float64(r) / 255, G: float64(g) / 255, B: float64(b) / 255} + _, _, lj := c.Hcl() + return li < lj + }) + selFg, selBg, selAttr := t.selectedStyle.Decompose() + for _, bgColor := range backgroundColors { + entries := cellsByBackgroundColor[bgColor] + for _, cell := range entries { + if cell.selected { + if t.selectedStyle != 0 { + defer colorBackground(cell.x, cell.y, cell.w, cell.h, selBg, selFg, selAttr, false) + } else { + defer colorBackground(cell.x, cell.y, cell.w, cell.h, bgColor, cell.text, 0, true) + } + } else { + colorBackground(cell.x, cell.y, cell.w, cell.h, bgColor, tcell.ColorDefault, 0, false) + } + } + } + + // Remember column infos. + t.visibleColumnIndices, t.visibleColumnWidths = columns, widths +} + +// InputHandler returns the handler for this primitive. +func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + key := event.Key() + + if (!t.rowsSelectable && !t.columnsSelectable && key == tcell.KeyEnter) || + key == tcell.KeyEscape || + key == tcell.KeyTab || + key == tcell.KeyBacktab { + if t.done != nil { + t.done(key) + } + return + } + + // Movement functions. + previouslySelectedRow, previouslySelectedColumn := t.selectedRow, t.selectedColumn + var ( + getCell = func(row, column int) *TableCell { + if row < 0 || column < 0 || row >= len(t.cells) || column >= len(t.cells[row]) { + return nil + } + return t.cells[row][column] + } + + previous = func() { + for t.selectedRow >= 0 { + cell := getCell(t.selectedRow, t.selectedColumn) + if cell == nil || !cell.NotSelectable { + return + } + t.selectedColumn-- + if t.selectedColumn < 0 { + t.selectedColumn = t.lastColumn + t.selectedRow-- + } + } + } + + next = func() { + if t.selectedColumn > t.lastColumn { + t.selectedColumn = 0 + t.selectedRow++ + if t.selectedRow >= len(t.cells) { + t.selectedRow = len(t.cells) - 1 + } + } + for t.selectedRow < len(t.cells) { + cell := getCell(t.selectedRow, t.selectedColumn) + if cell == nil || !cell.NotSelectable { + return + } + t.selectedColumn++ + if t.selectedColumn > t.lastColumn { + t.selectedColumn = 0 + t.selectedRow++ + } + } + t.selectedColumn = t.lastColumn + t.selectedRow = len(t.cells) - 1 + previous() + } + + home = func() { + if t.rowsSelectable { + t.selectedRow = 0 + t.selectedColumn = 0 + next() + } else { + t.trackEnd = false + t.rowOffset = 0 + t.columnOffset = 0 + } + } + + end = func() { + if t.rowsSelectable { + t.selectedRow = len(t.cells) - 1 + t.selectedColumn = t.lastColumn + previous() + } else { + t.trackEnd = true + t.columnOffset = 0 + } + } + + down = func() { + if t.rowsSelectable { + t.selectedRow++ + if t.selectedRow >= len(t.cells) { + t.selectedRow = len(t.cells) - 1 + } + next() + } else { + t.rowOffset++ + } + } + + up = func() { + if t.rowsSelectable { + t.selectedRow-- + if t.selectedRow < 0 { + t.selectedRow = 0 + } + previous() + } else { + t.trackEnd = false + t.rowOffset-- + } + } + + left = func() { + if t.columnsSelectable { + t.selectedColumn-- + if t.selectedColumn < 0 { + t.selectedColumn = 0 + } + previous() + } else { + t.columnOffset-- + } + } + + right = func() { + if t.columnsSelectable { + t.selectedColumn++ + if t.selectedColumn > t.lastColumn { + t.selectedColumn = t.lastColumn + } + next() + } else { + t.columnOffset++ + } + } + + pageDown = func() { + offsetAmount := t.visibleRows - t.fixedRows + if offsetAmount < 0 { + offsetAmount = 0 + } + + if t.rowsSelectable { + t.selectedRow += offsetAmount + if t.selectedRow >= len(t.cells) { + t.selectedRow = len(t.cells) - 1 + } + next() + } else { + t.rowOffset += offsetAmount + } + } + + pageUp = func() { + offsetAmount := t.visibleRows - t.fixedRows + if offsetAmount < 0 { + offsetAmount = 0 + } + + if t.rowsSelectable { + t.selectedRow -= offsetAmount + if t.selectedRow < 0 { + t.selectedRow = 0 + } + previous() + } else { + t.trackEnd = false + t.rowOffset -= offsetAmount + } + } + ) + + switch key { + case tcell.KeyRune: + switch event.Rune() { + case 'g': + home() + case 'G': + end() + case 'j': + down() + case 'k': + up() + case 'h': + left() + case 'l': + right() + } + case tcell.KeyHome: + home() + case tcell.KeyEnd: + end() + case tcell.KeyUp: + up() + case tcell.KeyDown: + down() + case tcell.KeyLeft: + left() + case tcell.KeyRight: + right() + case tcell.KeyPgDn, tcell.KeyCtrlF: + pageDown() + case tcell.KeyPgUp, tcell.KeyCtrlB: + pageUp() + case tcell.KeyEnter: + if (t.rowsSelectable || t.columnsSelectable) && t.selected != nil { + t.selected(t.selectedRow, t.selectedColumn) + } + } + + // If the selection has changed, notify the handler. + if t.selectionChanged != nil && + (t.rowsSelectable && previouslySelectedRow != t.selectedRow || + t.columnsSelectable && previouslySelectedColumn != t.selectedColumn) { + t.selectionChanged(t.selectedRow, t.selectedColumn) + } + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (t *Table) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return t.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + x, y := event.Position() + if !t.InRect(x, y) { + return false, nil + } + + switch action { + case MouseLeftClick: + if t.rowsSelectable || t.columnsSelectable { + t.Select(t.cellAt(x, y)) + } + setFocus(t) + consumed = true + case MouseScrollUp: + t.trackEnd = false + t.rowOffset-- + consumed = true + case MouseScrollDown: + t.rowOffset++ + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/textview.go b/vendor/github.com/rivo/tview/textview.go new file mode 100644 index 0000000..bc117fd --- /dev/null +++ b/vendor/github.com/rivo/tview/textview.go @@ -0,0 +1,1189 @@ +package tview + +import ( + "bytes" + "fmt" + "regexp" + "strings" + "sync" + "unicode/utf8" + + "github.com/gdamore/tcell" + colorful "github.com/lucasb-eyer/go-colorful" + runewidth "github.com/mattn/go-runewidth" + "github.com/rivo/uniseg" +) + +var ( + openColorRegex = regexp.MustCompile(`\[([a-zA-Z]*|#[0-9a-zA-Z]*)$`) + openRegionRegex = regexp.MustCompile(`\["[a-zA-Z0-9_,;: \-\.]*"?$`) + newLineRegex = regexp.MustCompile(`\r?\n`) + + // TabSize is the number of spaces with which a tab character will be replaced. + TabSize = 4 +) + +// textViewIndex contains information about each line displayed in the text +// view. +type textViewIndex struct { + Line int // The index into the "buffer" variable. + Pos int // The index into the "buffer" string (byte position). + NextPos int // The (byte) index of the next character in this buffer line. + Width int // The screen width of this line. + ForegroundColor string // The starting foreground color ("" = don't change, "-" = reset). + BackgroundColor string // The starting background color ("" = don't change, "-" = reset). + Attributes string // The starting attributes ("" = don't change, "-" = reset). + Region string // The starting region ID. +} + +// textViewRegion contains information about a region. +type textViewRegion struct { + // The region ID. + ID string + + // The starting and end screen position of the region as determined the last + // time Draw() was called. A negative value indicates out-of-rect positions. + FromX, FromY, ToX, ToY int +} + +// TextView is a box which displays text. It implements the io.Writer interface +// so you can stream text to it. This does not trigger a redraw automatically +// but if a handler is installed via SetChangedFunc(), you can cause it to be +// redrawn. (See SetChangedFunc() for more details.) +// +// Navigation +// +// If the text view is scrollable (the default), text is kept in a buffer which +// may be larger than the screen and can be navigated similarly to Vim: +// +// - h, left arrow: Move left. +// - l, right arrow: Move right. +// - j, down arrow: Move down. +// - k, up arrow: Move up. +// - g, home: Move to the top. +// - G, end: Move to the bottom. +// - Ctrl-F, page down: Move down by one page. +// - Ctrl-B, page up: Move up by one page. +// +// If the text is not scrollable, any text above the top visible line is +// discarded. +// +// Use SetInputCapture() to override or modify keyboard input. +// +// Colors +// +// If dynamic colors are enabled via SetDynamicColors(), text color can be +// changed dynamically by embedding color strings in square brackets. This works +// the same way as anywhere else. Please see the package documentation for more +// information. +// +// Regions and Highlights +// +// If regions are enabled via SetRegions(), you can define text regions within +// the text and assign region IDs to them. Text regions start with region tags. +// Region tags are square brackets that contain a region ID in double quotes, +// for example: +// +// We define a ["rg"]region[""] here. +// +// A text region ends with the next region tag. Tags with no region ID ([""]) +// don't start new regions. They can therefore be used to mark the end of a +// region. Region IDs must satisfy the following regular expression: +// +// [a-zA-Z0-9_,;: \-\.]+ +// +// Regions can be highlighted by calling the Highlight() function with one or +// more region IDs. This can be used to display search results, for example. +// +// The ScrollToHighlight() function can be used to jump to the currently +// highlighted region once when the text view is drawn the next time. +// +// See https://github.com/rivo/tview/wiki/TextView for an example. +type TextView struct { + sync.Mutex + *Box + + // The text buffer. + buffer []string + + // The last bytes that have been received but are not part of the buffer yet. + recentBytes []byte + + // The processed line index. This is nil if the buffer has changed and needs + // to be re-indexed. + index []*textViewIndex + + // The text alignment, one of AlignLeft, AlignCenter, or AlignRight. + align int + + // Information about visible regions as of the last call to Draw(). + regionInfos []*textViewRegion + + // Indices into the "index" slice which correspond to the first line of the + // first highlight and the last line of the last highlight. This is calculated + // during re-indexing. Set to -1 if there is no current highlight. + fromHighlight, toHighlight int + + // The screen space column of the highlight in its first line. Set to -1 if + // there is no current highlight. + posHighlight int + + // A set of region IDs that are currently highlighted. + highlights map[string]struct{} + + // The last width for which the current table is drawn. + lastWidth int + + // The screen width of the longest line in the index (not the buffer). + longestLine int + + // The index of the first line shown in the text view. + lineOffset int + + // If set to true, the text view will always remain at the end of the content. + trackEnd bool + + // The number of characters to be skipped on each line (not in wrap mode). + columnOffset int + + // The height of the content the last time the text view was drawn. + pageSize int + + // If set to true, the text view will keep a buffer of text which can be + // navigated when the text is longer than what fits into the box. + scrollable bool + + // If set to true, lines that are longer than the available width are wrapped + // onto the next line. If set to false, any characters beyond the available + // width are discarded. + wrap bool + + // If set to true and if wrap is also true, lines are split at spaces or + // after punctuation characters. + wordWrap bool + + // The (starting) color of the text. + textColor tcell.Color + + // If set to true, the text color can be changed dynamically by piping color + // strings in square brackets to the text view. + dynamicColors bool + + // If set to true, region tags can be used to define regions. + regions bool + + // A temporary flag which, when true, will automatically bring the current + // highlight(s) into the visible screen. + scrollToHighlights bool + + // If true, setting new highlights will be a XOR instead of an overwrite + // operation. + toggleHighlights bool + + // An optional function which is called when the content of the text view has + // changed. + changed func() + + // An optional function which is called when the user presses one of the + // following keys: Escape, Enter, Tab, Backtab. + done func(tcell.Key) + + // An optional function which is called when one or more regions were + // highlighted. + highlighted func(added, removed, remaining []string) +} + +// NewTextView returns a new text view. +func NewTextView() *TextView { + return &TextView{ + Box: NewBox(), + highlights: make(map[string]struct{}), + lineOffset: -1, + scrollable: true, + align: AlignLeft, + wrap: true, + textColor: Styles.PrimaryTextColor, + regions: false, + dynamicColors: false, + } +} + +// SetScrollable sets the flag that decides whether or not the text view is +// scrollable. If true, text is kept in a buffer and can be navigated. If false, +// the last line will always be visible. +func (t *TextView) SetScrollable(scrollable bool) *TextView { + t.scrollable = scrollable + if !scrollable { + t.trackEnd = true + } + return t +} + +// SetWrap sets the flag that, if true, leads to lines that are longer than the +// available width being wrapped onto the next line. If false, any characters +// beyond the available width are not displayed. +func (t *TextView) SetWrap(wrap bool) *TextView { + if t.wrap != wrap { + t.index = nil + } + t.wrap = wrap + return t +} + +// SetWordWrap sets the flag that, if true and if the "wrap" flag is also true +// (see SetWrap()), wraps the line at spaces or after punctuation marks. Note +// that trailing spaces will not be printed. +// +// This flag is ignored if the "wrap" flag is false. +func (t *TextView) SetWordWrap(wrapOnWords bool) *TextView { + if t.wordWrap != wrapOnWords { + t.index = nil + } + t.wordWrap = wrapOnWords + return t +} + +// SetTextAlign sets the text alignment within the text view. This must be +// either AlignLeft, AlignCenter, or AlignRight. +func (t *TextView) SetTextAlign(align int) *TextView { + if t.align != align { + t.index = nil + } + t.align = align + return t +} + +// SetTextColor sets the initial color of the text (which can be changed +// dynamically by sending color strings in square brackets to the text view if +// dynamic colors are enabled). +func (t *TextView) SetTextColor(color tcell.Color) *TextView { + t.textColor = color + return t +} + +// SetText sets the text of this text view to the provided string. Previously +// contained text will be removed. +func (t *TextView) SetText(text string) *TextView { + t.Clear() + fmt.Fprint(t, text) + return t +} + +// GetText returns the current text of this text view. If "stripTags" is set +// to true, any region/color tags are stripped from the text. +func (t *TextView) GetText(stripTags bool) string { + // Get the buffer. + buffer := t.buffer + if !stripTags { + buffer = append(buffer, string(t.recentBytes)) + } + + // Add newlines again. + text := strings.Join(buffer, "\n") + + // Strip from tags if required. + if stripTags { + if t.regions { + text = regionPattern.ReplaceAllString(text, "") + } + if t.dynamicColors { + text = colorPattern.ReplaceAllStringFunc(text, func(match string) string { + if len(match) > 2 { + return "" + } + return match + }) + } + if t.regions || t.dynamicColors { + text = escapePattern.ReplaceAllString(text, `[$1$2]`) + } + } + + return text +} + +// SetDynamicColors sets the flag that allows the text color to be changed +// dynamically. See class description for details. +func (t *TextView) SetDynamicColors(dynamic bool) *TextView { + if t.dynamicColors != dynamic { + t.index = nil + } + t.dynamicColors = dynamic + return t +} + +// SetRegions sets the flag that allows to define regions in the text. See class +// description for details. +func (t *TextView) SetRegions(regions bool) *TextView { + if t.regions != regions { + t.index = nil + } + t.regions = regions + return t +} + +// SetChangedFunc sets a handler function which is called when the text of the +// text view has changed. This is useful when text is written to this io.Writer +// in a separate goroutine. Doing so does not automatically cause the screen to +// be refreshed so you may want to use the "changed" handler to redraw the +// screen. +// +// Note that to avoid race conditions or deadlocks, there are a few rules you +// should follow: +// +// - You can call Application.Draw() from this handler. +// - You can call TextView.HasFocus() from this handler. +// - During the execution of this handler, access to any other variables from +// this primitive or any other primitive must be queued using +// Application.QueueUpdate(). +// +// See package description for details on dealing with concurrency. +func (t *TextView) SetChangedFunc(handler func()) *TextView { + t.changed = handler + return t +} + +// SetDoneFunc sets a handler which is called when the user presses on the +// following keys: Escape, Enter, Tab, Backtab. The key is passed to the +// handler. +func (t *TextView) SetDoneFunc(handler func(key tcell.Key)) *TextView { + t.done = handler + return t +} + +// SetHighlightedFunc sets a handler which is called when the list of currently +// highlighted regions change. It receives a list of region IDs which were newly +// highlighted, those that are not highlighted anymore, and those that remain +// highlighted. +// +// Note that because regions are only determined during drawing, this function +// can only fire for regions that have existed during the last call to Draw(). +func (t *TextView) SetHighlightedFunc(handler func(added, removed, remaining []string)) *TextView { + t.highlighted = handler + return t +} + +// ScrollTo scrolls to the specified row and column (both starting with 0). +func (t *TextView) ScrollTo(row, column int) *TextView { + if !t.scrollable { + return t + } + t.lineOffset = row + t.columnOffset = column + t.trackEnd = false + return t +} + +// ScrollToBeginning scrolls to the top left corner of the text if the text view +// is scrollable. +func (t *TextView) ScrollToBeginning() *TextView { + if !t.scrollable { + return t + } + t.trackEnd = false + t.lineOffset = 0 + t.columnOffset = 0 + return t +} + +// ScrollToEnd scrolls to the bottom left corner of the text if the text view +// is scrollable. Adding new rows to the end of the text view will cause it to +// scroll with the new data. +func (t *TextView) ScrollToEnd() *TextView { + if !t.scrollable { + return t + } + t.trackEnd = true + t.columnOffset = 0 + return t +} + +// GetScrollOffset returns the number of rows and columns that are skipped at +// the top left corner when the text view has been scrolled. +func (t *TextView) GetScrollOffset() (row, column int) { + return t.lineOffset, t.columnOffset +} + +// Clear removes all text from the buffer. +func (t *TextView) Clear() *TextView { + t.buffer = nil + t.recentBytes = nil + t.index = nil + return t +} + +// Highlight specifies which regions should be highlighted. If highlight +// toggling is set to true (see SetToggleHighlights()), the highlight of the +// provided regions is toggled (highlighted regions are un-highlighted and vice +// versa). If toggling is set to false, the provided regions are highlighted and +// all other regions will not be highlighted (you may also provide nil to turn +// off all highlights). +// +// For more information on regions, see class description. Empty region strings +// are ignored. +// +// Text in highlighted regions will be drawn inverted, i.e. with their +// background and foreground colors swapped. +func (t *TextView) Highlight(regionIDs ...string) *TextView { + // Toggle highlights. + if t.toggleHighlights { + var newIDs []string + HighlightLoop: + for regionID := range t.highlights { + for _, id := range regionIDs { + if regionID == id { + continue HighlightLoop + } + } + newIDs = append(newIDs, regionID) + } + for _, regionID := range regionIDs { + if _, ok := t.highlights[regionID]; !ok { + newIDs = append(newIDs, regionID) + } + } + regionIDs = newIDs + } // Now we have a list of region IDs that end up being highlighted. + + // Determine added and removed regions. + var added, removed, remaining []string + if t.highlighted != nil { + for _, regionID := range regionIDs { + if _, ok := t.highlights[regionID]; ok { + remaining = append(remaining, regionID) + delete(t.highlights, regionID) + } else { + added = append(added, regionID) + } + } + for regionID := range t.highlights { + removed = append(removed, regionID) + } + } + + // Make new selection. + t.highlights = make(map[string]struct{}) + for _, id := range regionIDs { + if id == "" { + continue + } + t.highlights[id] = struct{}{} + } + t.index = nil + + // Notify. + if t.highlighted != nil && len(added) > 0 || len(removed) > 0 { + t.highlighted(added, removed, remaining) + } + + return t +} + +// GetHighlights returns the IDs of all currently highlighted regions. +func (t *TextView) GetHighlights() (regionIDs []string) { + for id := range t.highlights { + regionIDs = append(regionIDs, id) + } + return +} + +// SetToggleHighlights sets a flag to determine how regions are highlighted. +// When set to true, the Highlight() function (or a mouse click) will toggle the +// provided/selected regions. When set to false, Highlight() (or a mouse click) +// will simply highlight the provided regions. +func (t *TextView) SetToggleHighlights(toggle bool) *TextView { + t.toggleHighlights = toggle + return t +} + +// ScrollToHighlight will cause the visible area to be scrolled so that the +// highlighted regions appear in the visible area of the text view. This +// repositioning happens the next time the text view is drawn. It happens only +// once so you will need to call this function repeatedly to always keep +// highlighted regions in view. +// +// Nothing happens if there are no highlighted regions or if the text view is +// not scrollable. +func (t *TextView) ScrollToHighlight() *TextView { + if len(t.highlights) == 0 || !t.scrollable || !t.regions { + return t + } + t.index = nil + t.scrollToHighlights = true + t.trackEnd = false + return t +} + +// GetRegionText returns the text of the region with the given ID. If dynamic +// colors are enabled, color tags are stripped from the text. Newlines are +// always returned as '\n' runes. +// +// If the region does not exist or if regions are turned off, an empty string +// is returned. +func (t *TextView) GetRegionText(regionID string) string { + if !t.regions || regionID == "" { + return "" + } + + var ( + buffer bytes.Buffer + currentRegionID string + ) + + for _, str := range t.buffer { + // Find all color tags in this line. + var colorTagIndices [][]int + if t.dynamicColors { + colorTagIndices = colorPattern.FindAllStringIndex(str, -1) + } + + // Find all regions in this line. + var ( + regionIndices [][]int + regions [][]string + ) + if t.regions { + regionIndices = regionPattern.FindAllStringIndex(str, -1) + regions = regionPattern.FindAllStringSubmatch(str, -1) + } + + // Analyze this line. + var currentTag, currentRegion int + for pos, ch := range str { + // Skip any color tags. + if currentTag < len(colorTagIndices) && pos >= colorTagIndices[currentTag][0] && pos < colorTagIndices[currentTag][1] { + if pos == colorTagIndices[currentTag][1]-1 { + currentTag++ + } + if colorTagIndices[currentTag][1]-colorTagIndices[currentTag][0] > 2 { + continue + } + } + + // Skip any regions. + if currentRegion < len(regionIndices) && pos >= regionIndices[currentRegion][0] && pos < regionIndices[currentRegion][1] { + if pos == regionIndices[currentRegion][1]-1 { + if currentRegionID == regionID { + // This is the end of the requested region. We're done. + return buffer.String() + } + currentRegionID = regions[currentRegion][1] + currentRegion++ + } + continue + } + + // Add this rune. + if currentRegionID == regionID { + buffer.WriteRune(ch) + } + } + + // Add newline. + if currentRegionID == regionID { + buffer.WriteRune('\n') + } + } + + return escapePattern.ReplaceAllString(buffer.String(), `[$1$2]`) +} + +// Focus is called when this primitive receives focus. +func (t *TextView) Focus(delegate func(p Primitive)) { + // Implemented here with locking because this is used by layout primitives. + t.Lock() + defer t.Unlock() + t.hasFocus = true +} + +// HasFocus returns whether or not this primitive has focus. +func (t *TextView) HasFocus() bool { + // Implemented here with locking because this may be used in the "changed" + // callback. + t.Lock() + defer t.Unlock() + return t.hasFocus +} + +// Write lets us implement the io.Writer interface. Tab characters will be +// replaced with TabSize space characters. A "\n" or "\r\n" will be interpreted +// as a new line. +func (t *TextView) Write(p []byte) (n int, err error) { + // Notify at the end. + t.Lock() + changed := t.changed + t.Unlock() + if changed != nil { + defer func() { + // We always call the "changed" function in a separate goroutine to avoid + // deadlocks. + go changed() + }() + } + + t.Lock() + defer t.Unlock() + + // Copy data over. + newBytes := append(t.recentBytes, p...) + t.recentBytes = nil + + // If we have a trailing invalid UTF-8 byte, we'll wait. + if r, _ := utf8.DecodeLastRune(p); r == utf8.RuneError { + t.recentBytes = newBytes + return len(p), nil + } + + // If we have a trailing open dynamic color, exclude it. + if t.dynamicColors { + location := openColorRegex.FindIndex(newBytes) + if location != nil { + t.recentBytes = newBytes[location[0]:] + newBytes = newBytes[:location[0]] + } + } + + // If we have a trailing open region, exclude it. + if t.regions { + location := openRegionRegex.FindIndex(newBytes) + if location != nil { + t.recentBytes = newBytes[location[0]:] + newBytes = newBytes[:location[0]] + } + } + + // Transform the new bytes into strings. + newBytes = bytes.Replace(newBytes, []byte{'\t'}, bytes.Repeat([]byte{' '}, TabSize), -1) + for index, line := range newLineRegex.Split(string(newBytes), -1) { + if index == 0 { + if len(t.buffer) == 0 { + t.buffer = []string{line} + } else { + t.buffer[len(t.buffer)-1] += line + } + } else { + t.buffer = append(t.buffer, line) + } + } + + // Reset the index. + t.index = nil + + return len(p), nil +} + +// reindexBuffer re-indexes the buffer such that we can use it to easily draw +// the buffer onto the screen. Each line in the index will contain a pointer +// into the buffer from which on we will print text. It will also contain the +// color with which the line starts. +func (t *TextView) reindexBuffer(width int) { + if t.index != nil { + return // Nothing has changed. We can still use the current index. + } + t.index = nil + t.fromHighlight, t.toHighlight, t.posHighlight = -1, -1, -1 + + // If there's no space, there's no index. + if width < 1 { + return + } + + // Initial states. + regionID := "" + var ( + highlighted bool + foregroundColor, backgroundColor, attributes string + ) + + // Go through each line in the buffer. + for bufferIndex, str := range t.buffer { + colorTagIndices, colorTags, regionIndices, regions, escapeIndices, strippedStr, _ := decomposeString(str, t.dynamicColors, t.regions) + + // Split the line if required. + var splitLines []string + str = strippedStr + if t.wrap && len(str) > 0 { + for len(str) > 0 { + extract := runewidth.Truncate(str, width, "") + if len(extract) == 0 { + // We'll extract at least one grapheme cluster. + gr := uniseg.NewGraphemes(str) + gr.Next() + _, to := gr.Positions() + extract = str[:to] + } + if t.wordWrap && len(extract) < len(str) { + // Add any spaces from the next line. + if spaces := spacePattern.FindStringIndex(str[len(extract):]); spaces != nil && spaces[0] == 0 { + extract = str[:len(extract)+spaces[1]] + } + + // Can we split before the mandatory end? + matches := boundaryPattern.FindAllStringIndex(extract, -1) + if len(matches) > 0 { + // Yes. Let's split there. + extract = extract[:matches[len(matches)-1][1]] + } + } + splitLines = append(splitLines, extract) + str = str[len(extract):] + } + } else { + // No need to split the line. + splitLines = []string{str} + } + + // Create index from split lines. + var originalPos, colorPos, regionPos, escapePos int + for _, splitLine := range splitLines { + line := &textViewIndex{ + Line: bufferIndex, + Pos: originalPos, + ForegroundColor: foregroundColor, + BackgroundColor: backgroundColor, + Attributes: attributes, + Region: regionID, + } + + // Shift original position with tags. + lineLength := len(splitLine) + remainingLength := lineLength + tagEnd := originalPos + totalTagLength := 0 + for { + // Which tag comes next? + nextTag := make([][3]int, 0, 3) + if colorPos < len(colorTagIndices) { + nextTag = append(nextTag, [3]int{colorTagIndices[colorPos][0], colorTagIndices[colorPos][1], 0}) // 0 = color tag. + } + if regionPos < len(regionIndices) { + nextTag = append(nextTag, [3]int{regionIndices[regionPos][0], regionIndices[regionPos][1], 1}) // 1 = region tag. + } + if escapePos < len(escapeIndices) { + nextTag = append(nextTag, [3]int{escapeIndices[escapePos][0], escapeIndices[escapePos][1], 2}) // 2 = escape tag. + } + minPos := -1 + tagIndex := -1 + for index, pair := range nextTag { + if minPos < 0 || pair[0] < minPos { + minPos = pair[0] + tagIndex = index + } + } + + // Is the next tag in range? + if tagIndex < 0 || minPos > tagEnd+remainingLength { + break // No. We're done with this line. + } + + // Advance. + strippedTagStart := nextTag[tagIndex][0] - originalPos - totalTagLength + tagEnd = nextTag[tagIndex][1] + tagLength := tagEnd - nextTag[tagIndex][0] + if nextTag[tagIndex][2] == 2 { + tagLength = 1 + } + totalTagLength += tagLength + remainingLength = lineLength - (tagEnd - originalPos - totalTagLength) + + // Process the tag. + switch nextTag[tagIndex][2] { + case 0: + // Process color tags. + foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colorTags[colorPos]) + colorPos++ + case 1: + // Process region tags. + regionID = regions[regionPos][1] + _, highlighted = t.highlights[regionID] + + // Update highlight range. + if highlighted { + line := len(t.index) + if t.fromHighlight < 0 { + t.fromHighlight, t.toHighlight = line, line + t.posHighlight = stringWidth(splitLine[:strippedTagStart]) + } else if line > t.toHighlight { + t.toHighlight = line + } + } + + regionPos++ + case 2: + // Process escape tags. + escapePos++ + } + } + + // Advance to next line. + originalPos += lineLength + totalTagLength + + // Append this line. + line.NextPos = originalPos + line.Width = stringWidth(splitLine) + t.index = append(t.index, line) + } + + // Word-wrapped lines may have trailing whitespace. Remove it. + if t.wrap && t.wordWrap { + for _, line := range t.index { + str := t.buffer[line.Line][line.Pos:line.NextPos] + spaces := spacePattern.FindAllStringIndex(str, -1) + if spaces != nil && spaces[len(spaces)-1][1] == len(str) { + oldNextPos := line.NextPos + line.NextPos -= spaces[len(spaces)-1][1] - spaces[len(spaces)-1][0] + line.Width -= stringWidth(t.buffer[line.Line][line.NextPos:oldNextPos]) + } + } + } + } + + // Calculate longest line. + t.longestLine = 0 + for _, line := range t.index { + if line.Width > t.longestLine { + t.longestLine = line.Width + } + } +} + +// Draw draws this primitive onto the screen. +func (t *TextView) Draw(screen tcell.Screen) { + t.Lock() + defer t.Unlock() + t.Box.Draw(screen) + totalWidth, totalHeight := screen.Size() + + // Get the available size. + x, y, width, height := t.GetInnerRect() + t.pageSize = height + + // If the width has changed, we need to reindex. + if width != t.lastWidth && t.wrap { + t.index = nil + } + t.lastWidth = width + + // Re-index. + t.reindexBuffer(width) + if t.regions { + t.regionInfos = nil + } + + // If we don't have an index, there's nothing to draw. + if t.index == nil { + return + } + + // Move to highlighted regions. + if t.regions && t.scrollToHighlights && t.fromHighlight >= 0 { + // Do we fit the entire height? + if t.toHighlight-t.fromHighlight+1 < height { + // Yes, let's center the highlights. + t.lineOffset = (t.fromHighlight + t.toHighlight - height) / 2 + } else { + // No, let's move to the start of the highlights. + t.lineOffset = t.fromHighlight + } + + // If the highlight is too far to the right, move it to the middle. + if t.posHighlight-t.columnOffset > 3*width/4 { + t.columnOffset = t.posHighlight - width/2 + } + + // If the highlight is off-screen on the left, move it on-screen. + if t.posHighlight-t.columnOffset < 0 { + t.columnOffset = t.posHighlight - width/4 + } + } + t.scrollToHighlights = false + + // Adjust line offset. + if t.lineOffset+height > len(t.index) { + t.trackEnd = true + } + if t.trackEnd { + t.lineOffset = len(t.index) - height + } + if t.lineOffset < 0 { + t.lineOffset = 0 + } + + // Adjust column offset. + if t.align == AlignLeft { + if t.columnOffset+width > t.longestLine { + t.columnOffset = t.longestLine - width + } + if t.columnOffset < 0 { + t.columnOffset = 0 + } + } else if t.align == AlignRight { + if t.columnOffset-width < -t.longestLine { + t.columnOffset = width - t.longestLine + } + if t.columnOffset > 0 { + t.columnOffset = 0 + } + } else { // AlignCenter. + half := (t.longestLine - width) / 2 + if half > 0 { + if t.columnOffset > half { + t.columnOffset = half + } + if t.columnOffset < -half { + t.columnOffset = -half + } + } else { + t.columnOffset = 0 + } + } + + // Draw the buffer. + defaultStyle := tcell.StyleDefault.Foreground(t.textColor) + for line := t.lineOffset; line < len(t.index); line++ { + // Are we done? + if line-t.lineOffset >= height || y+line-t.lineOffset >= totalHeight { + break + } + + // Get the text for this line. + index := t.index[line] + text := t.buffer[index.Line][index.Pos:index.NextPos] + foregroundColor := index.ForegroundColor + backgroundColor := index.BackgroundColor + attributes := index.Attributes + regionID := index.Region + if t.regions && regionID != "" && (len(t.regionInfos) == 0 || t.regionInfos[len(t.regionInfos)-1].ID != regionID) { + t.regionInfos = append(t.regionInfos, &textViewRegion{ + ID: regionID, + FromX: x, + FromY: y + line - t.lineOffset, + ToX: -1, + ToY: -1, + }) + } + + // Process tags. + colorTagIndices, colorTags, regionIndices, regions, escapeIndices, strippedText, _ := decomposeString(text, t.dynamicColors, t.regions) + + // Calculate the position of the line. + var skip, posX int + if t.align == AlignLeft { + posX = -t.columnOffset + } else if t.align == AlignRight { + posX = width - index.Width - t.columnOffset + } else { // AlignCenter. + posX = (width-index.Width)/2 - t.columnOffset + } + if posX < 0 { + skip = -posX + posX = 0 + } + + // Print the line. + if y+line-t.lineOffset >= 0 { + var colorPos, regionPos, escapePos, tagOffset, skipped int + iterateString(strippedText, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + // Process tags. + for { + if colorPos < len(colorTags) && textPos+tagOffset >= colorTagIndices[colorPos][0] && textPos+tagOffset < colorTagIndices[colorPos][1] { + // Get the color. + foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colorTags[colorPos]) + tagOffset += colorTagIndices[colorPos][1] - colorTagIndices[colorPos][0] + colorPos++ + } else if regionPos < len(regionIndices) && textPos+tagOffset >= regionIndices[regionPos][0] && textPos+tagOffset < regionIndices[regionPos][1] { + // Get the region. + if regionID != "" && len(t.regionInfos) > 0 && t.regionInfos[len(t.regionInfos)-1].ID == regionID { + // End last region. + t.regionInfos[len(t.regionInfos)-1].ToX = x + posX + t.regionInfos[len(t.regionInfos)-1].ToY = y + line - t.lineOffset + } + regionID = regions[regionPos][1] + if regionID != "" { + // Start new region. + t.regionInfos = append(t.regionInfos, &textViewRegion{ + ID: regionID, + FromX: x + posX, + FromY: y + line - t.lineOffset, + ToX: -1, + ToY: -1, + }) + } + tagOffset += regionIndices[regionPos][1] - regionIndices[regionPos][0] + regionPos++ + } else { + break + } + } + + // Skip the second-to-last character of an escape tag. + if escapePos < len(escapeIndices) && textPos+tagOffset == escapeIndices[escapePos][1]-2 { + tagOffset++ + escapePos++ + } + + // Mix the existing style with the new style. + _, _, existingStyle, _ := screen.GetContent(x+posX, y+line-t.lineOffset) + _, background, _ := existingStyle.Decompose() + style := overlayStyle(background, defaultStyle, foregroundColor, backgroundColor, attributes) + + // Do we highlight this character? + var highlighted bool + if regionID != "" { + if _, ok := t.highlights[regionID]; ok { + highlighted = true + } + } + if highlighted { + fg, bg, _ := style.Decompose() + if bg == tcell.ColorDefault { + r, g, b := fg.RGB() + c := colorful.Color{R: float64(r) / 255, G: float64(g) / 255, B: float64(b) / 255} + _, _, li := c.Hcl() + if li < .5 { + bg = tcell.ColorWhite + } else { + bg = tcell.ColorBlack + } + } + style = style.Background(fg).Foreground(bg) + } + + // Skip to the right. + if !t.wrap && skipped < skip { + skipped += screenWidth + return false + } + + // Stop at the right border. + if posX+screenWidth > width || x+posX >= totalWidth { + return true + } + + // Draw the character. + for offset := screenWidth - 1; offset >= 0; offset-- { + if offset == 0 { + screen.SetContent(x+posX+offset, y+line-t.lineOffset, main, comb, style) + } else { + screen.SetContent(x+posX+offset, y+line-t.lineOffset, ' ', nil, style) + } + } + + // Advance. + posX += screenWidth + return false + }) + } + } + + // If this view is not scrollable, we'll purge the buffer of lines that have + // scrolled out of view. + if !t.scrollable && t.lineOffset > 0 { + if t.lineOffset >= len(t.index) { + t.buffer = nil + } else { + t.buffer = t.buffer[t.index[t.lineOffset].Line:] + } + t.index = nil + t.lineOffset = 0 + } +} + +// InputHandler returns the handler for this primitive. +func (t *TextView) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + key := event.Key() + + if key == tcell.KeyEscape || key == tcell.KeyEnter || key == tcell.KeyTab || key == tcell.KeyBacktab { + if t.done != nil { + t.done(key) + } + return + } + + if !t.scrollable { + return + } + + switch key { + case tcell.KeyRune: + switch event.Rune() { + case 'g': // Home. + t.trackEnd = false + t.lineOffset = 0 + t.columnOffset = 0 + case 'G': // End. + t.trackEnd = true + t.columnOffset = 0 + case 'j': // Down. + t.lineOffset++ + case 'k': // Up. + t.trackEnd = false + t.lineOffset-- + case 'h': // Left. + t.columnOffset-- + case 'l': // Right. + t.columnOffset++ + } + case tcell.KeyHome: + t.trackEnd = false + t.lineOffset = 0 + t.columnOffset = 0 + case tcell.KeyEnd: + t.trackEnd = true + t.columnOffset = 0 + case tcell.KeyUp: + t.trackEnd = false + t.lineOffset-- + case tcell.KeyDown: + t.lineOffset++ + case tcell.KeyLeft: + t.columnOffset-- + case tcell.KeyRight: + t.columnOffset++ + case tcell.KeyPgDn, tcell.KeyCtrlF: + t.lineOffset += t.pageSize + case tcell.KeyPgUp, tcell.KeyCtrlB: + t.trackEnd = false + t.lineOffset -= t.pageSize + } + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (t *TextView) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return t.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + x, y := event.Position() + if !t.InRect(x, y) { + return false, nil + } + + switch action { + case MouseLeftClick: + if t.regions { + // Find a region to highlight. + for _, region := range t.regionInfos { + if y == region.FromY && x < region.FromX || + y == region.ToY && x >= region.ToX || + region.FromY >= 0 && y < region.FromY || + region.ToY >= 0 && y > region.ToY { + continue + } + t.Highlight(region.ID) + break + } + } + setFocus(t) + consumed = true + case MouseScrollUp: + t.trackEnd = false + t.lineOffset-- + consumed = true + case MouseScrollDown: + t.lineOffset++ + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/treeview.go b/vendor/github.com/rivo/tview/treeview.go new file mode 100644 index 0000000..ea4585a --- /dev/null +++ b/vendor/github.com/rivo/tview/treeview.go @@ -0,0 +1,775 @@ +package tview + +import ( + "github.com/gdamore/tcell" +) + +// Tree navigation events. +const ( + treeNone int = iota + treeHome + treeEnd + treeUp + treeDown + treePageUp + treePageDown +) + +// TreeNode represents one node in a tree view. +type TreeNode struct { + // The reference object. + reference interface{} + + // This node's child nodes. + children []*TreeNode + + // The item's text. + text string + + // The text color. + color tcell.Color + + // Whether or not this node can be selected. + selectable bool + + // Whether or not this node's children should be displayed. + expanded bool + + // The additional horizontal indent of this node's text. + indent int + + // An optional function which is called when the user selects this node. + selected func() + + // Temporary member variables. + parent *TreeNode // The parent node (nil for the root). + level int // The hierarchy level (0 for the root, 1 for its children, and so on). + graphicsX int // The x-coordinate of the left-most graphics rune. + textX int // The x-coordinate of the first rune of the text. +} + +// NewTreeNode returns a new tree node. +func NewTreeNode(text string) *TreeNode { + return &TreeNode{ + text: text, + color: Styles.PrimaryTextColor, + indent: 2, + expanded: true, + selectable: true, + } +} + +// Walk traverses this node's subtree in depth-first, pre-order (NLR) order and +// calls the provided callback function on each traversed node (which includes +// this node) with the traversed node and its parent node (nil for this node). +// The callback returns whether traversal should continue with the traversed +// node's child nodes (true) or not recurse any deeper (false). +func (n *TreeNode) Walk(callback func(node, parent *TreeNode) bool) *TreeNode { + n.parent = nil + nodes := []*TreeNode{n} + for len(nodes) > 0 { + // Pop the top node and process it. + node := nodes[len(nodes)-1] + nodes = nodes[:len(nodes)-1] + if !callback(node, node.parent) { + // Don't add any children. + continue + } + + // Add children in reverse order. + for index := len(node.children) - 1; index >= 0; index-- { + node.children[index].parent = node + nodes = append(nodes, node.children[index]) + } + } + + return n +} + +// SetReference allows you to store a reference of any type in this node. This +// will allow you to establish a mapping between the TreeView hierarchy and your +// internal tree structure. +func (n *TreeNode) SetReference(reference interface{}) *TreeNode { + n.reference = reference + return n +} + +// GetReference returns this node's reference object. +func (n *TreeNode) GetReference() interface{} { + return n.reference +} + +// SetChildren sets this node's child nodes. +func (n *TreeNode) SetChildren(childNodes []*TreeNode) *TreeNode { + n.children = childNodes + return n +} + +// GetText returns this node's text. +func (n *TreeNode) GetText() string { + return n.text +} + +// GetChildren returns this node's children. +func (n *TreeNode) GetChildren() []*TreeNode { + return n.children +} + +// ClearChildren removes all child nodes from this node. +func (n *TreeNode) ClearChildren() *TreeNode { + n.children = nil + return n +} + +// AddChild adds a new child node to this node. +func (n *TreeNode) AddChild(node *TreeNode) *TreeNode { + n.children = append(n.children, node) + return n +} + +// SetSelectable sets a flag indicating whether this node can be selected by +// the user. +func (n *TreeNode) SetSelectable(selectable bool) *TreeNode { + n.selectable = selectable + return n +} + +// SetSelectedFunc sets a function which is called when the user selects this +// node by hitting Enter when it is selected. +func (n *TreeNode) SetSelectedFunc(handler func()) *TreeNode { + n.selected = handler + return n +} + +// SetExpanded sets whether or not this node's child nodes should be displayed. +func (n *TreeNode) SetExpanded(expanded bool) *TreeNode { + n.expanded = expanded + return n +} + +// Expand makes the child nodes of this node appear. +func (n *TreeNode) Expand() *TreeNode { + n.expanded = true + return n +} + +// Collapse makes the child nodes of this node disappear. +func (n *TreeNode) Collapse() *TreeNode { + n.expanded = false + return n +} + +// ExpandAll expands this node and all descendent nodes. +func (n *TreeNode) ExpandAll() *TreeNode { + n.Walk(func(node, parent *TreeNode) bool { + node.expanded = true + return true + }) + return n +} + +// CollapseAll collapses this node and all descendent nodes. +func (n *TreeNode) CollapseAll() *TreeNode { + n.Walk(func(node, parent *TreeNode) bool { + n.expanded = false + return true + }) + return n +} + +// IsExpanded returns whether the child nodes of this node are visible. +func (n *TreeNode) IsExpanded() bool { + return n.expanded +} + +// SetText sets the node's text which is displayed. +func (n *TreeNode) SetText(text string) *TreeNode { + n.text = text + return n +} + +// GetColor returns the node's color. +func (n *TreeNode) GetColor() tcell.Color { + return n.color +} + +// SetColor sets the node's text color. +func (n *TreeNode) SetColor(color tcell.Color) *TreeNode { + n.color = color + return n +} + +// SetIndent sets an additional indentation for this node's text. A value of 0 +// keeps the text as far left as possible with a minimum of line graphics. Any +// value greater than that moves the text to the right. +func (n *TreeNode) SetIndent(indent int) *TreeNode { + n.indent = indent + return n +} + +// TreeView displays tree structures. A tree consists of nodes (TreeNode +// objects) where each node has zero or more child nodes and exactly one parent +// node (except for the root node which has no parent node). +// +// The SetRoot() function is used to specify the root of the tree. Other nodes +// are added locally to the root node or any of its descendents. See the +// TreeNode documentation for details on node attributes. (You can use +// SetReference() to store a reference to nodes of your own tree structure.) +// +// Nodes can be selected by calling SetCurrentNode(). The user can navigate the +// selection or the tree by using the following keys: +// +// - j, down arrow, right arrow: Move (the selection) down by one node. +// - k, up arrow, left arrow: Move (the selection) up by one node. +// - g, home: Move (the selection) to the top. +// - G, end: Move (the selection) to the bottom. +// - Ctrl-F, page down: Move (the selection) down by one page. +// - Ctrl-B, page up: Move (the selection) up by one page. +// +// Selected nodes can trigger the "selected" callback when the user hits Enter. +// +// The root node corresponds to level 0, its children correspond to level 1, +// their children to level 2, and so on. Per default, the first level that is +// displayed is 0, i.e. the root node. You can call SetTopLevel() to hide +// levels. +// +// If graphics are turned on (see SetGraphics()), lines indicate the tree's +// hierarchy. Alternative (or additionally), you can set different prefixes +// using SetPrefixes() for different levels, for example to display hierarchical +// bullet point lists. +// +// See https://github.com/rivo/tview/wiki/TreeView for an example. +type TreeView struct { + *Box + + // The root node. + root *TreeNode + + // The currently selected node or nil if no node is selected. + currentNode *TreeNode + + // The movement to be performed during the call to Draw(), one of the + // constants defined above. + movement int + + // The top hierarchical level shown. (0 corresponds to the root level.) + topLevel int + + // Strings drawn before the nodes, based on their level. + prefixes []string + + // Vertical scroll offset. + offsetY int + + // If set to true, all node texts will be aligned horizontally. + align bool + + // If set to true, the tree structure is drawn using lines. + graphics bool + + // The color of the lines. + graphicsColor tcell.Color + + // An optional function which is called when the user has navigated to a new + // tree node. + changed func(node *TreeNode) + + // An optional function which is called when a tree item was selected. + selected func(node *TreeNode) + + // An optional function which is called when the user moves away from this + // primitive. + done func(key tcell.Key) + + // The visible nodes, top-down, as set by process(). + nodes []*TreeNode +} + +// NewTreeView returns a new tree view. +func NewTreeView() *TreeView { + return &TreeView{ + Box: NewBox(), + graphics: true, + graphicsColor: Styles.GraphicsColor, + } +} + +// SetRoot sets the root node of the tree. +func (t *TreeView) SetRoot(root *TreeNode) *TreeView { + t.root = root + return t +} + +// GetRoot returns the root node of the tree. If no such node was previously +// set, nil is returned. +func (t *TreeView) GetRoot() *TreeNode { + return t.root +} + +// SetCurrentNode sets the currently selected node. Provide nil to clear all +// selections. Selected nodes must be visible and selectable, or else the +// selection will be changed to the top-most selectable and visible node. +// +// This function does NOT trigger the "changed" callback. +func (t *TreeView) SetCurrentNode(node *TreeNode) *TreeView { + t.currentNode = node + return t +} + +// GetCurrentNode returns the currently selected node or nil of no node is +// currently selected. +func (t *TreeView) GetCurrentNode() *TreeNode { + return t.currentNode +} + +// SetTopLevel sets the first tree level that is visible with 0 referring to the +// root, 1 to the root's child nodes, and so on. Nodes above the top level are +// not displayed. +func (t *TreeView) SetTopLevel(topLevel int) *TreeView { + t.topLevel = topLevel + return t +} + +// SetPrefixes defines the strings drawn before the nodes' texts. This is a +// slice of strings where each element corresponds to a node's hierarchy level, +// i.e. 0 for the root, 1 for the root's children, and so on (levels will +// cycle). +// +// For example, to display a hierarchical list with bullet points: +// +// treeView.SetGraphics(false). +// SetPrefixes([]string{"* ", "- ", "x "}) +func (t *TreeView) SetPrefixes(prefixes []string) *TreeView { + t.prefixes = prefixes + return t +} + +// SetAlign controls the horizontal alignment of the node texts. If set to true, +// all texts except that of top-level nodes will be placed in the same column. +// If set to false, they will indent with the hierarchy. +func (t *TreeView) SetAlign(align bool) *TreeView { + t.align = align + return t +} + +// SetGraphics sets a flag which determines whether or not line graphics are +// drawn to illustrate the tree's hierarchy. +func (t *TreeView) SetGraphics(showGraphics bool) *TreeView { + t.graphics = showGraphics + return t +} + +// SetGraphicsColor sets the colors of the lines used to draw the tree structure. +func (t *TreeView) SetGraphicsColor(color tcell.Color) *TreeView { + t.graphicsColor = color + return t +} + +// SetChangedFunc sets the function which is called when the user navigates to +// a new tree node. +func (t *TreeView) SetChangedFunc(handler func(node *TreeNode)) *TreeView { + t.changed = handler + return t +} + +// SetSelectedFunc sets the function which is called when the user selects a +// node by pressing Enter on the current selection. +func (t *TreeView) SetSelectedFunc(handler func(node *TreeNode)) *TreeView { + t.selected = handler + return t +} + +// SetDoneFunc sets a handler which is called whenever the user presses the +// Escape, Tab, or Backtab key. +func (t *TreeView) SetDoneFunc(handler func(key tcell.Key)) *TreeView { + t.done = handler + return t +} + +// GetScrollOffset returns the number of node rows that were skipped at the top +// of the tree view. Note that when the user navigates the tree view, this value +// is only updated after the tree view has been redrawn. +func (t *TreeView) GetScrollOffset() int { + return t.offsetY +} + +// GetRowCount returns the number of "visible" nodes. This includes nodes which +// fall outside the tree view's box but notably does not include the children +// of collapsed nodes. Note that this value is only up to date after the tree +// view has been drawn. +func (t *TreeView) GetRowCount() int { + return len(t.nodes) +} + +// process builds the visible tree, populates the "nodes" slice, and processes +// pending selection actions. +func (t *TreeView) process() { + _, _, _, height := t.GetInnerRect() + + // Determine visible nodes and their placement. + var graphicsOffset, maxTextX int + t.nodes = nil + if t.root == nil { + return + } + selectedIndex := -1 + topLevelGraphicsX := -1 + if t.graphics { + graphicsOffset = 1 + } + t.root.Walk(func(node, parent *TreeNode) bool { + // Set node attributes. + node.parent = parent + if parent == nil { + node.level = 0 + node.graphicsX = 0 + node.textX = 0 + } else { + node.level = parent.level + 1 + node.graphicsX = parent.textX + node.textX = node.graphicsX + graphicsOffset + node.indent + } + if !t.graphics && t.align { + // Without graphics, we align nodes on the first column. + node.textX = 0 + } + if node.level == t.topLevel { + // No graphics for top level nodes. + node.graphicsX = 0 + node.textX = 0 + } + + // Add the node to the list. + if node.level >= t.topLevel { + // This node will be visible. + if node.textX > maxTextX { + maxTextX = node.textX + } + if node == t.currentNode && node.selectable { + selectedIndex = len(t.nodes) + } + + // Maybe we want to skip this level. + if t.topLevel == node.level && (topLevelGraphicsX < 0 || node.graphicsX < topLevelGraphicsX) { + topLevelGraphicsX = node.graphicsX + } + + t.nodes = append(t.nodes, node) + } + + // Recurse if desired. + return node.expanded + }) + + // Post-process positions. + for _, node := range t.nodes { + // If text must align, we correct the positions. + if t.align && node.level > t.topLevel { + node.textX = maxTextX + } + + // If we skipped levels, shift to the left. + if topLevelGraphicsX > 0 { + node.graphicsX -= topLevelGraphicsX + node.textX -= topLevelGraphicsX + } + } + + // Process selection. (Also trigger events if necessary.) + if selectedIndex >= 0 { + // Move the selection. + newSelectedIndex := selectedIndex + MovementSwitch: + switch t.movement { + case treeUp: + for newSelectedIndex > 0 { + newSelectedIndex-- + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + case treeDown: + for newSelectedIndex < len(t.nodes)-1 { + newSelectedIndex++ + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + case treeHome: + for newSelectedIndex = 0; newSelectedIndex < len(t.nodes); newSelectedIndex++ { + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + case treeEnd: + for newSelectedIndex = len(t.nodes) - 1; newSelectedIndex >= 0; newSelectedIndex-- { + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + case treePageDown: + if newSelectedIndex+height < len(t.nodes) { + newSelectedIndex += height + } else { + newSelectedIndex = len(t.nodes) - 1 + } + for ; newSelectedIndex < len(t.nodes); newSelectedIndex++ { + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + case treePageUp: + if newSelectedIndex >= height { + newSelectedIndex -= height + } else { + newSelectedIndex = 0 + } + for ; newSelectedIndex >= 0; newSelectedIndex-- { + if t.nodes[newSelectedIndex].selectable { + break MovementSwitch + } + } + newSelectedIndex = selectedIndex + } + t.currentNode = t.nodes[newSelectedIndex] + if newSelectedIndex != selectedIndex { + t.movement = treeNone + if t.changed != nil { + t.changed(t.currentNode) + } + } + selectedIndex = newSelectedIndex + + // Move selection into viewport. + if selectedIndex-t.offsetY >= height { + t.offsetY = selectedIndex - height + 1 + } + if selectedIndex < t.offsetY { + t.offsetY = selectedIndex + } + } else { + // If selection is not visible or selectable, select the first candidate. + if t.currentNode != nil { + for index, node := range t.nodes { + if node.selectable { + selectedIndex = index + t.currentNode = node + break + } + } + } + if selectedIndex < 0 { + t.currentNode = nil + } + } +} + +// Draw draws this primitive onto the screen. +func (t *TreeView) Draw(screen tcell.Screen) { + t.Box.Draw(screen) + if t.root == nil { + return + } + _, totalHeight := screen.Size() + + t.process() + + // Scroll the tree. + x, y, width, height := t.GetInnerRect() + switch t.movement { + case treeUp: + t.offsetY-- + case treeDown: + t.offsetY++ + case treeHome: + t.offsetY = 0 + case treeEnd: + t.offsetY = len(t.nodes) + case treePageUp: + t.offsetY -= height + case treePageDown: + t.offsetY += height + } + t.movement = treeNone + + // Fix invalid offsets. + if t.offsetY >= len(t.nodes)-height { + t.offsetY = len(t.nodes) - height + } + if t.offsetY < 0 { + t.offsetY = 0 + } + + // Draw the tree. + posY := y + lineStyle := tcell.StyleDefault.Background(t.backgroundColor).Foreground(t.graphicsColor) + for index, node := range t.nodes { + // Skip invisible parts. + if posY >= y+height+1 || posY >= totalHeight { + break + } + if index < t.offsetY { + continue + } + + // Draw the graphics. + if t.graphics { + // Draw ancestor branches. + ancestor := node.parent + for ancestor != nil && ancestor.parent != nil && ancestor.parent.level >= t.topLevel { + if ancestor.graphicsX >= width { + continue + } + + // Draw a branch if this ancestor is not a last child. + if ancestor.parent.children[len(ancestor.parent.children)-1] != ancestor { + if posY-1 >= y && ancestor.textX > ancestor.graphicsX { + PrintJoinedSemigraphics(screen, x+ancestor.graphicsX, posY-1, Borders.Vertical, t.graphicsColor) + } + if posY < y+height { + screen.SetContent(x+ancestor.graphicsX, posY, Borders.Vertical, nil, lineStyle) + } + } + ancestor = ancestor.parent + } + + if node.textX > node.graphicsX && node.graphicsX < width { + // Connect to the node above. + if posY-1 >= y && t.nodes[index-1].graphicsX <= node.graphicsX && t.nodes[index-1].textX > node.graphicsX { + PrintJoinedSemigraphics(screen, x+node.graphicsX, posY-1, Borders.TopLeft, t.graphicsColor) + } + + // Join this node. + if posY < y+height { + screen.SetContent(x+node.graphicsX, posY, Borders.BottomLeft, nil, lineStyle) + for pos := node.graphicsX + 1; pos < node.textX && pos < width; pos++ { + screen.SetContent(x+pos, posY, Borders.Horizontal, nil, lineStyle) + } + } + } + } + + // Draw the prefix and the text. + if node.textX < width && posY < y+height { + // Prefix. + var prefixWidth int + if len(t.prefixes) > 0 { + _, prefixWidth = Print(screen, t.prefixes[(node.level-t.topLevel)%len(t.prefixes)], x+node.textX, posY, width-node.textX, AlignLeft, node.color) + } + + // Text. + if node.textX+prefixWidth < width { + style := tcell.StyleDefault.Foreground(node.color) + if node == t.currentNode { + style = tcell.StyleDefault.Background(node.color).Foreground(t.backgroundColor) + } + printWithStyle(screen, node.text, x+node.textX+prefixWidth, posY, width-node.textX-prefixWidth, AlignLeft, style) + } + } + + // Advance. + posY++ + } +} + +// InputHandler returns the handler for this primitive. +func (t *TreeView) InputHandler() func(event *tcell.EventKey, setFocus func(p Primitive)) { + return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p Primitive)) { + selectNode := func() { + node := t.currentNode + if node != nil { + if t.selected != nil { + t.selected(node) + } + if node.selected != nil { + node.selected() + } + } + } + + // Because the tree is flattened into a list only at drawing time, we also + // postpone the (selection) movement to drawing time. + switch key := event.Key(); key { + case tcell.KeyTab, tcell.KeyBacktab, tcell.KeyEscape: + if t.done != nil { + t.done(key) + } + case tcell.KeyDown, tcell.KeyRight: + t.movement = treeDown + case tcell.KeyUp, tcell.KeyLeft: + t.movement = treeUp + case tcell.KeyHome: + t.movement = treeHome + case tcell.KeyEnd: + t.movement = treeEnd + case tcell.KeyPgDn, tcell.KeyCtrlF: + t.movement = treePageDown + case tcell.KeyPgUp, tcell.KeyCtrlB: + t.movement = treePageUp + case tcell.KeyRune: + switch event.Rune() { + case 'g': + t.movement = treeHome + case 'G': + t.movement = treeEnd + case 'j': + t.movement = treeDown + case 'k': + t.movement = treeUp + case ' ': + selectNode() + } + case tcell.KeyEnter: + selectNode() + } + + t.process() + }) +} + +// MouseHandler returns the mouse handler for this primitive. +func (t *TreeView) MouseHandler() func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + return t.WrapMouseHandler(func(action MouseAction, event *tcell.EventMouse, setFocus func(p Primitive)) (consumed bool, capture Primitive) { + x, y := event.Position() + if !t.InRect(x, y) { + return false, nil + } + + switch action { + case MouseLeftClick: + setFocus(t) + _, rectY, _, _ := t.GetInnerRect() + y -= rectY + if y >= 0 && y < len(t.nodes) { + node := t.nodes[y] + if node.selectable { + previousNode := t.currentNode + t.currentNode = node + if previousNode != node && t.changed != nil { + t.changed(node) + } + if t.selected != nil { + t.selected(node) + } + if node.selected != nil { + node.selected() + } + } + } + consumed = true + case MouseScrollUp: + t.movement = treeUp + consumed = true + case MouseScrollDown: + t.movement = treeDown + consumed = true + } + + return + }) +} diff --git a/vendor/github.com/rivo/tview/tview.gif b/vendor/github.com/rivo/tview/tview.gif new file mode 100644 index 0000000000000000000000000000000000000000..0583d7b95ca4da412e5d7491221366a1a3f7d64b GIT binary patch literal 2226085 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ĵxT}f<`tmCb#T5`LAX_DjhAko@3Z$&t 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

tAsEhi!lt_gag)FL@0a8Bj=rtq775 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≧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

V(ua#LDomiop1( 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�MKf`bq0E6~ZR9(wn>{>KXXSN8O~*k%dS&Bb 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

    |B~br0D=$sT~e^cWw?|EAKtf&5W;6= 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ɕ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 z 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%0D)nKxI<67@|(3soCNOo=E8 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%0D5fhmeFPMp6dXB4`zX8@&>)qMGR&ZhW~lXiw^i4 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

    $J7G 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

    _4g&@Vt1e8u9L5wxqz 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%0ASLJH*VUBRV_e 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 E0A$d1(EtDd literal 0 HcmV?d00001 diff --git a/vendor/github.com/rivo/tview/util.go b/vendor/github.com/rivo/tview/util.go new file mode 100644 index 0000000..3bd0d3d --- /dev/null +++ b/vendor/github.com/rivo/tview/util.go @@ -0,0 +1,630 @@ +package tview + +import ( + "math" + "regexp" + "sort" + "strconv" + + "github.com/gdamore/tcell" + runewidth "github.com/mattn/go-runewidth" + "github.com/rivo/uniseg" +) + +// Text alignment within a box. +const ( + AlignLeft = iota + AlignCenter + AlignRight +) + +// Common regular expressions. +var ( + colorPattern = regexp.MustCompile(`\[([a-zA-Z]+|#[0-9a-zA-Z]{6}|\-)?(:([a-zA-Z]+|#[0-9a-zA-Z]{6}|\-)?(:([lbdru]+|\-)?)?)?\]`) + regionPattern = regexp.MustCompile(`\["([a-zA-Z0-9_,;: \-\.]*)"\]`) + escapePattern = regexp.MustCompile(`\[([a-zA-Z0-9_,;: \-\."#]+)\[(\[*)\]`) + nonEscapePattern = regexp.MustCompile(`(\[[a-zA-Z0-9_,;: \-\."#]+\[*)\]`) + boundaryPattern = regexp.MustCompile(`(([,\.\-:;!\?&#+]|\n)[ \t\f\r]*|([ \t\f\r]+))`) + spacePattern = regexp.MustCompile(`\s+`) +) + +// Positions of substrings in regular expressions. +const ( + colorForegroundPos = 1 + colorBackgroundPos = 3 + colorFlagPos = 5 +) + +// Predefined InputField acceptance functions. +var ( + // InputFieldInteger accepts integers. + InputFieldInteger func(text string, ch rune) bool + + // InputFieldFloat accepts floating-point numbers. + InputFieldFloat func(text string, ch rune) bool + + // InputFieldMaxLength returns an input field accept handler which accepts + // input strings up to a given length. Use it like this: + // + // inputField.SetAcceptanceFunc(InputFieldMaxLength(10)) // Accept up to 10 characters. + InputFieldMaxLength func(maxLength int) func(text string, ch rune) bool +) + +// Package initialization. +func init() { + // We'll use zero width joiners. + runewidth.ZeroWidthJoiner = true + + // Initialize the predefined input field handlers. + InputFieldInteger = func(text string, ch rune) bool { + if text == "-" { + return true + } + _, err := strconv.Atoi(text) + return err == nil + } + InputFieldFloat = func(text string, ch rune) bool { + if text == "-" || text == "." || text == "-." { + return true + } + _, err := strconv.ParseFloat(text, 64) + return err == nil + } + InputFieldMaxLength = func(maxLength int) func(text string, ch rune) bool { + return func(text string, ch rune) bool { + return len([]rune(text)) <= maxLength + } + } +} + +// styleFromTag takes the given style, defined by a foreground color (fgColor), +// a background color (bgColor), and style attributes, and modifies it based on +// the substrings (tagSubstrings) extracted by the regular expression for color +// tags. The new colors and attributes are returned where empty strings mean +// "don't modify" and a dash ("-") means "reset to default". +func styleFromTag(fgColor, bgColor, attributes string, tagSubstrings []string) (newFgColor, newBgColor, newAttributes string) { + if tagSubstrings[colorForegroundPos] != "" { + color := tagSubstrings[colorForegroundPos] + if color == "-" { + fgColor = "-" + } else if color != "" { + fgColor = color + } + } + + if tagSubstrings[colorBackgroundPos-1] != "" { + color := tagSubstrings[colorBackgroundPos] + if color == "-" { + bgColor = "-" + } else if color != "" { + bgColor = color + } + } + + if tagSubstrings[colorFlagPos-1] != "" { + flags := tagSubstrings[colorFlagPos] + if flags == "-" { + attributes = "-" + } else if flags != "" { + attributes = flags + } + } + + return fgColor, bgColor, attributes +} + +// overlayStyle mixes a background color with a foreground color (fgColor), +// a (possibly new) background color (bgColor), and style attributes, and +// returns the resulting style. For a definition of the colors and attributes, +// see styleFromTag(). Reset instructions cause the corresponding part of the +// default style to be used. +func overlayStyle(background tcell.Color, defaultStyle tcell.Style, fgColor, bgColor, attributes string) tcell.Style { + defFg, defBg, defAttr := defaultStyle.Decompose() + style := defaultStyle.Background(background) + + style = style.Foreground(defFg) + if fgColor != "" { + if fgColor == "-" { + style = style.Foreground(defFg) + } else { + style = style.Foreground(tcell.GetColor(fgColor)) + } + } + + if bgColor == "-" || bgColor == "" && defBg != tcell.ColorDefault { + style = style.Background(defBg) + } else if bgColor != "" { + style = style.Background(tcell.GetColor(bgColor)) + } + + if attributes == "-" { + style = style.Bold(defAttr&tcell.AttrBold > 0) + style = style.Blink(defAttr&tcell.AttrBlink > 0) + style = style.Reverse(defAttr&tcell.AttrReverse > 0) + style = style.Underline(defAttr&tcell.AttrUnderline > 0) + style = style.Dim(defAttr&tcell.AttrDim > 0) + } else if attributes != "" { + style = style.Normal() + for _, flag := range attributes { + switch flag { + case 'l': + style = style.Blink(true) + case 'b': + style = style.Bold(true) + case 'd': + style = style.Dim(true) + case 'r': + style = style.Reverse(true) + case 'u': + style = style.Underline(true) + } + } + } + + return style +} + +// decomposeString returns information about a string which may contain color +// tags or region tags, depending on which ones are requested to be found. It +// returns the indices of the color tags (as returned by +// re.FindAllStringIndex()), the color tags themselves (as returned by +// re.FindAllStringSubmatch()), the indices of region tags and the region tags +// themselves, the indices of an escaped tags (only if at least color tags or +// region tags are requested), the string stripped by any tags and escaped, and +// the screen width of the stripped string. +func decomposeString(text string, findColors, findRegions bool) (colorIndices [][]int, colors [][]string, regionIndices [][]int, regions [][]string, escapeIndices [][]int, stripped string, width int) { + // Shortcut for the trivial case. + if !findColors && !findRegions { + return nil, nil, nil, nil, nil, text, stringWidth(text) + } + + // Get positions of any tags. + if findColors { + colorIndices = colorPattern.FindAllStringIndex(text, -1) + colors = colorPattern.FindAllStringSubmatch(text, -1) + } + if findRegions { + regionIndices = regionPattern.FindAllStringIndex(text, -1) + regions = regionPattern.FindAllStringSubmatch(text, -1) + } + escapeIndices = escapePattern.FindAllStringIndex(text, -1) + + // Because the color pattern detects empty tags, we need to filter them out. + for i := len(colorIndices) - 1; i >= 0; i-- { + if colorIndices[i][1]-colorIndices[i][0] == 2 { + colorIndices = append(colorIndices[:i], colorIndices[i+1:]...) + colors = append(colors[:i], colors[i+1:]...) + } + } + + // Make a (sorted) list of all tags. + allIndices := make([][3]int, 0, len(colorIndices)+len(regionIndices)+len(escapeIndices)) + for indexType, index := range [][][]int{colorIndices, regionIndices, escapeIndices} { + for _, tag := range index { + allIndices = append(allIndices, [3]int{tag[0], tag[1], indexType}) + } + } + sort.Slice(allIndices, func(i int, j int) bool { + return allIndices[i][0] < allIndices[j][0] + }) + + // Remove the tags from the original string. + var from int + buf := make([]byte, 0, len(text)) + for _, indices := range allIndices { + if indices[2] == 2 { // Escape sequences are not simply removed. + buf = append(buf, []byte(text[from:indices[1]-2])...) + buf = append(buf, ']') + from = indices[1] + } else { + buf = append(buf, []byte(text[from:indices[0]])...) + from = indices[1] + } + } + buf = append(buf, text[from:]...) + stripped = string(buf) + + // Get the width of the stripped string. + width = stringWidth(stripped) + + return +} + +// Print prints text onto the screen into the given box at (x,y,maxWidth,1), +// not exceeding that box. "align" is one of AlignLeft, AlignCenter, or +// AlignRight. The screen's background color will not be changed. +// +// You can change the colors and text styles mid-text by inserting a color tag. +// See the package description for details. +// +// Returns the number of actual bytes of the text printed (including color tags) +// and the actual width used for the printed runes. +func Print(screen tcell.Screen, text string, x, y, maxWidth, align int, color tcell.Color) (int, int) { + return printWithStyle(screen, text, x, y, maxWidth, align, tcell.StyleDefault.Foreground(color)) +} + +// printWithStyle works like Print() but it takes a style instead of just a +// foreground color. +func printWithStyle(screen tcell.Screen, text string, x, y, maxWidth, align int, style tcell.Style) (int, int) { + totalWidth, totalHeight := screen.Size() + if maxWidth <= 0 || len(text) == 0 || y < 0 || y >= totalHeight { + return 0, 0 + } + + // Decompose the text. + colorIndices, colors, _, _, escapeIndices, strippedText, strippedWidth := decomposeString(text, true, false) + + // We want to reduce all alignments to AlignLeft. + if align == AlignRight { + if strippedWidth <= maxWidth { + // There's enough space for the entire text. + return printWithStyle(screen, text, x+maxWidth-strippedWidth, y, maxWidth, AlignLeft, style) + } + // Trim characters off the beginning. + var ( + bytes, width, colorPos, escapePos, tagOffset int + foregroundColor, backgroundColor, attributes string + ) + _, originalBackground, _ := style.Decompose() + iterateString(strippedText, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + // Update color/escape tag offset and style. + if colorPos < len(colorIndices) && textPos+tagOffset >= colorIndices[colorPos][0] && textPos+tagOffset < colorIndices[colorPos][1] { + foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colors[colorPos]) + style = overlayStyle(originalBackground, style, foregroundColor, backgroundColor, attributes) + tagOffset += colorIndices[colorPos][1] - colorIndices[colorPos][0] + colorPos++ + } + if escapePos < len(escapeIndices) && textPos+tagOffset >= escapeIndices[escapePos][0] && textPos+tagOffset < escapeIndices[escapePos][1] { + tagOffset++ + escapePos++ + } + if strippedWidth-screenPos < maxWidth { + // We chopped off enough. + if escapePos > 0 && textPos+tagOffset-1 >= escapeIndices[escapePos-1][0] && textPos+tagOffset-1 < escapeIndices[escapePos-1][1] { + // Unescape open escape sequences. + escapeCharPos := escapeIndices[escapePos-1][1] - 2 + text = text[:escapeCharPos] + text[escapeCharPos+1:] + } + // Print and return. + bytes, width = printWithStyle(screen, text[textPos+tagOffset:], x, y, maxWidth, AlignLeft, style) + return true + } + return false + }) + return bytes, width + } else if align == AlignCenter { + if strippedWidth == maxWidth { + // Use the exact space. + return printWithStyle(screen, text, x, y, maxWidth, AlignLeft, style) + } else if strippedWidth < maxWidth { + // We have more space than we need. + half := (maxWidth - strippedWidth) / 2 + return printWithStyle(screen, text, x+half, y, maxWidth-half, AlignLeft, style) + } else { + // Chop off runes until we have a perfect fit. + var choppedLeft, choppedRight, leftIndex, rightIndex int + rightIndex = len(strippedText) + for rightIndex-1 > leftIndex && strippedWidth-choppedLeft-choppedRight > maxWidth { + if choppedLeft < choppedRight { + // Iterate on the left by one character. + iterateString(strippedText[leftIndex:], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + choppedLeft += screenWidth + leftIndex += textWidth + return true + }) + } else { + // Iterate on the right by one character. + iterateStringReverse(strippedText[leftIndex:rightIndex], func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + choppedRight += screenWidth + rightIndex -= textWidth + return true + }) + } + } + + // Add tag offsets and determine start style. + var ( + colorPos, escapePos, tagOffset int + foregroundColor, backgroundColor, attributes string + ) + _, originalBackground, _ := style.Decompose() + for index := range strippedText { + // We only need the offset of the left index. + if index > leftIndex { + // We're done. + if escapePos > 0 && leftIndex+tagOffset-1 >= escapeIndices[escapePos-1][0] && leftIndex+tagOffset-1 < escapeIndices[escapePos-1][1] { + // Unescape open escape sequences. + escapeCharPos := escapeIndices[escapePos-1][1] - 2 + text = text[:escapeCharPos] + text[escapeCharPos+1:] + } + break + } + + // Update color/escape tag offset. + if colorPos < len(colorIndices) && index+tagOffset >= colorIndices[colorPos][0] && index+tagOffset < colorIndices[colorPos][1] { + if index <= leftIndex { + foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colors[colorPos]) + style = overlayStyle(originalBackground, style, foregroundColor, backgroundColor, attributes) + } + tagOffset += colorIndices[colorPos][1] - colorIndices[colorPos][0] + colorPos++ + } + if escapePos < len(escapeIndices) && index+tagOffset >= escapeIndices[escapePos][0] && index+tagOffset < escapeIndices[escapePos][1] { + tagOffset++ + escapePos++ + } + } + return printWithStyle(screen, text[leftIndex+tagOffset:], x, y, maxWidth, AlignLeft, style) + } + } + + // Draw text. + var ( + drawn, drawnWidth, colorPos, escapePos, tagOffset int + foregroundColor, backgroundColor, attributes string + ) + iterateString(strippedText, func(main rune, comb []rune, textPos, length, screenPos, screenWidth int) bool { + // Only continue if there is still space. + if drawnWidth+screenWidth > maxWidth || x+drawnWidth >= totalWidth { + return true + } + + // Handle color tags. + for colorPos < len(colorIndices) && textPos+tagOffset >= colorIndices[colorPos][0] && textPos+tagOffset < colorIndices[colorPos][1] { + foregroundColor, backgroundColor, attributes = styleFromTag(foregroundColor, backgroundColor, attributes, colors[colorPos]) + tagOffset += colorIndices[colorPos][1] - colorIndices[colorPos][0] + colorPos++ + } + + // Handle scape tags. + if escapePos < len(escapeIndices) && textPos+tagOffset >= escapeIndices[escapePos][0] && textPos+tagOffset < escapeIndices[escapePos][1] { + if textPos+tagOffset == escapeIndices[escapePos][1]-2 { + tagOffset++ + escapePos++ + } + } + + // Print the rune sequence. + finalX := x + drawnWidth + _, _, finalStyle, _ := screen.GetContent(finalX, y) + _, background, _ := finalStyle.Decompose() + finalStyle = overlayStyle(background, style, foregroundColor, backgroundColor, attributes) + for offset := screenWidth - 1; offset >= 0; offset-- { + // To avoid undesired effects, we populate all cells. + if offset == 0 { + screen.SetContent(finalX+offset, y, main, comb, finalStyle) + } else { + screen.SetContent(finalX+offset, y, ' ', nil, finalStyle) + } + } + + // Advance. + drawn += length + drawnWidth += screenWidth + + return false + }) + + return drawn + tagOffset + len(escapeIndices), drawnWidth +} + +// PrintSimple prints white text to the screen at the given position. +func PrintSimple(screen tcell.Screen, text string, x, y int) { + Print(screen, text, x, y, math.MaxInt32, AlignLeft, Styles.PrimaryTextColor) +} + +// TaggedStringWidth returns the width of the given string needed to print it on +// screen. The text may contain color tags which are not counted. +func TaggedStringWidth(text string) int { + _, _, _, _, _, _, width := decomposeString(text, true, false) + return width +} + +// stringWidth returns the number of horizontal cells needed to print the given +// text. It splits the text into its grapheme clusters, calculates each +// cluster's width, and adds them up to a total. +func stringWidth(text string) (width int) { + g := uniseg.NewGraphemes(text) + for g.Next() { + var chWidth int + for _, r := range g.Runes() { + chWidth = runewidth.RuneWidth(r) + if chWidth > 0 { + break // Our best guess at this point is to use the width of the first non-zero-width rune. + } + } + width += chWidth + } + return +} + +// WordWrap splits a text such that each resulting line does not exceed the +// given screen width. Possible split points are after any punctuation or +// whitespace. Whitespace after split points will be dropped. +// +// This function considers color tags to have no width. +// +// Text is always split at newline characters ('\n'). +func WordWrap(text string, width int) (lines []string) { + colorTagIndices, _, _, _, escapeIndices, strippedText, _ := decomposeString(text, true, false) + + // Find candidate breakpoints. + breakpoints := boundaryPattern.FindAllStringSubmatchIndex(strippedText, -1) + // Results in one entry for each candidate. Each entry is an array a of + // indices into strippedText where a[6] < 0 for newline/punctuation matches + // and a[4] < 0 for whitespace matches. + + // Process stripped text one character at a time. + var ( + colorPos, escapePos, breakpointPos, tagOffset int + lastBreakpoint, lastContinuation, currentLineStart int + lineWidth, overflow int + forceBreak bool + ) + unescape := func(substr string, startIndex int) string { + // A helper function to unescape escaped tags. + for index := escapePos; index >= 0; index-- { + if index < len(escapeIndices) && startIndex > escapeIndices[index][0] && startIndex < escapeIndices[index][1]-1 { + pos := escapeIndices[index][1] - 2 - startIndex + return substr[:pos] + substr[pos+1:] + } + } + return substr + } + iterateString(strippedText, func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool { + // Handle tags. + for { + if colorPos < len(colorTagIndices) && textPos+tagOffset >= colorTagIndices[colorPos][0] && textPos+tagOffset < colorTagIndices[colorPos][1] { + // Colour tags. + tagOffset += colorTagIndices[colorPos][1] - colorTagIndices[colorPos][0] + colorPos++ + } else if escapePos < len(escapeIndices) && textPos+tagOffset == escapeIndices[escapePos][1]-2 { + // Escape tags. + tagOffset++ + escapePos++ + } else { + break + } + } + + // Is this a breakpoint? + if breakpointPos < len(breakpoints) && textPos+tagOffset == breakpoints[breakpointPos][0] { + // Yes, it is. Set up breakpoint infos depending on its type. + lastBreakpoint = breakpoints[breakpointPos][0] + tagOffset + lastContinuation = breakpoints[breakpointPos][1] + tagOffset + overflow = 0 + forceBreak = main == '\n' + if breakpoints[breakpointPos][6] < 0 && !forceBreak { + lastBreakpoint++ // Don't skip punctuation. + } + breakpointPos++ + } + + // Check if a break is warranted. + if forceBreak || lineWidth > 0 && lineWidth+screenWidth > width { + breakpoint := lastBreakpoint + continuation := lastContinuation + if forceBreak { + breakpoint = textPos + tagOffset + continuation = textPos + tagOffset + 1 + lastBreakpoint = 0 + overflow = 0 + } else if lastBreakpoint <= currentLineStart { + breakpoint = textPos + tagOffset + continuation = textPos + tagOffset + overflow = 0 + } + lines = append(lines, unescape(text[currentLineStart:breakpoint], currentLineStart)) + currentLineStart, lineWidth, forceBreak = continuation, overflow, false + } + + // Remember the characters since the last breakpoint. + if lastBreakpoint > 0 && lastContinuation <= textPos+tagOffset { + overflow += screenWidth + } + + // Advance. + lineWidth += screenWidth + + // But if we're still inside a breakpoint, skip next character (whitespace). + if textPos+tagOffset < currentLineStart { + lineWidth -= screenWidth + } + + return false + }) + + // Flush the rest. + if currentLineStart < len(text) { + lines = append(lines, unescape(text[currentLineStart:], currentLineStart)) + } + + return +} + +// Escape escapes the given text such that color and/or region tags are not +// recognized and substituted by the print functions of this package. For +// example, to include a tag-like string in a box title or in a TextView: +// +// box.SetTitle(tview.Escape("[squarebrackets]")) +// fmt.Fprint(textView, tview.Escape(`["quoted"]`)) +func Escape(text string) string { + return nonEscapePattern.ReplaceAllString(text, "$1[]") +} + +// iterateString iterates through the given string one printed character at a +// time. For each such character, the callback function is called with the +// Unicode code points of the character (the first rune and any combining runes +// which may be nil if there aren't any), the starting position (in bytes) +// within the original string, its length in bytes, the screen position of the +// character, and the screen width of it. The iteration stops if the callback +// returns true. This function returns true if the iteration was stopped before +// the last character. +func iterateString(text string, callback func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool) bool { + var screenPos int + + gr := uniseg.NewGraphemes(text) + for gr.Next() { + r := gr.Runes() + from, to := gr.Positions() + width := stringWidth(gr.Str()) + var comb []rune + if len(r) > 1 { + comb = r[1:] + } + + if callback(r[0], comb, from, to-from, screenPos, width) { + return true + } + + screenPos += width + } + + return false +} + +// iterateStringReverse iterates through the given string in reverse, starting +// from the end of the string, one printed character at a time. For each such +// character, the callback function is called with the Unicode code points of +// the character (the first rune and any combining runes which may be nil if +// there aren't any), the starting position (in bytes) within the original +// string, its length in bytes, the screen position of the character, and the +// screen width of it. The iteration stops if the callback returns true. This +// function returns true if the iteration was stopped before the last character. +func iterateStringReverse(text string, callback func(main rune, comb []rune, textPos, textWidth, screenPos, screenWidth int) bool) bool { + type cluster struct { + main rune + comb []rune + textPos, textWidth, screenPos, screenWidth int + } + + // Create the grapheme clusters. + var clusters []cluster + iterateString(text, func(main rune, comb []rune, textPos int, textWidth int, screenPos int, screenWidth int) bool { + clusters = append(clusters, cluster{ + main: main, + comb: comb, + textPos: textPos, + textWidth: textWidth, + screenPos: screenPos, + screenWidth: screenWidth, + }) + return false + }) + + // Iterate in reverse. + for index := len(clusters) - 1; index >= 0; index-- { + if callback( + clusters[index].main, + clusters[index].comb, + clusters[index].textPos, + clusters[index].textWidth, + clusters[index].screenPos, + clusters[index].screenWidth, + ) { + return true + } + } + + return false +} diff --git a/vendor/github.com/rivo/uniseg/LICENSE.txt b/vendor/github.com/rivo/uniseg/LICENSE.txt new file mode 100644 index 0000000..5040f1e --- /dev/null +++ b/vendor/github.com/rivo/uniseg/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Oliver Kuederle + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/rivo/uniseg/README.md b/vendor/github.com/rivo/uniseg/README.md new file mode 100644 index 0000000..f8da293 --- /dev/null +++ b/vendor/github.com/rivo/uniseg/README.md @@ -0,0 +1,62 @@ +# Unicode Text Segmentation for Go + +[![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/rivo/uniseg) +[![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/uniseg) + +This Go package implements Unicode Text Segmentation according to [Unicode Standard Annex #29](http://unicode.org/reports/tr29/) (Unicode version 12.0.0). + +At this point, only the determination of grapheme cluster boundaries is implemented. + +## Background + +In Go, [strings are read-only slices of bytes](https://blog.golang.org/strings). They can be turned into Unicode code points using the `for` loop or by casting: `[]rune(str)`. However, multiple code points may be combined into one user-perceived character or what the Unicode specification calls "grapheme cluster". Here are some examples: + +|String|Bytes (UTF-8)|Code points (runes)|Grapheme clusters| +|-|-|-|-| +|Käse|6 bytes: `4b 61 cc 88 73 65`|5 code points: `4b 61 308 73 65`|4 clusters: `[4b],[61 308],[73],[65]`| +|🏳️‍🌈|14 bytes: `f0 9f 8f b3 ef b8 8f e2 80 8d f0 9f 8c 88`|4 code points: `1f3f3 fe0f 200d 1f308`|1 cluster: `[1f3f3 fe0f 200d 1f308]`| +|🇩🇪|8 bytes: `f0 9f 87 a9 f0 9f 87 aa`|2 code points: `1f1e9 1f1ea`|1 cluster: `[1f1e9 1f1ea]`| + +This package provides a tool to iterate over these grapheme clusters. This may be used to determine the number of user-perceived characters, to split strings in their intended places, or to extract individual characters which form a unit. + +## Installation + +```bash +go get github.com/rivo/uniseg +``` + +## Basic Example + +```go +package uniseg + +import ( + "fmt" + + "github.com/rivo/uniseg" +) + +func main() { + gr := uniseg.NewGraphemes("👍🏼!") + for gr.Next() { + fmt.Printf("%x ", gr.Runes()) + } + // Output: [1f44d 1f3fc] [21] +} +``` + +## Documentation + +Refer to https://godoc.org/github.com/rivo/uniseg for the package's documentation. + +## Dependencies + +This package does not depend on any packages outside the standard library. + +## Your Feedback + +Add your issue here on GitHub. Feel free to get in touch if you have any questions. + +## Version + +Version tags will be introduced once Golang modules are official. Consider this version 0.1. diff --git a/vendor/github.com/rivo/uniseg/doc.go b/vendor/github.com/rivo/uniseg/doc.go new file mode 100644 index 0000000..60c737d --- /dev/null +++ b/vendor/github.com/rivo/uniseg/doc.go @@ -0,0 +1,8 @@ +/* +Package uniseg implements Unicode Text Segmentation according to Unicode +Standard Annex #29 (http://unicode.org/reports/tr29/). + +At this point, only the determination of grapheme cluster boundaries is +implemented. +*/ +package uniseg diff --git a/vendor/github.com/rivo/uniseg/go.mod b/vendor/github.com/rivo/uniseg/go.mod new file mode 100644 index 0000000..a54280b --- /dev/null +++ b/vendor/github.com/rivo/uniseg/go.mod @@ -0,0 +1,3 @@ +module github.com/rivo/uniseg + +go 1.12 diff --git a/vendor/github.com/rivo/uniseg/grapheme.go b/vendor/github.com/rivo/uniseg/grapheme.go new file mode 100644 index 0000000..fbb846b --- /dev/null +++ b/vendor/github.com/rivo/uniseg/grapheme.go @@ -0,0 +1,258 @@ +package uniseg + +// The states of the grapheme cluster parser. +const ( + grAny = iota + grCR + grControlLF + grL + grLVV + grLVTT + grPrepend + grExtendedPictographic + grExtendedPictographicZWJ + grRIOdd + grRIEven +) + +// The grapheme cluster parser's breaking instructions. +const ( + grNoBoundary = iota + grBoundary +) + +// The grapheme cluster parser's state transitions. Maps (state, property) to +// (new state, breaking instruction, rule number). The breaking instruction +// always refers to the boundary between the last and next code point. +// +// This map is queried as follows: +// +// 1. Find specific state + specific property. Stop if found. +// 2. Find specific state + any property. +// 3. Find any state + specific property. +// 4. If only (2) or (3) (but not both) was found, stop. +// 5. If both (2) and (3) were found, use state and breaking instruction from +// the transition with the lower rule number, prefer (3) if rule numbers +// are equal. Stop. +// 6. Assume grAny and grBoundary. +var grTransitions = map[[2]int][3]int{ + // GB5 + {grAny, prCR}: {grCR, grBoundary, 50}, + {grAny, prLF}: {grControlLF, grBoundary, 50}, + {grAny, prControl}: {grControlLF, grBoundary, 50}, + + // GB4 + {grCR, prAny}: {grAny, grBoundary, 40}, + {grControlLF, prAny}: {grAny, grBoundary, 40}, + + // GB3. + {grCR, prLF}: {grAny, grNoBoundary, 30}, + + // GB6. + {grAny, prL}: {grL, grBoundary, 9990}, + {grL, prL}: {grL, grNoBoundary, 60}, + {grL, prV}: {grLVV, grNoBoundary, 60}, + {grL, prLV}: {grLVV, grNoBoundary, 60}, + {grL, prLVT}: {grLVTT, grNoBoundary, 60}, + + // GB7. + {grAny, prLV}: {grLVV, grBoundary, 9990}, + {grAny, prV}: {grLVV, grBoundary, 9990}, + {grLVV, prV}: {grLVV, grNoBoundary, 70}, + {grLVV, prT}: {grLVTT, grNoBoundary, 70}, + + // GB8. + {grAny, prLVT}: {grLVTT, grBoundary, 9990}, + {grAny, prT}: {grLVTT, grBoundary, 9990}, + {grLVTT, prT}: {grLVTT, grNoBoundary, 80}, + + // GB9. + {grAny, prExtend}: {grAny, grNoBoundary, 90}, + {grAny, prZWJ}: {grAny, grNoBoundary, 90}, + + // GB9a. + {grAny, prSpacingMark}: {grAny, grNoBoundary, 91}, + + // GB9b. + {grAny, prPreprend}: {grPrepend, grBoundary, 9990}, + {grPrepend, prAny}: {grAny, grNoBoundary, 92}, + + // GB11. + {grAny, prExtendedPictographic}: {grExtendedPictographic, grBoundary, 9990}, + {grExtendedPictographic, prExtend}: {grExtendedPictographic, grNoBoundary, 110}, + {grExtendedPictographic, prZWJ}: {grExtendedPictographicZWJ, grNoBoundary, 110}, + {grExtendedPictographicZWJ, prExtendedPictographic}: {grExtendedPictographic, grNoBoundary, 110}, + + // GB12 / GB13. + {grAny, prRegionalIndicator}: {grRIOdd, grBoundary, 9990}, + {grRIOdd, prRegionalIndicator}: {grRIEven, grNoBoundary, 120}, + {grRIEven, prRegionalIndicator}: {grRIOdd, grBoundary, 120}, +} + +// Graphemes implements an iterator over Unicode extended grapheme clusters, +// specified in the Unicode Standard Annex #29. Grapheme clusters correspond to +// "user-perceived characters". These characters often consist of multiple +// code points (e.g. the "woman kissing woman" emoji consists of 8 code points: +// woman + ZWJ + heavy black heart (2 code points) + ZWJ + kiss mark + ZWJ + +// woman) and the rules described in Annex #29 must be applied to group those +// code points into clusters perceived by the user as one character. +type Graphemes struct { + // The code points over which this class iterates. + codePoints []rune + + // The (byte-based) indices of the code points into the original string plus + // len(original string). Thus, len(indices) = len(codePoints) + 1. + indices []int + + // The current grapheme cluster to be returned. These are indices into + // codePoints/indices. If start == end, we either haven't started iterating + // yet (0) or the iteration has already completed (1). + start, end int + + // The index of the next code point to be parsed. + pos int + + // The current state of the code point parser. + state int +} + +// NewGraphemes returns a new grapheme cluster iterator. +func NewGraphemes(s string) *Graphemes { + g := &Graphemes{} + for index, codePoint := range s { + g.codePoints = append(g.codePoints, codePoint) + g.indices = append(g.indices, index) + } + g.indices = append(g.indices, len(s)) + g.Next() // Parse ahead. + return g +} + +// Next advances the iterator by one grapheme cluster and returns false if no +// clusters are left. This function must be called before the first cluster is +// accessed. +func (g *Graphemes) Next() bool { + g.start = g.end + + // The state transition gives us a boundary instruction BEFORE the next code + // point so we always need to stay ahead by one code point. + + // Parse the next code point. + for g.pos <= len(g.codePoints) { + // GB2. + if g.pos == len(g.codePoints) { + g.end = g.pos + g.pos++ + break + } + + // Determine the property of the next character. + nextProperty := property(g.codePoints[g.pos]) + g.pos++ + + // Find the applicable transition. + var boundary bool + transition, ok := grTransitions[[2]int{g.state, nextProperty}] + if ok { + // We have a specific transition. We'll use it. + g.state = transition[0] + boundary = transition[1] == grBoundary + } else { + // No specific transition found. Try the less specific ones. + transAnyProp, okAnyProp := grTransitions[[2]int{g.state, prAny}] + transAnyState, okAnyState := grTransitions[[2]int{grAny, nextProperty}] + if okAnyProp && okAnyState { + // Both apply. We'll use a mix (see comments for grTransitions). + g.state = transAnyState[0] + boundary = transAnyState[1] == grBoundary + if transAnyProp[2] < transAnyState[2] { + g.state = transAnyProp[0] + boundary = transAnyProp[1] == grBoundary + } + } else if okAnyProp { + // We only have a specific state. + g.state = transAnyProp[0] + boundary = transAnyProp[1] == grBoundary + // This branch will probably never be reached because okAnyState will + // always be true given the current transition map. But we keep it here + // for future modifications to the transition map where this may not be + // true anymore. + } else if okAnyState { + // We only have a specific property. + g.state = transAnyState[0] + boundary = transAnyState[1] == grBoundary + } else { + // No known transition. GB999: Any x Any. + g.state = grAny + boundary = true + } + } + + // If we found a cluster boundary, let's stop here. The current cluster will + // be the one that just ended. + if g.pos-1 == 0 /* GB1 */ || boundary { + g.end = g.pos - 1 + break + } + } + + return g.start != g.end +} + +// Runes returns a slice of runes (code points) which corresponds to the current +// grapheme cluster. If the iterator is already past the end or Next() has not +// yet been called, nil is returned. +func (g *Graphemes) Runes() []rune { + if g.start == g.end { + return nil + } + return g.codePoints[g.start:g.end] +} + +// Str returns a substring of the original string which corresponds to the +// current grapheme cluster. If the iterator is already past the end or Next() +// has not yet been called, an empty string is returned. +func (g *Graphemes) Str() string { + if g.start == g.end { + return "" + } + return string(g.codePoints[g.start:g.end]) +} + +// Bytes returns a byte slice which corresponds to the current grapheme cluster. +// If the iterator is already past the end or Next() has not yet been called, +// nil is returned. +func (g *Graphemes) Bytes() []byte { + if g.start == g.end { + return nil + } + return []byte(string(g.codePoints[g.start:g.end])) +} + +// Positions returns the interval of the current grapheme cluster as byte +// positions into the original string. The first returned value "from" indexes +// the first byte and the second returned value "to" indexes the first byte that +// is not included anymore, i.e. str[from:to] is the current grapheme cluster of +// the original string "str". If Next() has not yet been called, both values are +// 0. If the iterator is already past the end, both values are 1. +func (g *Graphemes) Positions() (int, int) { + return g.indices[g.start], g.indices[g.end] +} + +// Reset puts the iterator into its initial state such that the next call to +// Next() sets it to the first grapheme cluster again. +func (g *Graphemes) Reset() { + g.start, g.end, g.pos, g.state = 0, 0, 0, grAny + g.Next() // Parse ahead again. +} + +// GraphemeClusterCount returns the number of user-perceived characters +// (grapheme clusters) for the given string. To calculate this number, it +// iterates through the string using the Graphemes iterator. +func GraphemeClusterCount(s string) (n int) { + g := NewGraphemes(s) + for g.Next() { + n++ + } + return +} diff --git a/vendor/github.com/rivo/uniseg/properties.go b/vendor/github.com/rivo/uniseg/properties.go new file mode 100644 index 0000000..a75ab58 --- /dev/null +++ b/vendor/github.com/rivo/uniseg/properties.go @@ -0,0 +1,1658 @@ +package uniseg + +// The unicode properties. Only the ones needed in the context of this package +// are included. +const ( + prAny = iota + prPreprend + prCR + prLF + prControl + prExtend + prRegionalIndicator + prSpacingMark + prL + prV + prT + prLV + prLVT + prZWJ + prExtendedPictographic +) + +// Maps code point ranges to their properties. In the context of this package, +// any code point that is not contained may map to "prAny". The code point +// ranges in this slice are numerically sorted. +// +// These ranges were taken from +// http://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt +// as well as +// https://unicode.org/Public/emoji/latest/emoji-data.txt +// ("Extended_Pictographic" only) on March 11, 2019. See +// https://www.unicode.org/license.html for the Unicode license agreement. +var codePoints = [][3]int{ + {0x0000, 0x0009, prControl}, // Cc [10] .. + {0x000A, 0x000A, prLF}, // Cc + {0x000B, 0x000C, prControl}, // Cc [2] .. + {0x000D, 0x000D, prCR}, // Cc + {0x000E, 0x001F, prControl}, // Cc [18] .. + {0x007F, 0x009F, prControl}, // Cc [33] .. + {0x00A9, 0x00A9, prExtendedPictographic}, // 1.1 [1] (©️) copyright + {0x00AD, 0x00AD, prControl}, // Cf SOFT HYPHEN + {0x00AE, 0x00AE, prExtendedPictographic}, // 1.1 [1] (®️) registered + {0x0300, 0x036F, prExtend}, // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X + {0x0483, 0x0487, prExtend}, // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE + {0x0488, 0x0489, prExtend}, // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN + {0x0591, 0x05BD, prExtend}, // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG + {0x05BF, 0x05BF, prExtend}, // Mn HEBREW POINT RAFE + {0x05C1, 0x05C2, prExtend}, // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT + {0x05C4, 0x05C5, prExtend}, // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT + {0x05C7, 0x05C7, prExtend}, // Mn HEBREW POINT QAMATS QATAN + {0x0600, 0x0605, prPreprend}, // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE + {0x0610, 0x061A, prExtend}, // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA + {0x061C, 0x061C, prControl}, // Cf ARABIC LETTER MARK + {0x064B, 0x065F, prExtend}, // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW + {0x0670, 0x0670, prExtend}, // Mn ARABIC LETTER SUPERSCRIPT ALEF + {0x06D6, 0x06DC, prExtend}, // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN + {0x06DD, 0x06DD, prPreprend}, // Cf ARABIC END OF AYAH + {0x06DF, 0x06E4, prExtend}, // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA + {0x06E7, 0x06E8, prExtend}, // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON + {0x06EA, 0x06ED, prExtend}, // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM + {0x070F, 0x070F, prPreprend}, // Cf SYRIAC ABBREVIATION MARK + {0x0711, 0x0711, prExtend}, // Mn SYRIAC LETTER SUPERSCRIPT ALAPH + {0x0730, 0x074A, prExtend}, // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH + {0x07A6, 0x07B0, prExtend}, // Mn [11] THAANA ABAFILI..THAANA SUKUN + {0x07EB, 0x07F3, prExtend}, // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE + {0x07FD, 0x07FD, prExtend}, // Mn NKO DANTAYALAN + {0x0816, 0x0819, prExtend}, // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH + {0x081B, 0x0823, prExtend}, // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A + {0x0825, 0x0827, prExtend}, // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U + {0x0829, 0x082D, prExtend}, // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA + {0x0859, 0x085B, prExtend}, // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK + {0x08D3, 0x08E1, prExtend}, // Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA + {0x08E2, 0x08E2, prPreprend}, // Cf ARABIC DISPUTED END OF AYAH + {0x08E3, 0x0902, prExtend}, // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + {0x0903, 0x0903, prSpacingMark}, // Mc DEVANAGARI SIGN VISARGA + {0x093A, 0x093A, prExtend}, // Mn DEVANAGARI VOWEL SIGN OE + {0x093B, 0x093B, prSpacingMark}, // Mc DEVANAGARI VOWEL SIGN OOE + {0x093C, 0x093C, prExtend}, // Mn DEVANAGARI SIGN NUKTA + {0x093E, 0x0940, prSpacingMark}, // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II + {0x0941, 0x0948, prExtend}, // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI + {0x0949, 0x094C, prSpacingMark}, // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU + {0x094D, 0x094D, prExtend}, // Mn DEVANAGARI SIGN VIRAMA + {0x094E, 0x094F, prSpacingMark}, // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW + {0x0951, 0x0957, prExtend}, // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE + {0x0962, 0x0963, prExtend}, // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL + {0x0981, 0x0981, prExtend}, // Mn BENGALI SIGN CANDRABINDU + {0x0982, 0x0983, prSpacingMark}, // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA + {0x09BC, 0x09BC, prExtend}, // Mn BENGALI SIGN NUKTA + {0x09BE, 0x09BE, prExtend}, // Mc BENGALI VOWEL SIGN AA + {0x09BF, 0x09C0, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II + {0x09C1, 0x09C4, prExtend}, // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR + {0x09C7, 0x09C8, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI + {0x09CB, 0x09CC, prSpacingMark}, // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU + {0x09CD, 0x09CD, prExtend}, // Mn BENGALI SIGN VIRAMA + {0x09D7, 0x09D7, prExtend}, // Mc BENGALI AU LENGTH MARK + {0x09E2, 0x09E3, prExtend}, // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL + {0x09FE, 0x09FE, prExtend}, // Mn BENGALI SANDHI MARK + {0x0A01, 0x0A02, prExtend}, // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI + {0x0A03, 0x0A03, prSpacingMark}, // Mc GURMUKHI SIGN VISARGA + {0x0A3C, 0x0A3C, prExtend}, // Mn GURMUKHI SIGN NUKTA + {0x0A3E, 0x0A40, prSpacingMark}, // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II + {0x0A41, 0x0A42, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU + {0x0A47, 0x0A48, prExtend}, // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI + {0x0A4B, 0x0A4D, prExtend}, // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA + {0x0A51, 0x0A51, prExtend}, // Mn GURMUKHI SIGN UDAAT + {0x0A70, 0x0A71, prExtend}, // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK + {0x0A75, 0x0A75, prExtend}, // Mn GURMUKHI SIGN YAKASH + {0x0A81, 0x0A82, prExtend}, // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA + {0x0A83, 0x0A83, prSpacingMark}, // Mc GUJARATI SIGN VISARGA + {0x0ABC, 0x0ABC, prExtend}, // Mn GUJARATI SIGN NUKTA + {0x0ABE, 0x0AC0, prSpacingMark}, // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II + {0x0AC1, 0x0AC5, prExtend}, // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E + {0x0AC7, 0x0AC8, prExtend}, // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI + {0x0AC9, 0x0AC9, prSpacingMark}, // Mc GUJARATI VOWEL SIGN CANDRA O + {0x0ACB, 0x0ACC, prSpacingMark}, // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU + {0x0ACD, 0x0ACD, prExtend}, // Mn GUJARATI SIGN VIRAMA + {0x0AE2, 0x0AE3, prExtend}, // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL + {0x0AFA, 0x0AFF, prExtend}, // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE + {0x0B01, 0x0B01, prExtend}, // Mn ORIYA SIGN CANDRABINDU + {0x0B02, 0x0B03, prSpacingMark}, // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA + {0x0B3C, 0x0B3C, prExtend}, // Mn ORIYA SIGN NUKTA + {0x0B3E, 0x0B3E, prExtend}, // Mc ORIYA VOWEL SIGN AA + {0x0B3F, 0x0B3F, prExtend}, // Mn ORIYA VOWEL SIGN I + {0x0B40, 0x0B40, prSpacingMark}, // Mc ORIYA VOWEL SIGN II + {0x0B41, 0x0B44, prExtend}, // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR + {0x0B47, 0x0B48, prSpacingMark}, // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI + {0x0B4B, 0x0B4C, prSpacingMark}, // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU + {0x0B4D, 0x0B4D, prExtend}, // Mn ORIYA SIGN VIRAMA + {0x0B56, 0x0B56, prExtend}, // Mn ORIYA AI LENGTH MARK + {0x0B57, 0x0B57, prExtend}, // Mc ORIYA AU LENGTH MARK + {0x0B62, 0x0B63, prExtend}, // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL + {0x0B82, 0x0B82, prExtend}, // Mn TAMIL SIGN ANUSVARA + {0x0BBE, 0x0BBE, prExtend}, // Mc TAMIL VOWEL SIGN AA + {0x0BBF, 0x0BBF, prSpacingMark}, // Mc TAMIL VOWEL SIGN I + {0x0BC0, 0x0BC0, prExtend}, // Mn TAMIL VOWEL SIGN II + {0x0BC1, 0x0BC2, prSpacingMark}, // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU + {0x0BC6, 0x0BC8, prSpacingMark}, // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI + {0x0BCA, 0x0BCC, prSpacingMark}, // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU + {0x0BCD, 0x0BCD, prExtend}, // Mn TAMIL SIGN VIRAMA + {0x0BD7, 0x0BD7, prExtend}, // Mc TAMIL AU LENGTH MARK + {0x0C00, 0x0C00, prExtend}, // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE + {0x0C01, 0x0C03, prSpacingMark}, // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA + {0x0C04, 0x0C04, prExtend}, // Mn TELUGU SIGN COMBINING ANUSVARA ABOVE + {0x0C3E, 0x0C40, prExtend}, // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II + {0x0C41, 0x0C44, prSpacingMark}, // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR + {0x0C46, 0x0C48, prExtend}, // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI + {0x0C4A, 0x0C4D, prExtend}, // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA + {0x0C55, 0x0C56, prExtend}, // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK + {0x0C62, 0x0C63, prExtend}, // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL + {0x0C81, 0x0C81, prExtend}, // Mn KANNADA SIGN CANDRABINDU + {0x0C82, 0x0C83, prSpacingMark}, // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + {0x0CBC, 0x0CBC, prExtend}, // Mn KANNADA SIGN NUKTA + {0x0CBE, 0x0CBE, prSpacingMark}, // Mc KANNADA VOWEL SIGN AA + {0x0CBF, 0x0CBF, prExtend}, // Mn KANNADA VOWEL SIGN I + {0x0CC0, 0x0CC1, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U + {0x0CC2, 0x0CC2, prExtend}, // Mc KANNADA VOWEL SIGN UU + {0x0CC3, 0x0CC4, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR + {0x0CC6, 0x0CC6, prExtend}, // Mn KANNADA VOWEL SIGN E + {0x0CC7, 0x0CC8, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI + {0x0CCA, 0x0CCB, prSpacingMark}, // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO + {0x0CCC, 0x0CCD, prExtend}, // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA + {0x0CD5, 0x0CD6, prExtend}, // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK + {0x0CE2, 0x0CE3, prExtend}, // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL + {0x0D00, 0x0D01, prExtend}, // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU + {0x0D02, 0x0D03, prSpacingMark}, // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA + {0x0D3B, 0x0D3C, prExtend}, // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA + {0x0D3E, 0x0D3E, prExtend}, // Mc MALAYALAM VOWEL SIGN AA + {0x0D3F, 0x0D40, prSpacingMark}, // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II + {0x0D41, 0x0D44, prExtend}, // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR + {0x0D46, 0x0D48, prSpacingMark}, // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI + {0x0D4A, 0x0D4C, prSpacingMark}, // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + {0x0D4D, 0x0D4D, prExtend}, // Mn MALAYALAM SIGN VIRAMA + {0x0D4E, 0x0D4E, prPreprend}, // Lo MALAYALAM LETTER DOT REPH + {0x0D57, 0x0D57, prExtend}, // Mc MALAYALAM AU LENGTH MARK + {0x0D62, 0x0D63, prExtend}, // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL + {0x0D82, 0x0D83, prSpacingMark}, // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA + {0x0DCA, 0x0DCA, prExtend}, // Mn SINHALA SIGN AL-LAKUNA + {0x0DCF, 0x0DCF, prExtend}, // Mc SINHALA VOWEL SIGN AELA-PILLA + {0x0DD0, 0x0DD1, prSpacingMark}, // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA + {0x0DD2, 0x0DD4, prExtend}, // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA + {0x0DD6, 0x0DD6, prExtend}, // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA + {0x0DD8, 0x0DDE, prSpacingMark}, // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA + {0x0DDF, 0x0DDF, prExtend}, // Mc SINHALA VOWEL SIGN GAYANUKITTA + {0x0DF2, 0x0DF3, prSpacingMark}, // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA + {0x0E31, 0x0E31, prExtend}, // Mn THAI CHARACTER MAI HAN-AKAT + {0x0E33, 0x0E33, prSpacingMark}, // Lo THAI CHARACTER SARA AM + {0x0E34, 0x0E3A, prExtend}, // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU + {0x0E47, 0x0E4E, prExtend}, // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN + {0x0EB1, 0x0EB1, prExtend}, // Mn LAO VOWEL SIGN MAI KAN + {0x0EB3, 0x0EB3, prSpacingMark}, // Lo LAO VOWEL SIGN AM + {0x0EB4, 0x0EBC, prExtend}, // Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO + {0x0EC8, 0x0ECD, prExtend}, // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA + {0x0F18, 0x0F19, prExtend}, // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS + {0x0F35, 0x0F35, prExtend}, // Mn TIBETAN MARK NGAS BZUNG NYI ZLA + {0x0F37, 0x0F37, prExtend}, // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS + {0x0F39, 0x0F39, prExtend}, // Mn TIBETAN MARK TSA -PHRU + {0x0F3E, 0x0F3F, prSpacingMark}, // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES + {0x0F71, 0x0F7E, prExtend}, // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO + {0x0F7F, 0x0F7F, prSpacingMark}, // Mc TIBETAN SIGN RNAM BCAD + {0x0F80, 0x0F84, prExtend}, // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA + {0x0F86, 0x0F87, prExtend}, // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS + {0x0F8D, 0x0F97, prExtend}, // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA + {0x0F99, 0x0FBC, prExtend}, // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA + {0x0FC6, 0x0FC6, prExtend}, // Mn TIBETAN SYMBOL PADMA GDAN + {0x102D, 0x1030, prExtend}, // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU + {0x1031, 0x1031, prSpacingMark}, // Mc MYANMAR VOWEL SIGN E + {0x1032, 0x1037, prExtend}, // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW + {0x1039, 0x103A, prExtend}, // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT + {0x103B, 0x103C, prSpacingMark}, // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA + {0x103D, 0x103E, prExtend}, // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA + {0x1056, 0x1057, prSpacingMark}, // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR + {0x1058, 0x1059, prExtend}, // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL + {0x105E, 0x1060, prExtend}, // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA + {0x1071, 0x1074, prExtend}, // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE + {0x1082, 0x1082, prExtend}, // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA + {0x1084, 0x1084, prSpacingMark}, // Mc MYANMAR VOWEL SIGN SHAN E + {0x1085, 0x1086, prExtend}, // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y + {0x108D, 0x108D, prExtend}, // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE + {0x109D, 0x109D, prExtend}, // Mn MYANMAR VOWEL SIGN AITON AI + {0x1100, 0x115F, prL}, // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER + {0x1160, 0x11A7, prV}, // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE + {0x11A8, 0x11FF, prT}, // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN + {0x135D, 0x135F, prExtend}, // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK + {0x1712, 0x1714, prExtend}, // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA + {0x1732, 0x1734, prExtend}, // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD + {0x1752, 0x1753, prExtend}, // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U + {0x1772, 0x1773, prExtend}, // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U + {0x17B4, 0x17B5, prExtend}, // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA + {0x17B6, 0x17B6, prSpacingMark}, // Mc KHMER VOWEL SIGN AA + {0x17B7, 0x17BD, prExtend}, // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA + {0x17BE, 0x17C5, prSpacingMark}, // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU + {0x17C6, 0x17C6, prExtend}, // Mn KHMER SIGN NIKAHIT + {0x17C7, 0x17C8, prSpacingMark}, // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU + {0x17C9, 0x17D3, prExtend}, // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT + {0x17DD, 0x17DD, prExtend}, // Mn KHMER SIGN ATTHACAN + {0x180B, 0x180D, prExtend}, // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE + {0x180E, 0x180E, prControl}, // Cf MONGOLIAN VOWEL SEPARATOR + {0x1885, 0x1886, prExtend}, // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA + {0x18A9, 0x18A9, prExtend}, // Mn MONGOLIAN LETTER ALI GALI DAGALGA + {0x1920, 0x1922, prExtend}, // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U + {0x1923, 0x1926, prSpacingMark}, // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU + {0x1927, 0x1928, prExtend}, // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O + {0x1929, 0x192B, prSpacingMark}, // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA + {0x1930, 0x1931, prSpacingMark}, // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA + {0x1932, 0x1932, prExtend}, // Mn LIMBU SMALL LETTER ANUSVARA + {0x1933, 0x1938, prSpacingMark}, // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA + {0x1939, 0x193B, prExtend}, // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I + {0x1A17, 0x1A18, prExtend}, // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U + {0x1A19, 0x1A1A, prSpacingMark}, // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O + {0x1A1B, 0x1A1B, prExtend}, // Mn BUGINESE VOWEL SIGN AE + {0x1A55, 0x1A55, prSpacingMark}, // Mc TAI THAM CONSONANT SIGN MEDIAL RA + {0x1A56, 0x1A56, prExtend}, // Mn TAI THAM CONSONANT SIGN MEDIAL LA + {0x1A57, 0x1A57, prSpacingMark}, // Mc TAI THAM CONSONANT SIGN LA TANG LAI + {0x1A58, 0x1A5E, prExtend}, // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA + {0x1A60, 0x1A60, prExtend}, // Mn TAI THAM SIGN SAKOT + {0x1A62, 0x1A62, prExtend}, // Mn TAI THAM VOWEL SIGN MAI SAT + {0x1A65, 0x1A6C, prExtend}, // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW + {0x1A6D, 0x1A72, prSpacingMark}, // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI + {0x1A73, 0x1A7C, prExtend}, // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN + {0x1A7F, 0x1A7F, prExtend}, // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT + {0x1AB0, 0x1ABD, prExtend}, // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW + {0x1ABE, 0x1ABE, prExtend}, // Me COMBINING PARENTHESES OVERLAY + {0x1B00, 0x1B03, prExtend}, // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG + {0x1B04, 0x1B04, prSpacingMark}, // Mc BALINESE SIGN BISAH + {0x1B34, 0x1B34, prExtend}, // Mn BALINESE SIGN REREKAN + {0x1B35, 0x1B35, prExtend}, // Mc BALINESE VOWEL SIGN TEDUNG + {0x1B36, 0x1B3A, prExtend}, // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA + {0x1B3B, 0x1B3B, prSpacingMark}, // Mc BALINESE VOWEL SIGN RA REPA TEDUNG + {0x1B3C, 0x1B3C, prExtend}, // Mn BALINESE VOWEL SIGN LA LENGA + {0x1B3D, 0x1B41, prSpacingMark}, // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG + {0x1B42, 0x1B42, prExtend}, // Mn BALINESE VOWEL SIGN PEPET + {0x1B43, 0x1B44, prSpacingMark}, // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG + {0x1B6B, 0x1B73, prExtend}, // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG + {0x1B80, 0x1B81, prExtend}, // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR + {0x1B82, 0x1B82, prSpacingMark}, // Mc SUNDANESE SIGN PANGWISAD + {0x1BA1, 0x1BA1, prSpacingMark}, // Mc SUNDANESE CONSONANT SIGN PAMINGKAL + {0x1BA2, 0x1BA5, prExtend}, // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU + {0x1BA6, 0x1BA7, prSpacingMark}, // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG + {0x1BA8, 0x1BA9, prExtend}, // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG + {0x1BAA, 0x1BAA, prSpacingMark}, // Mc SUNDANESE SIGN PAMAAEH + {0x1BAB, 0x1BAD, prExtend}, // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA + {0x1BE6, 0x1BE6, prExtend}, // Mn BATAK SIGN TOMPI + {0x1BE7, 0x1BE7, prSpacingMark}, // Mc BATAK VOWEL SIGN E + {0x1BE8, 0x1BE9, prExtend}, // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE + {0x1BEA, 0x1BEC, prSpacingMark}, // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O + {0x1BED, 0x1BED, prExtend}, // Mn BATAK VOWEL SIGN KARO O + {0x1BEE, 0x1BEE, prSpacingMark}, // Mc BATAK VOWEL SIGN U + {0x1BEF, 0x1BF1, prExtend}, // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H + {0x1BF2, 0x1BF3, prSpacingMark}, // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN + {0x1C24, 0x1C2B, prSpacingMark}, // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU + {0x1C2C, 0x1C33, prExtend}, // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T + {0x1C34, 0x1C35, prSpacingMark}, // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG + {0x1C36, 0x1C37, prExtend}, // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA + {0x1CD0, 0x1CD2, prExtend}, // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA + {0x1CD4, 0x1CE0, prExtend}, // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + {0x1CE1, 0x1CE1, prSpacingMark}, // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA + {0x1CE2, 0x1CE8, prExtend}, // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL + {0x1CED, 0x1CED, prExtend}, // Mn VEDIC SIGN TIRYAK + {0x1CF4, 0x1CF4, prExtend}, // Mn VEDIC TONE CANDRA ABOVE + {0x1CF7, 0x1CF7, prSpacingMark}, // Mc VEDIC SIGN ATIKRAMA + {0x1CF8, 0x1CF9, prExtend}, // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE + {0x1DC0, 0x1DF9, prExtend}, // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW + {0x1DFB, 0x1DFF, prExtend}, // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + {0x200B, 0x200B, prControl}, // Cf ZERO WIDTH SPACE + {0x200C, 0x200C, prExtend}, // Cf ZERO WIDTH NON-JOINER + {0x200D, 0x200D, prZWJ}, // Cf ZERO WIDTH JOINER + {0x200E, 0x200F, prControl}, // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK + {0x2028, 0x2028, prControl}, // Zl LINE SEPARATOR + {0x2029, 0x2029, prControl}, // Zp PARAGRAPH SEPARATOR + {0x202A, 0x202E, prControl}, // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + {0x203C, 0x203C, prExtendedPictographic}, // 1.1 [1] (‼️) double exclamation mark + {0x2049, 0x2049, prExtendedPictographic}, // 3.0 [1] (⁉️) exclamation question mark + {0x2060, 0x2064, prControl}, // Cf [5] WORD JOINER..INVISIBLE PLUS + {0x2065, 0x2065, prControl}, // Cn + {0x2066, 0x206F, prControl}, // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES + {0x20D0, 0x20DC, prExtend}, // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE + {0x20DD, 0x20E0, prExtend}, // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH + {0x20E1, 0x20E1, prExtend}, // Mn COMBINING LEFT RIGHT ARROW ABOVE + {0x20E2, 0x20E4, prExtend}, // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE + {0x20E5, 0x20F0, prExtend}, // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE + {0x2122, 0x2122, prExtendedPictographic}, // 1.1 [1] (™️) trade mark + {0x2139, 0x2139, prExtendedPictographic}, // 3.0 [1] (ℹ️) information + {0x2194, 0x2199, prExtendedPictographic}, // 1.1 [6] (↔️..↙️) left-right arrow..down-left arrow + {0x21A9, 0x21AA, prExtendedPictographic}, // 1.1 [2] (↩️..↪️) right arrow curving left..left arrow curving right + {0x231A, 0x231B, prExtendedPictographic}, // 1.1 [2] (⌚..⌛) watch..hourglass done + {0x2328, 0x2328, prExtendedPictographic}, // 1.1 [1] (⌨️) keyboard + {0x2388, 0x2388, prExtendedPictographic}, // 3.0 [1] (⎈) HELM SYMBOL + {0x23CF, 0x23CF, prExtendedPictographic}, // 4.0 [1] (⏏️) eject button + {0x23E9, 0x23F3, prExtendedPictographic}, // 6.0 [11] (⏩..⏳) fast-forward button..hourglass not done + {0x23F8, 0x23FA, prExtendedPictographic}, // 7.0 [3] (⏸️..⏺️) pause button..record button + {0x24C2, 0x24C2, prExtendedPictographic}, // 1.1 [1] (Ⓜ️) circled M + {0x25AA, 0x25AB, prExtendedPictographic}, // 1.1 [2] (▪️..▫️) black small square..white small square + {0x25B6, 0x25B6, prExtendedPictographic}, // 1.1 [1] (▶️) play button + {0x25C0, 0x25C0, prExtendedPictographic}, // 1.1 [1] (◀️) reverse button + {0x25FB, 0x25FE, prExtendedPictographic}, // 3.2 [4] (◻️..◾) white medium square..black medium-small square + {0x2600, 0x2605, prExtendedPictographic}, // 1.1 [6] (☀️..★) sun..BLACK STAR + {0x2607, 0x2612, prExtendedPictographic}, // 1.1 [12] (☇..☒) LIGHTNING..BALLOT BOX WITH X + {0x2614, 0x2615, prExtendedPictographic}, // 4.0 [2] (☔..☕) umbrella with rain drops..hot beverage + {0x2616, 0x2617, prExtendedPictographic}, // 3.2 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE + {0x2618, 0x2618, prExtendedPictographic}, // 4.1 [1] (☘️) shamrock + {0x2619, 0x2619, prExtendedPictographic}, // 3.0 [1] (☙) REVERSED ROTATED FLORAL HEART BULLET + {0x261A, 0x266F, prExtendedPictographic}, // 1.1 [86] (☚..♯) BLACK LEFT POINTING INDEX..MUSIC SHARP SIGN + {0x2670, 0x2671, prExtendedPictographic}, // 3.0 [2] (♰..♱) WEST SYRIAC CROSS..EAST SYRIAC CROSS + {0x2672, 0x267D, prExtendedPictographic}, // 3.2 [12] (♲..♽) UNIVERSAL RECYCLING SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL + {0x267E, 0x267F, prExtendedPictographic}, // 4.1 [2] (♾️..♿) infinity..wheelchair symbol + {0x2680, 0x2685, prExtendedPictographic}, // 3.2 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6 + {0x2690, 0x2691, prExtendedPictographic}, // 4.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG + {0x2692, 0x269C, prExtendedPictographic}, // 4.1 [11] (⚒️..⚜️) hammer and pick..fleur-de-lis + {0x269D, 0x269D, prExtendedPictographic}, // 5.1 [1] (⚝) OUTLINED WHITE STAR + {0x269E, 0x269F, prExtendedPictographic}, // 5.2 [2] (⚞..⚟) THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT + {0x26A0, 0x26A1, prExtendedPictographic}, // 4.0 [2] (⚠️..⚡) warning..high voltage + {0x26A2, 0x26B1, prExtendedPictographic}, // 4.1 [16] (⚢..⚱️) DOUBLED FEMALE SIGN..funeral urn + {0x26B2, 0x26B2, prExtendedPictographic}, // 5.0 [1] (⚲) NEUTER + {0x26B3, 0x26BC, prExtendedPictographic}, // 5.1 [10] (⚳..⚼) CERES..SESQUIQUADRATE + {0x26BD, 0x26BF, prExtendedPictographic}, // 5.2 [3] (⚽..⚿) soccer ball..SQUARED KEY + {0x26C0, 0x26C3, prExtendedPictographic}, // 5.1 [4] (⛀..⛃) WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING + {0x26C4, 0x26CD, prExtendedPictographic}, // 5.2 [10] (⛄..⛍) snowman without snow..DISABLED CAR + {0x26CE, 0x26CE, prExtendedPictographic}, // 6.0 [1] (⛎) Ophiuchus + {0x26CF, 0x26E1, prExtendedPictographic}, // 5.2 [19] (⛏️..⛡) pick..RESTRICTED LEFT ENTRY-2 + {0x26E2, 0x26E2, prExtendedPictographic}, // 6.0 [1] (⛢) ASTRONOMICAL SYMBOL FOR URANUS + {0x26E3, 0x26E3, prExtendedPictographic}, // 5.2 [1] (⛣) HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE + {0x26E4, 0x26E7, prExtendedPictographic}, // 6.0 [4] (⛤..⛧) PENTAGRAM..INVERTED PENTAGRAM + {0x26E8, 0x26FF, prExtendedPictographic}, // 5.2 [24] (⛨..⛿) BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE + {0x2700, 0x2700, prExtendedPictographic}, // 7.0 [1] (✀) BLACK SAFETY SCISSORS + {0x2701, 0x2704, prExtendedPictographic}, // 1.1 [4] (✁..✄) UPPER BLADE SCISSORS..WHITE SCISSORS + {0x2705, 0x2705, prExtendedPictographic}, // 6.0 [1] (✅) check mark button + {0x2708, 0x2709, prExtendedPictographic}, // 1.1 [2] (✈️..✉️) airplane..envelope + {0x270A, 0x270B, prExtendedPictographic}, // 6.0 [2] (✊..✋) raised fist..raised hand + {0x270C, 0x2712, prExtendedPictographic}, // 1.1 [7] (✌️..✒️) victory hand..black nib + {0x2714, 0x2714, prExtendedPictographic}, // 1.1 [1] (✔️) check mark + {0x2716, 0x2716, prExtendedPictographic}, // 1.1 [1] (✖️) multiplication sign + {0x271D, 0x271D, prExtendedPictographic}, // 1.1 [1] (✝️) latin cross + {0x2721, 0x2721, prExtendedPictographic}, // 1.1 [1] (✡️) star of David + {0x2728, 0x2728, prExtendedPictographic}, // 6.0 [1] (✨) sparkles + {0x2733, 0x2734, prExtendedPictographic}, // 1.1 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star + {0x2744, 0x2744, prExtendedPictographic}, // 1.1 [1] (❄️) snowflake + {0x2747, 0x2747, prExtendedPictographic}, // 1.1 [1] (❇️) sparkle + {0x274C, 0x274C, prExtendedPictographic}, // 6.0 [1] (❌) cross mark + {0x274E, 0x274E, prExtendedPictographic}, // 6.0 [1] (❎) cross mark button + {0x2753, 0x2755, prExtendedPictographic}, // 6.0 [3] (❓..❕) question mark..white exclamation mark + {0x2757, 0x2757, prExtendedPictographic}, // 5.2 [1] (❗) exclamation mark + {0x2763, 0x2767, prExtendedPictographic}, // 1.1 [5] (❣️..❧) heart exclamation..ROTATED FLORAL HEART BULLET + {0x2795, 0x2797, prExtendedPictographic}, // 6.0 [3] (➕..➗) plus sign..division sign + {0x27A1, 0x27A1, prExtendedPictographic}, // 1.1 [1] (➡️) right arrow + {0x27B0, 0x27B0, prExtendedPictographic}, // 6.0 [1] (➰) curly loop + {0x27BF, 0x27BF, prExtendedPictographic}, // 6.0 [1] (➿) double curly loop + {0x2934, 0x2935, prExtendedPictographic}, // 3.2 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down + {0x2B05, 0x2B07, prExtendedPictographic}, // 4.0 [3] (⬅️..⬇️) left arrow..down arrow + {0x2B1B, 0x2B1C, prExtendedPictographic}, // 5.1 [2] (⬛..⬜) black large square..white large square + {0x2B50, 0x2B50, prExtendedPictographic}, // 5.1 [1] (⭐) star + {0x2B55, 0x2B55, prExtendedPictographic}, // 5.2 [1] (⭕) hollow red circle + {0x2CEF, 0x2CF1, prExtend}, // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS + {0x2D7F, 0x2D7F, prExtend}, // Mn TIFINAGH CONSONANT JOINER + {0x2DE0, 0x2DFF, prExtend}, // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS + {0x302A, 0x302D, prExtend}, // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK + {0x302E, 0x302F, prExtend}, // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK + {0x3030, 0x3030, prExtendedPictographic}, // 1.1 [1] (〰️) wavy dash + {0x303D, 0x303D, prExtendedPictographic}, // 3.2 [1] (〽️) part alternation mark + {0x3099, 0x309A, prExtend}, // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + {0x3297, 0x3297, prExtendedPictographic}, // 1.1 [1] (㊗️) Japanese “congratulations” button + {0x3299, 0x3299, prExtendedPictographic}, // 1.1 [1] (㊙️) Japanese “secret” button + {0xA66F, 0xA66F, prExtend}, // Mn COMBINING CYRILLIC VZMET + {0xA670, 0xA672, prExtend}, // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN + {0xA674, 0xA67D, prExtend}, // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK + {0xA69E, 0xA69F, prExtend}, // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E + {0xA6F0, 0xA6F1, prExtend}, // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS + {0xA802, 0xA802, prExtend}, // Mn SYLOTI NAGRI SIGN DVISVARA + {0xA806, 0xA806, prExtend}, // Mn SYLOTI NAGRI SIGN HASANTA + {0xA80B, 0xA80B, prExtend}, // Mn SYLOTI NAGRI SIGN ANUSVARA + {0xA823, 0xA824, prSpacingMark}, // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I + {0xA825, 0xA826, prExtend}, // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E + {0xA827, 0xA827, prSpacingMark}, // Mc SYLOTI NAGRI VOWEL SIGN OO + {0xA880, 0xA881, prSpacingMark}, // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + {0xA8B4, 0xA8C3, prSpacingMark}, // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU + {0xA8C4, 0xA8C5, prExtend}, // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + {0xA8E0, 0xA8F1, prExtend}, // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + {0xA8FF, 0xA8FF, prExtend}, // Mn DEVANAGARI VOWEL SIGN AY + {0xA926, 0xA92D, prExtend}, // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU + {0xA947, 0xA951, prExtend}, // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R + {0xA952, 0xA953, prSpacingMark}, // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA + {0xA960, 0xA97C, prL}, // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH + {0xA980, 0xA982, prExtend}, // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR + {0xA983, 0xA983, prSpacingMark}, // Mc JAVANESE SIGN WIGNYAN + {0xA9B3, 0xA9B3, prExtend}, // Mn JAVANESE SIGN CECAK TELU + {0xA9B4, 0xA9B5, prSpacingMark}, // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG + {0xA9B6, 0xA9B9, prExtend}, // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT + {0xA9BA, 0xA9BB, prSpacingMark}, // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE + {0xA9BC, 0xA9BD, prExtend}, // Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET + {0xA9BE, 0xA9C0, prSpacingMark}, // Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON + {0xA9E5, 0xA9E5, prExtend}, // Mn MYANMAR SIGN SHAN SAW + {0xAA29, 0xAA2E, prExtend}, // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE + {0xAA2F, 0xAA30, prSpacingMark}, // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI + {0xAA31, 0xAA32, prExtend}, // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE + {0xAA33, 0xAA34, prSpacingMark}, // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA + {0xAA35, 0xAA36, prExtend}, // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA + {0xAA43, 0xAA43, prExtend}, // Mn CHAM CONSONANT SIGN FINAL NG + {0xAA4C, 0xAA4C, prExtend}, // Mn CHAM CONSONANT SIGN FINAL M + {0xAA4D, 0xAA4D, prSpacingMark}, // Mc CHAM CONSONANT SIGN FINAL H + {0xAA7C, 0xAA7C, prExtend}, // Mn MYANMAR SIGN TAI LAING TONE-2 + {0xAAB0, 0xAAB0, prExtend}, // Mn TAI VIET MAI KANG + {0xAAB2, 0xAAB4, prExtend}, // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U + {0xAAB7, 0xAAB8, prExtend}, // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA + {0xAABE, 0xAABF, prExtend}, // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK + {0xAAC1, 0xAAC1, prExtend}, // Mn TAI VIET TONE MAI THO + {0xAAEB, 0xAAEB, prSpacingMark}, // Mc MEETEI MAYEK VOWEL SIGN II + {0xAAEC, 0xAAED, prExtend}, // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI + {0xAAEE, 0xAAEF, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU + {0xAAF5, 0xAAF5, prSpacingMark}, // Mc MEETEI MAYEK VOWEL SIGN VISARGA + {0xAAF6, 0xAAF6, prExtend}, // Mn MEETEI MAYEK VIRAMA + {0xABE3, 0xABE4, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP + {0xABE5, 0xABE5, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN ANAP + {0xABE6, 0xABE7, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP + {0xABE8, 0xABE8, prExtend}, // Mn MEETEI MAYEK VOWEL SIGN UNAP + {0xABE9, 0xABEA, prSpacingMark}, // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG + {0xABEC, 0xABEC, prSpacingMark}, // Mc MEETEI MAYEK LUM IYEK + {0xABED, 0xABED, prExtend}, // Mn MEETEI MAYEK APUN IYEK + {0xAC00, 0xAC00, prLV}, // Lo HANGUL SYLLABLE GA + {0xAC01, 0xAC1B, prLVT}, // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH + {0xAC1C, 0xAC1C, prLV}, // Lo HANGUL SYLLABLE GAE + {0xAC1D, 0xAC37, prLVT}, // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH + {0xAC38, 0xAC38, prLV}, // Lo HANGUL SYLLABLE GYA + {0xAC39, 0xAC53, prLVT}, // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH + {0xAC54, 0xAC54, prLV}, // Lo HANGUL SYLLABLE GYAE + {0xAC55, 0xAC6F, prLVT}, // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH + {0xAC70, 0xAC70, prLV}, // Lo HANGUL SYLLABLE GEO + {0xAC71, 0xAC8B, prLVT}, // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH + {0xAC8C, 0xAC8C, prLV}, // Lo HANGUL SYLLABLE GE + {0xAC8D, 0xACA7, prLVT}, // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH + {0xACA8, 0xACA8, prLV}, // Lo HANGUL SYLLABLE GYEO + {0xACA9, 0xACC3, prLVT}, // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH + {0xACC4, 0xACC4, prLV}, // Lo HANGUL SYLLABLE GYE + {0xACC5, 0xACDF, prLVT}, // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH + {0xACE0, 0xACE0, prLV}, // Lo HANGUL SYLLABLE GO + {0xACE1, 0xACFB, prLVT}, // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH + {0xACFC, 0xACFC, prLV}, // Lo HANGUL SYLLABLE GWA + {0xACFD, 0xAD17, prLVT}, // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH + {0xAD18, 0xAD18, prLV}, // Lo HANGUL SYLLABLE GWAE + {0xAD19, 0xAD33, prLVT}, // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH + {0xAD34, 0xAD34, prLV}, // Lo HANGUL SYLLABLE GOE + {0xAD35, 0xAD4F, prLVT}, // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH + {0xAD50, 0xAD50, prLV}, // Lo HANGUL SYLLABLE GYO + {0xAD51, 0xAD6B, prLVT}, // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH + {0xAD6C, 0xAD6C, prLV}, // Lo HANGUL SYLLABLE GU + {0xAD6D, 0xAD87, prLVT}, // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH + {0xAD88, 0xAD88, prLV}, // Lo HANGUL SYLLABLE GWEO + {0xAD89, 0xADA3, prLVT}, // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH + {0xADA4, 0xADA4, prLV}, // Lo HANGUL SYLLABLE GWE + {0xADA5, 0xADBF, prLVT}, // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH + {0xADC0, 0xADC0, prLV}, // Lo HANGUL SYLLABLE GWI + {0xADC1, 0xADDB, prLVT}, // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH + {0xADDC, 0xADDC, prLV}, // Lo HANGUL SYLLABLE GYU + {0xADDD, 0xADF7, prLVT}, // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH + {0xADF8, 0xADF8, prLV}, // Lo HANGUL SYLLABLE GEU + {0xADF9, 0xAE13, prLVT}, // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH + {0xAE14, 0xAE14, prLV}, // Lo HANGUL SYLLABLE GYI + {0xAE15, 0xAE2F, prLVT}, // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH + {0xAE30, 0xAE30, prLV}, // Lo HANGUL SYLLABLE GI + {0xAE31, 0xAE4B, prLVT}, // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH + {0xAE4C, 0xAE4C, prLV}, // Lo HANGUL SYLLABLE GGA + {0xAE4D, 0xAE67, prLVT}, // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH + {0xAE68, 0xAE68, prLV}, // Lo HANGUL SYLLABLE GGAE + {0xAE69, 0xAE83, prLVT}, // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH + {0xAE84, 0xAE84, prLV}, // Lo HANGUL SYLLABLE GGYA + {0xAE85, 0xAE9F, prLVT}, // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH + {0xAEA0, 0xAEA0, prLV}, // Lo HANGUL SYLLABLE GGYAE + {0xAEA1, 0xAEBB, prLVT}, // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH + {0xAEBC, 0xAEBC, prLV}, // Lo HANGUL SYLLABLE GGEO + {0xAEBD, 0xAED7, prLVT}, // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH + {0xAED8, 0xAED8, prLV}, // Lo HANGUL SYLLABLE GGE + {0xAED9, 0xAEF3, prLVT}, // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH + {0xAEF4, 0xAEF4, prLV}, // Lo HANGUL SYLLABLE GGYEO + {0xAEF5, 0xAF0F, prLVT}, // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH + {0xAF10, 0xAF10, prLV}, // Lo HANGUL SYLLABLE GGYE + {0xAF11, 0xAF2B, prLVT}, // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH + {0xAF2C, 0xAF2C, prLV}, // Lo HANGUL SYLLABLE GGO + {0xAF2D, 0xAF47, prLVT}, // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH + {0xAF48, 0xAF48, prLV}, // Lo HANGUL SYLLABLE GGWA + {0xAF49, 0xAF63, prLVT}, // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH + {0xAF64, 0xAF64, prLV}, // Lo HANGUL SYLLABLE GGWAE + {0xAF65, 0xAF7F, prLVT}, // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH + {0xAF80, 0xAF80, prLV}, // Lo HANGUL SYLLABLE GGOE + {0xAF81, 0xAF9B, prLVT}, // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH + {0xAF9C, 0xAF9C, prLV}, // Lo HANGUL SYLLABLE GGYO + {0xAF9D, 0xAFB7, prLVT}, // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH + {0xAFB8, 0xAFB8, prLV}, // Lo HANGUL SYLLABLE GGU + {0xAFB9, 0xAFD3, prLVT}, // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH + {0xAFD4, 0xAFD4, prLV}, // Lo HANGUL SYLLABLE GGWEO + {0xAFD5, 0xAFEF, prLVT}, // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH + {0xAFF0, 0xAFF0, prLV}, // Lo HANGUL SYLLABLE GGWE + {0xAFF1, 0xB00B, prLVT}, // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH + {0xB00C, 0xB00C, prLV}, // Lo HANGUL SYLLABLE GGWI + {0xB00D, 0xB027, prLVT}, // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH + {0xB028, 0xB028, prLV}, // Lo HANGUL SYLLABLE GGYU + {0xB029, 0xB043, prLVT}, // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH + {0xB044, 0xB044, prLV}, // Lo HANGUL SYLLABLE GGEU + {0xB045, 0xB05F, prLVT}, // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH + {0xB060, 0xB060, prLV}, // Lo HANGUL SYLLABLE GGYI + {0xB061, 0xB07B, prLVT}, // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH + {0xB07C, 0xB07C, prLV}, // Lo HANGUL SYLLABLE GGI + {0xB07D, 0xB097, prLVT}, // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH + {0xB098, 0xB098, prLV}, // Lo HANGUL SYLLABLE NA + {0xB099, 0xB0B3, prLVT}, // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH + {0xB0B4, 0xB0B4, prLV}, // Lo HANGUL SYLLABLE NAE + {0xB0B5, 0xB0CF, prLVT}, // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH + {0xB0D0, 0xB0D0, prLV}, // Lo HANGUL SYLLABLE NYA + {0xB0D1, 0xB0EB, prLVT}, // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH + {0xB0EC, 0xB0EC, prLV}, // Lo HANGUL SYLLABLE NYAE + {0xB0ED, 0xB107, prLVT}, // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH + {0xB108, 0xB108, prLV}, // Lo HANGUL SYLLABLE NEO + {0xB109, 0xB123, prLVT}, // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH + {0xB124, 0xB124, prLV}, // Lo HANGUL SYLLABLE NE + {0xB125, 0xB13F, prLVT}, // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH + {0xB140, 0xB140, prLV}, // Lo HANGUL SYLLABLE NYEO + {0xB141, 0xB15B, prLVT}, // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH + {0xB15C, 0xB15C, prLV}, // Lo HANGUL SYLLABLE NYE + {0xB15D, 0xB177, prLVT}, // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH + {0xB178, 0xB178, prLV}, // Lo HANGUL SYLLABLE NO + {0xB179, 0xB193, prLVT}, // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH + {0xB194, 0xB194, prLV}, // Lo HANGUL SYLLABLE NWA + {0xB195, 0xB1AF, prLVT}, // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH + {0xB1B0, 0xB1B0, prLV}, // Lo HANGUL SYLLABLE NWAE + {0xB1B1, 0xB1CB, prLVT}, // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH + {0xB1CC, 0xB1CC, prLV}, // Lo HANGUL SYLLABLE NOE + {0xB1CD, 0xB1E7, prLVT}, // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH + {0xB1E8, 0xB1E8, prLV}, // Lo HANGUL SYLLABLE NYO + {0xB1E9, 0xB203, prLVT}, // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH + {0xB204, 0xB204, prLV}, // Lo HANGUL SYLLABLE NU + {0xB205, 0xB21F, prLVT}, // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH + {0xB220, 0xB220, prLV}, // Lo HANGUL SYLLABLE NWEO + {0xB221, 0xB23B, prLVT}, // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH + {0xB23C, 0xB23C, prLV}, // Lo HANGUL SYLLABLE NWE + {0xB23D, 0xB257, prLVT}, // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH + {0xB258, 0xB258, prLV}, // Lo HANGUL SYLLABLE NWI + {0xB259, 0xB273, prLVT}, // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH + {0xB274, 0xB274, prLV}, // Lo HANGUL SYLLABLE NYU + {0xB275, 0xB28F, prLVT}, // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH + {0xB290, 0xB290, prLV}, // Lo HANGUL SYLLABLE NEU + {0xB291, 0xB2AB, prLVT}, // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH + {0xB2AC, 0xB2AC, prLV}, // Lo HANGUL SYLLABLE NYI + {0xB2AD, 0xB2C7, prLVT}, // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH + {0xB2C8, 0xB2C8, prLV}, // Lo HANGUL SYLLABLE NI + {0xB2C9, 0xB2E3, prLVT}, // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH + {0xB2E4, 0xB2E4, prLV}, // Lo HANGUL SYLLABLE DA + {0xB2E5, 0xB2FF, prLVT}, // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH + {0xB300, 0xB300, prLV}, // Lo HANGUL SYLLABLE DAE + {0xB301, 0xB31B, prLVT}, // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH + {0xB31C, 0xB31C, prLV}, // Lo HANGUL SYLLABLE DYA + {0xB31D, 0xB337, prLVT}, // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH + {0xB338, 0xB338, prLV}, // Lo HANGUL SYLLABLE DYAE + {0xB339, 0xB353, prLVT}, // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH + {0xB354, 0xB354, prLV}, // Lo HANGUL SYLLABLE DEO + {0xB355, 0xB36F, prLVT}, // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH + {0xB370, 0xB370, prLV}, // Lo HANGUL SYLLABLE DE + {0xB371, 0xB38B, prLVT}, // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH + {0xB38C, 0xB38C, prLV}, // Lo HANGUL SYLLABLE DYEO + {0xB38D, 0xB3A7, prLVT}, // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH + {0xB3A8, 0xB3A8, prLV}, // Lo HANGUL SYLLABLE DYE + {0xB3A9, 0xB3C3, prLVT}, // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH + {0xB3C4, 0xB3C4, prLV}, // Lo HANGUL SYLLABLE DO + {0xB3C5, 0xB3DF, prLVT}, // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH + {0xB3E0, 0xB3E0, prLV}, // Lo HANGUL SYLLABLE DWA + {0xB3E1, 0xB3FB, prLVT}, // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH + {0xB3FC, 0xB3FC, prLV}, // Lo HANGUL SYLLABLE DWAE + {0xB3FD, 0xB417, prLVT}, // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH + {0xB418, 0xB418, prLV}, // Lo HANGUL SYLLABLE DOE + {0xB419, 0xB433, prLVT}, // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH + {0xB434, 0xB434, prLV}, // Lo HANGUL SYLLABLE DYO + {0xB435, 0xB44F, prLVT}, // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH + {0xB450, 0xB450, prLV}, // Lo HANGUL SYLLABLE DU + {0xB451, 0xB46B, prLVT}, // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH + {0xB46C, 0xB46C, prLV}, // Lo HANGUL SYLLABLE DWEO + {0xB46D, 0xB487, prLVT}, // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH + {0xB488, 0xB488, prLV}, // Lo HANGUL SYLLABLE DWE + {0xB489, 0xB4A3, prLVT}, // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH + {0xB4A4, 0xB4A4, prLV}, // Lo HANGUL SYLLABLE DWI + {0xB4A5, 0xB4BF, prLVT}, // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH + {0xB4C0, 0xB4C0, prLV}, // Lo HANGUL SYLLABLE DYU + {0xB4C1, 0xB4DB, prLVT}, // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH + {0xB4DC, 0xB4DC, prLV}, // Lo HANGUL SYLLABLE DEU + {0xB4DD, 0xB4F7, prLVT}, // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH + {0xB4F8, 0xB4F8, prLV}, // Lo HANGUL SYLLABLE DYI + {0xB4F9, 0xB513, prLVT}, // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH + {0xB514, 0xB514, prLV}, // Lo HANGUL SYLLABLE DI + {0xB515, 0xB52F, prLVT}, // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH + {0xB530, 0xB530, prLV}, // Lo HANGUL SYLLABLE DDA + {0xB531, 0xB54B, prLVT}, // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH + {0xB54C, 0xB54C, prLV}, // Lo HANGUL SYLLABLE DDAE + {0xB54D, 0xB567, prLVT}, // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH + {0xB568, 0xB568, prLV}, // Lo HANGUL SYLLABLE DDYA + {0xB569, 0xB583, prLVT}, // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH + {0xB584, 0xB584, prLV}, // Lo HANGUL SYLLABLE DDYAE + {0xB585, 0xB59F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH + {0xB5A0, 0xB5A0, prLV}, // Lo HANGUL SYLLABLE DDEO + {0xB5A1, 0xB5BB, prLVT}, // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH + {0xB5BC, 0xB5BC, prLV}, // Lo HANGUL SYLLABLE DDE + {0xB5BD, 0xB5D7, prLVT}, // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH + {0xB5D8, 0xB5D8, prLV}, // Lo HANGUL SYLLABLE DDYEO + {0xB5D9, 0xB5F3, prLVT}, // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH + {0xB5F4, 0xB5F4, prLV}, // Lo HANGUL SYLLABLE DDYE + {0xB5F5, 0xB60F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH + {0xB610, 0xB610, prLV}, // Lo HANGUL SYLLABLE DDO + {0xB611, 0xB62B, prLVT}, // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH + {0xB62C, 0xB62C, prLV}, // Lo HANGUL SYLLABLE DDWA + {0xB62D, 0xB647, prLVT}, // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH + {0xB648, 0xB648, prLV}, // Lo HANGUL SYLLABLE DDWAE + {0xB649, 0xB663, prLVT}, // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH + {0xB664, 0xB664, prLV}, // Lo HANGUL SYLLABLE DDOE + {0xB665, 0xB67F, prLVT}, // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH + {0xB680, 0xB680, prLV}, // Lo HANGUL SYLLABLE DDYO + {0xB681, 0xB69B, prLVT}, // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH + {0xB69C, 0xB69C, prLV}, // Lo HANGUL SYLLABLE DDU + {0xB69D, 0xB6B7, prLVT}, // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH + {0xB6B8, 0xB6B8, prLV}, // Lo HANGUL SYLLABLE DDWEO + {0xB6B9, 0xB6D3, prLVT}, // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH + {0xB6D4, 0xB6D4, prLV}, // Lo HANGUL SYLLABLE DDWE + {0xB6D5, 0xB6EF, prLVT}, // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH + {0xB6F0, 0xB6F0, prLV}, // Lo HANGUL SYLLABLE DDWI + {0xB6F1, 0xB70B, prLVT}, // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH + {0xB70C, 0xB70C, prLV}, // Lo HANGUL SYLLABLE DDYU + {0xB70D, 0xB727, prLVT}, // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH + {0xB728, 0xB728, prLV}, // Lo HANGUL SYLLABLE DDEU + {0xB729, 0xB743, prLVT}, // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH + {0xB744, 0xB744, prLV}, // Lo HANGUL SYLLABLE DDYI + {0xB745, 0xB75F, prLVT}, // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH + {0xB760, 0xB760, prLV}, // Lo HANGUL SYLLABLE DDI + {0xB761, 0xB77B, prLVT}, // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH + {0xB77C, 0xB77C, prLV}, // Lo HANGUL SYLLABLE RA + {0xB77D, 0xB797, prLVT}, // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH + {0xB798, 0xB798, prLV}, // Lo HANGUL SYLLABLE RAE + {0xB799, 0xB7B3, prLVT}, // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH + {0xB7B4, 0xB7B4, prLV}, // Lo HANGUL SYLLABLE RYA + {0xB7B5, 0xB7CF, prLVT}, // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH + {0xB7D0, 0xB7D0, prLV}, // Lo HANGUL SYLLABLE RYAE + {0xB7D1, 0xB7EB, prLVT}, // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH + {0xB7EC, 0xB7EC, prLV}, // Lo HANGUL SYLLABLE REO + {0xB7ED, 0xB807, prLVT}, // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH + {0xB808, 0xB808, prLV}, // Lo HANGUL SYLLABLE RE + {0xB809, 0xB823, prLVT}, // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH + {0xB824, 0xB824, prLV}, // Lo HANGUL SYLLABLE RYEO + {0xB825, 0xB83F, prLVT}, // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH + {0xB840, 0xB840, prLV}, // Lo HANGUL SYLLABLE RYE + {0xB841, 0xB85B, prLVT}, // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH + {0xB85C, 0xB85C, prLV}, // Lo HANGUL SYLLABLE RO + {0xB85D, 0xB877, prLVT}, // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH + {0xB878, 0xB878, prLV}, // Lo HANGUL SYLLABLE RWA + {0xB879, 0xB893, prLVT}, // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH + {0xB894, 0xB894, prLV}, // Lo HANGUL SYLLABLE RWAE + {0xB895, 0xB8AF, prLVT}, // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH + {0xB8B0, 0xB8B0, prLV}, // Lo HANGUL SYLLABLE ROE + {0xB8B1, 0xB8CB, prLVT}, // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH + {0xB8CC, 0xB8CC, prLV}, // Lo HANGUL SYLLABLE RYO + {0xB8CD, 0xB8E7, prLVT}, // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH + {0xB8E8, 0xB8E8, prLV}, // Lo HANGUL SYLLABLE RU + {0xB8E9, 0xB903, prLVT}, // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH + {0xB904, 0xB904, prLV}, // Lo HANGUL SYLLABLE RWEO + {0xB905, 0xB91F, prLVT}, // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH + {0xB920, 0xB920, prLV}, // Lo HANGUL SYLLABLE RWE + {0xB921, 0xB93B, prLVT}, // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH + {0xB93C, 0xB93C, prLV}, // Lo HANGUL SYLLABLE RWI + {0xB93D, 0xB957, prLVT}, // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH + {0xB958, 0xB958, prLV}, // Lo HANGUL SYLLABLE RYU + {0xB959, 0xB973, prLVT}, // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH + {0xB974, 0xB974, prLV}, // Lo HANGUL SYLLABLE REU + {0xB975, 0xB98F, prLVT}, // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH + {0xB990, 0xB990, prLV}, // Lo HANGUL SYLLABLE RYI + {0xB991, 0xB9AB, prLVT}, // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH + {0xB9AC, 0xB9AC, prLV}, // Lo HANGUL SYLLABLE RI + {0xB9AD, 0xB9C7, prLVT}, // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH + {0xB9C8, 0xB9C8, prLV}, // Lo HANGUL SYLLABLE MA + {0xB9C9, 0xB9E3, prLVT}, // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH + {0xB9E4, 0xB9E4, prLV}, // Lo HANGUL SYLLABLE MAE + {0xB9E5, 0xB9FF, prLVT}, // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH + {0xBA00, 0xBA00, prLV}, // Lo HANGUL SYLLABLE MYA + {0xBA01, 0xBA1B, prLVT}, // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH + {0xBA1C, 0xBA1C, prLV}, // Lo HANGUL SYLLABLE MYAE + {0xBA1D, 0xBA37, prLVT}, // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH + {0xBA38, 0xBA38, prLV}, // Lo HANGUL SYLLABLE MEO + {0xBA39, 0xBA53, prLVT}, // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH + {0xBA54, 0xBA54, prLV}, // Lo HANGUL SYLLABLE ME + {0xBA55, 0xBA6F, prLVT}, // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH + {0xBA70, 0xBA70, prLV}, // Lo HANGUL SYLLABLE MYEO + {0xBA71, 0xBA8B, prLVT}, // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH + {0xBA8C, 0xBA8C, prLV}, // Lo HANGUL SYLLABLE MYE + {0xBA8D, 0xBAA7, prLVT}, // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH + {0xBAA8, 0xBAA8, prLV}, // Lo HANGUL SYLLABLE MO + {0xBAA9, 0xBAC3, prLVT}, // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH + {0xBAC4, 0xBAC4, prLV}, // Lo HANGUL SYLLABLE MWA + {0xBAC5, 0xBADF, prLVT}, // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH + {0xBAE0, 0xBAE0, prLV}, // Lo HANGUL SYLLABLE MWAE + {0xBAE1, 0xBAFB, prLVT}, // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH + {0xBAFC, 0xBAFC, prLV}, // Lo HANGUL SYLLABLE MOE + {0xBAFD, 0xBB17, prLVT}, // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH + {0xBB18, 0xBB18, prLV}, // Lo HANGUL SYLLABLE MYO + {0xBB19, 0xBB33, prLVT}, // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH + {0xBB34, 0xBB34, prLV}, // Lo HANGUL SYLLABLE MU + {0xBB35, 0xBB4F, prLVT}, // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH + {0xBB50, 0xBB50, prLV}, // Lo HANGUL SYLLABLE MWEO + {0xBB51, 0xBB6B, prLVT}, // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH + {0xBB6C, 0xBB6C, prLV}, // Lo HANGUL SYLLABLE MWE + {0xBB6D, 0xBB87, prLVT}, // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH + {0xBB88, 0xBB88, prLV}, // Lo HANGUL SYLLABLE MWI + {0xBB89, 0xBBA3, prLVT}, // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH + {0xBBA4, 0xBBA4, prLV}, // Lo HANGUL SYLLABLE MYU + {0xBBA5, 0xBBBF, prLVT}, // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH + {0xBBC0, 0xBBC0, prLV}, // Lo HANGUL SYLLABLE MEU + {0xBBC1, 0xBBDB, prLVT}, // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH + {0xBBDC, 0xBBDC, prLV}, // Lo HANGUL SYLLABLE MYI + {0xBBDD, 0xBBF7, prLVT}, // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH + {0xBBF8, 0xBBF8, prLV}, // Lo HANGUL SYLLABLE MI + {0xBBF9, 0xBC13, prLVT}, // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH + {0xBC14, 0xBC14, prLV}, // Lo HANGUL SYLLABLE BA + {0xBC15, 0xBC2F, prLVT}, // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH + {0xBC30, 0xBC30, prLV}, // Lo HANGUL SYLLABLE BAE + {0xBC31, 0xBC4B, prLVT}, // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH + {0xBC4C, 0xBC4C, prLV}, // Lo HANGUL SYLLABLE BYA + {0xBC4D, 0xBC67, prLVT}, // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH + {0xBC68, 0xBC68, prLV}, // Lo HANGUL SYLLABLE BYAE + {0xBC69, 0xBC83, prLVT}, // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH + {0xBC84, 0xBC84, prLV}, // Lo HANGUL SYLLABLE BEO + {0xBC85, 0xBC9F, prLVT}, // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH + {0xBCA0, 0xBCA0, prLV}, // Lo HANGUL SYLLABLE BE + {0xBCA1, 0xBCBB, prLVT}, // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH + {0xBCBC, 0xBCBC, prLV}, // Lo HANGUL SYLLABLE BYEO + {0xBCBD, 0xBCD7, prLVT}, // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH + {0xBCD8, 0xBCD8, prLV}, // Lo HANGUL SYLLABLE BYE + {0xBCD9, 0xBCF3, prLVT}, // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH + {0xBCF4, 0xBCF4, prLV}, // Lo HANGUL SYLLABLE BO + {0xBCF5, 0xBD0F, prLVT}, // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH + {0xBD10, 0xBD10, prLV}, // Lo HANGUL SYLLABLE BWA + {0xBD11, 0xBD2B, prLVT}, // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH + {0xBD2C, 0xBD2C, prLV}, // Lo HANGUL SYLLABLE BWAE + {0xBD2D, 0xBD47, prLVT}, // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH + {0xBD48, 0xBD48, prLV}, // Lo HANGUL SYLLABLE BOE + {0xBD49, 0xBD63, prLVT}, // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH + {0xBD64, 0xBD64, prLV}, // Lo HANGUL SYLLABLE BYO + {0xBD65, 0xBD7F, prLVT}, // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH + {0xBD80, 0xBD80, prLV}, // Lo HANGUL SYLLABLE BU + {0xBD81, 0xBD9B, prLVT}, // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH + {0xBD9C, 0xBD9C, prLV}, // Lo HANGUL SYLLABLE BWEO + {0xBD9D, 0xBDB7, prLVT}, // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH + {0xBDB8, 0xBDB8, prLV}, // Lo HANGUL SYLLABLE BWE + {0xBDB9, 0xBDD3, prLVT}, // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH + {0xBDD4, 0xBDD4, prLV}, // Lo HANGUL SYLLABLE BWI + {0xBDD5, 0xBDEF, prLVT}, // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH + {0xBDF0, 0xBDF0, prLV}, // Lo HANGUL SYLLABLE BYU + {0xBDF1, 0xBE0B, prLVT}, // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH + {0xBE0C, 0xBE0C, prLV}, // Lo HANGUL SYLLABLE BEU + {0xBE0D, 0xBE27, prLVT}, // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH + {0xBE28, 0xBE28, prLV}, // Lo HANGUL SYLLABLE BYI + {0xBE29, 0xBE43, prLVT}, // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH + {0xBE44, 0xBE44, prLV}, // Lo HANGUL SYLLABLE BI + {0xBE45, 0xBE5F, prLVT}, // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH + {0xBE60, 0xBE60, prLV}, // Lo HANGUL SYLLABLE BBA + {0xBE61, 0xBE7B, prLVT}, // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH + {0xBE7C, 0xBE7C, prLV}, // Lo HANGUL SYLLABLE BBAE + {0xBE7D, 0xBE97, prLVT}, // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH + {0xBE98, 0xBE98, prLV}, // Lo HANGUL SYLLABLE BBYA + {0xBE99, 0xBEB3, prLVT}, // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH + {0xBEB4, 0xBEB4, prLV}, // Lo HANGUL SYLLABLE BBYAE + {0xBEB5, 0xBECF, prLVT}, // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH + {0xBED0, 0xBED0, prLV}, // Lo HANGUL SYLLABLE BBEO + {0xBED1, 0xBEEB, prLVT}, // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH + {0xBEEC, 0xBEEC, prLV}, // Lo HANGUL SYLLABLE BBE + {0xBEED, 0xBF07, prLVT}, // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH + {0xBF08, 0xBF08, prLV}, // Lo HANGUL SYLLABLE BBYEO + {0xBF09, 0xBF23, prLVT}, // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH + {0xBF24, 0xBF24, prLV}, // Lo HANGUL SYLLABLE BBYE + {0xBF25, 0xBF3F, prLVT}, // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH + {0xBF40, 0xBF40, prLV}, // Lo HANGUL SYLLABLE BBO + {0xBF41, 0xBF5B, prLVT}, // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH + {0xBF5C, 0xBF5C, prLV}, // Lo HANGUL SYLLABLE BBWA + {0xBF5D, 0xBF77, prLVT}, // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH + {0xBF78, 0xBF78, prLV}, // Lo HANGUL SYLLABLE BBWAE + {0xBF79, 0xBF93, prLVT}, // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH + {0xBF94, 0xBF94, prLV}, // Lo HANGUL SYLLABLE BBOE + {0xBF95, 0xBFAF, prLVT}, // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH + {0xBFB0, 0xBFB0, prLV}, // Lo HANGUL SYLLABLE BBYO + {0xBFB1, 0xBFCB, prLVT}, // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH + {0xBFCC, 0xBFCC, prLV}, // Lo HANGUL SYLLABLE BBU + {0xBFCD, 0xBFE7, prLVT}, // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH + {0xBFE8, 0xBFE8, prLV}, // Lo HANGUL SYLLABLE BBWEO + {0xBFE9, 0xC003, prLVT}, // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH + {0xC004, 0xC004, prLV}, // Lo HANGUL SYLLABLE BBWE + {0xC005, 0xC01F, prLVT}, // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH + {0xC020, 0xC020, prLV}, // Lo HANGUL SYLLABLE BBWI + {0xC021, 0xC03B, prLVT}, // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH + {0xC03C, 0xC03C, prLV}, // Lo HANGUL SYLLABLE BBYU + {0xC03D, 0xC057, prLVT}, // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH + {0xC058, 0xC058, prLV}, // Lo HANGUL SYLLABLE BBEU + {0xC059, 0xC073, prLVT}, // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH + {0xC074, 0xC074, prLV}, // Lo HANGUL SYLLABLE BBYI + {0xC075, 0xC08F, prLVT}, // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH + {0xC090, 0xC090, prLV}, // Lo HANGUL SYLLABLE BBI + {0xC091, 0xC0AB, prLVT}, // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH + {0xC0AC, 0xC0AC, prLV}, // Lo HANGUL SYLLABLE SA + {0xC0AD, 0xC0C7, prLVT}, // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH + {0xC0C8, 0xC0C8, prLV}, // Lo HANGUL SYLLABLE SAE + {0xC0C9, 0xC0E3, prLVT}, // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH + {0xC0E4, 0xC0E4, prLV}, // Lo HANGUL SYLLABLE SYA + {0xC0E5, 0xC0FF, prLVT}, // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH + {0xC100, 0xC100, prLV}, // Lo HANGUL SYLLABLE SYAE + {0xC101, 0xC11B, prLVT}, // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH + {0xC11C, 0xC11C, prLV}, // Lo HANGUL SYLLABLE SEO + {0xC11D, 0xC137, prLVT}, // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH + {0xC138, 0xC138, prLV}, // Lo HANGUL SYLLABLE SE + {0xC139, 0xC153, prLVT}, // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH + {0xC154, 0xC154, prLV}, // Lo HANGUL SYLLABLE SYEO + {0xC155, 0xC16F, prLVT}, // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH + {0xC170, 0xC170, prLV}, // Lo HANGUL SYLLABLE SYE + {0xC171, 0xC18B, prLVT}, // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH + {0xC18C, 0xC18C, prLV}, // Lo HANGUL SYLLABLE SO + {0xC18D, 0xC1A7, prLVT}, // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH + {0xC1A8, 0xC1A8, prLV}, // Lo HANGUL SYLLABLE SWA + {0xC1A9, 0xC1C3, prLVT}, // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH + {0xC1C4, 0xC1C4, prLV}, // Lo HANGUL SYLLABLE SWAE + {0xC1C5, 0xC1DF, prLVT}, // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH + {0xC1E0, 0xC1E0, prLV}, // Lo HANGUL SYLLABLE SOE + {0xC1E1, 0xC1FB, prLVT}, // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH + {0xC1FC, 0xC1FC, prLV}, // Lo HANGUL SYLLABLE SYO + {0xC1FD, 0xC217, prLVT}, // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH + {0xC218, 0xC218, prLV}, // Lo HANGUL SYLLABLE SU + {0xC219, 0xC233, prLVT}, // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH + {0xC234, 0xC234, prLV}, // Lo HANGUL SYLLABLE SWEO + {0xC235, 0xC24F, prLVT}, // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH + {0xC250, 0xC250, prLV}, // Lo HANGUL SYLLABLE SWE + {0xC251, 0xC26B, prLVT}, // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH + {0xC26C, 0xC26C, prLV}, // Lo HANGUL SYLLABLE SWI + {0xC26D, 0xC287, prLVT}, // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH + {0xC288, 0xC288, prLV}, // Lo HANGUL SYLLABLE SYU + {0xC289, 0xC2A3, prLVT}, // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH + {0xC2A4, 0xC2A4, prLV}, // Lo HANGUL SYLLABLE SEU + {0xC2A5, 0xC2BF, prLVT}, // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH + {0xC2C0, 0xC2C0, prLV}, // Lo HANGUL SYLLABLE SYI + {0xC2C1, 0xC2DB, prLVT}, // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH + {0xC2DC, 0xC2DC, prLV}, // Lo HANGUL SYLLABLE SI + {0xC2DD, 0xC2F7, prLVT}, // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH + {0xC2F8, 0xC2F8, prLV}, // Lo HANGUL SYLLABLE SSA + {0xC2F9, 0xC313, prLVT}, // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH + {0xC314, 0xC314, prLV}, // Lo HANGUL SYLLABLE SSAE + {0xC315, 0xC32F, prLVT}, // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH + {0xC330, 0xC330, prLV}, // Lo HANGUL SYLLABLE SSYA + {0xC331, 0xC34B, prLVT}, // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH + {0xC34C, 0xC34C, prLV}, // Lo HANGUL SYLLABLE SSYAE + {0xC34D, 0xC367, prLVT}, // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH + {0xC368, 0xC368, prLV}, // Lo HANGUL SYLLABLE SSEO + {0xC369, 0xC383, prLVT}, // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH + {0xC384, 0xC384, prLV}, // Lo HANGUL SYLLABLE SSE + {0xC385, 0xC39F, prLVT}, // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH + {0xC3A0, 0xC3A0, prLV}, // Lo HANGUL SYLLABLE SSYEO + {0xC3A1, 0xC3BB, prLVT}, // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH + {0xC3BC, 0xC3BC, prLV}, // Lo HANGUL SYLLABLE SSYE + {0xC3BD, 0xC3D7, prLVT}, // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH + {0xC3D8, 0xC3D8, prLV}, // Lo HANGUL SYLLABLE SSO + {0xC3D9, 0xC3F3, prLVT}, // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH + {0xC3F4, 0xC3F4, prLV}, // Lo HANGUL SYLLABLE SSWA + {0xC3F5, 0xC40F, prLVT}, // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH + {0xC410, 0xC410, prLV}, // Lo HANGUL SYLLABLE SSWAE + {0xC411, 0xC42B, prLVT}, // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH + {0xC42C, 0xC42C, prLV}, // Lo HANGUL SYLLABLE SSOE + {0xC42D, 0xC447, prLVT}, // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH + {0xC448, 0xC448, prLV}, // Lo HANGUL SYLLABLE SSYO + {0xC449, 0xC463, prLVT}, // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH + {0xC464, 0xC464, prLV}, // Lo HANGUL SYLLABLE SSU + {0xC465, 0xC47F, prLVT}, // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH + {0xC480, 0xC480, prLV}, // Lo HANGUL SYLLABLE SSWEO + {0xC481, 0xC49B, prLVT}, // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH + {0xC49C, 0xC49C, prLV}, // Lo HANGUL SYLLABLE SSWE + {0xC49D, 0xC4B7, prLVT}, // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH + {0xC4B8, 0xC4B8, prLV}, // Lo HANGUL SYLLABLE SSWI + {0xC4B9, 0xC4D3, prLVT}, // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH + {0xC4D4, 0xC4D4, prLV}, // Lo HANGUL SYLLABLE SSYU + {0xC4D5, 0xC4EF, prLVT}, // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH + {0xC4F0, 0xC4F0, prLV}, // Lo HANGUL SYLLABLE SSEU + {0xC4F1, 0xC50B, prLVT}, // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH + {0xC50C, 0xC50C, prLV}, // Lo HANGUL SYLLABLE SSYI + {0xC50D, 0xC527, prLVT}, // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH + {0xC528, 0xC528, prLV}, // Lo HANGUL SYLLABLE SSI + {0xC529, 0xC543, prLVT}, // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH + {0xC544, 0xC544, prLV}, // Lo HANGUL SYLLABLE A + {0xC545, 0xC55F, prLVT}, // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH + {0xC560, 0xC560, prLV}, // Lo HANGUL SYLLABLE AE + {0xC561, 0xC57B, prLVT}, // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH + {0xC57C, 0xC57C, prLV}, // Lo HANGUL SYLLABLE YA + {0xC57D, 0xC597, prLVT}, // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH + {0xC598, 0xC598, prLV}, // Lo HANGUL SYLLABLE YAE + {0xC599, 0xC5B3, prLVT}, // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH + {0xC5B4, 0xC5B4, prLV}, // Lo HANGUL SYLLABLE EO + {0xC5B5, 0xC5CF, prLVT}, // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH + {0xC5D0, 0xC5D0, prLV}, // Lo HANGUL SYLLABLE E + {0xC5D1, 0xC5EB, prLVT}, // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH + {0xC5EC, 0xC5EC, prLV}, // Lo HANGUL SYLLABLE YEO + {0xC5ED, 0xC607, prLVT}, // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH + {0xC608, 0xC608, prLV}, // Lo HANGUL SYLLABLE YE + {0xC609, 0xC623, prLVT}, // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH + {0xC624, 0xC624, prLV}, // Lo HANGUL SYLLABLE O + {0xC625, 0xC63F, prLVT}, // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH + {0xC640, 0xC640, prLV}, // Lo HANGUL SYLLABLE WA + {0xC641, 0xC65B, prLVT}, // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH + {0xC65C, 0xC65C, prLV}, // Lo HANGUL SYLLABLE WAE + {0xC65D, 0xC677, prLVT}, // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH + {0xC678, 0xC678, prLV}, // Lo HANGUL SYLLABLE OE + {0xC679, 0xC693, prLVT}, // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH + {0xC694, 0xC694, prLV}, // Lo HANGUL SYLLABLE YO + {0xC695, 0xC6AF, prLVT}, // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH + {0xC6B0, 0xC6B0, prLV}, // Lo HANGUL SYLLABLE U + {0xC6B1, 0xC6CB, prLVT}, // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH + {0xC6CC, 0xC6CC, prLV}, // Lo HANGUL SYLLABLE WEO + {0xC6CD, 0xC6E7, prLVT}, // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH + {0xC6E8, 0xC6E8, prLV}, // Lo HANGUL SYLLABLE WE + {0xC6E9, 0xC703, prLVT}, // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH + {0xC704, 0xC704, prLV}, // Lo HANGUL SYLLABLE WI + {0xC705, 0xC71F, prLVT}, // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH + {0xC720, 0xC720, prLV}, // Lo HANGUL SYLLABLE YU + {0xC721, 0xC73B, prLVT}, // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH + {0xC73C, 0xC73C, prLV}, // Lo HANGUL SYLLABLE EU + {0xC73D, 0xC757, prLVT}, // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH + {0xC758, 0xC758, prLV}, // Lo HANGUL SYLLABLE YI + {0xC759, 0xC773, prLVT}, // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH + {0xC774, 0xC774, prLV}, // Lo HANGUL SYLLABLE I + {0xC775, 0xC78F, prLVT}, // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH + {0xC790, 0xC790, prLV}, // Lo HANGUL SYLLABLE JA + {0xC791, 0xC7AB, prLVT}, // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH + {0xC7AC, 0xC7AC, prLV}, // Lo HANGUL SYLLABLE JAE + {0xC7AD, 0xC7C7, prLVT}, // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH + {0xC7C8, 0xC7C8, prLV}, // Lo HANGUL SYLLABLE JYA + {0xC7C9, 0xC7E3, prLVT}, // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH + {0xC7E4, 0xC7E4, prLV}, // Lo HANGUL SYLLABLE JYAE + {0xC7E5, 0xC7FF, prLVT}, // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH + {0xC800, 0xC800, prLV}, // Lo HANGUL SYLLABLE JEO + {0xC801, 0xC81B, prLVT}, // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH + {0xC81C, 0xC81C, prLV}, // Lo HANGUL SYLLABLE JE + {0xC81D, 0xC837, prLVT}, // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH + {0xC838, 0xC838, prLV}, // Lo HANGUL SYLLABLE JYEO + {0xC839, 0xC853, prLVT}, // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH + {0xC854, 0xC854, prLV}, // Lo HANGUL SYLLABLE JYE + {0xC855, 0xC86F, prLVT}, // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH + {0xC870, 0xC870, prLV}, // Lo HANGUL SYLLABLE JO + {0xC871, 0xC88B, prLVT}, // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH + {0xC88C, 0xC88C, prLV}, // Lo HANGUL SYLLABLE JWA + {0xC88D, 0xC8A7, prLVT}, // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH + {0xC8A8, 0xC8A8, prLV}, // Lo HANGUL SYLLABLE JWAE + {0xC8A9, 0xC8C3, prLVT}, // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH + {0xC8C4, 0xC8C4, prLV}, // Lo HANGUL SYLLABLE JOE + {0xC8C5, 0xC8DF, prLVT}, // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH + {0xC8E0, 0xC8E0, prLV}, // Lo HANGUL SYLLABLE JYO + {0xC8E1, 0xC8FB, prLVT}, // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH + {0xC8FC, 0xC8FC, prLV}, // Lo HANGUL SYLLABLE JU + {0xC8FD, 0xC917, prLVT}, // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH + {0xC918, 0xC918, prLV}, // Lo HANGUL SYLLABLE JWEO + {0xC919, 0xC933, prLVT}, // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH + {0xC934, 0xC934, prLV}, // Lo HANGUL SYLLABLE JWE + {0xC935, 0xC94F, prLVT}, // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH + {0xC950, 0xC950, prLV}, // Lo HANGUL SYLLABLE JWI + {0xC951, 0xC96B, prLVT}, // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH + {0xC96C, 0xC96C, prLV}, // Lo HANGUL SYLLABLE JYU + {0xC96D, 0xC987, prLVT}, // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH + {0xC988, 0xC988, prLV}, // Lo HANGUL SYLLABLE JEU + {0xC989, 0xC9A3, prLVT}, // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH + {0xC9A4, 0xC9A4, prLV}, // Lo HANGUL SYLLABLE JYI + {0xC9A5, 0xC9BF, prLVT}, // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH + {0xC9C0, 0xC9C0, prLV}, // Lo HANGUL SYLLABLE JI + {0xC9C1, 0xC9DB, prLVT}, // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH + {0xC9DC, 0xC9DC, prLV}, // Lo HANGUL SYLLABLE JJA + {0xC9DD, 0xC9F7, prLVT}, // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH + {0xC9F8, 0xC9F8, prLV}, // Lo HANGUL SYLLABLE JJAE + {0xC9F9, 0xCA13, prLVT}, // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH + {0xCA14, 0xCA14, prLV}, // Lo HANGUL SYLLABLE JJYA + {0xCA15, 0xCA2F, prLVT}, // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH + {0xCA30, 0xCA30, prLV}, // Lo HANGUL SYLLABLE JJYAE + {0xCA31, 0xCA4B, prLVT}, // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH + {0xCA4C, 0xCA4C, prLV}, // Lo HANGUL SYLLABLE JJEO + {0xCA4D, 0xCA67, prLVT}, // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH + {0xCA68, 0xCA68, prLV}, // Lo HANGUL SYLLABLE JJE + {0xCA69, 0xCA83, prLVT}, // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH + {0xCA84, 0xCA84, prLV}, // Lo HANGUL SYLLABLE JJYEO + {0xCA85, 0xCA9F, prLVT}, // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH + {0xCAA0, 0xCAA0, prLV}, // Lo HANGUL SYLLABLE JJYE + {0xCAA1, 0xCABB, prLVT}, // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH + {0xCABC, 0xCABC, prLV}, // Lo HANGUL SYLLABLE JJO + {0xCABD, 0xCAD7, prLVT}, // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH + {0xCAD8, 0xCAD8, prLV}, // Lo HANGUL SYLLABLE JJWA + {0xCAD9, 0xCAF3, prLVT}, // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH + {0xCAF4, 0xCAF4, prLV}, // Lo HANGUL SYLLABLE JJWAE + {0xCAF5, 0xCB0F, prLVT}, // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH + {0xCB10, 0xCB10, prLV}, // Lo HANGUL SYLLABLE JJOE + {0xCB11, 0xCB2B, prLVT}, // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH + {0xCB2C, 0xCB2C, prLV}, // Lo HANGUL SYLLABLE JJYO + {0xCB2D, 0xCB47, prLVT}, // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH + {0xCB48, 0xCB48, prLV}, // Lo HANGUL SYLLABLE JJU + {0xCB49, 0xCB63, prLVT}, // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH + {0xCB64, 0xCB64, prLV}, // Lo HANGUL SYLLABLE JJWEO + {0xCB65, 0xCB7F, prLVT}, // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH + {0xCB80, 0xCB80, prLV}, // Lo HANGUL SYLLABLE JJWE + {0xCB81, 0xCB9B, prLVT}, // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH + {0xCB9C, 0xCB9C, prLV}, // Lo HANGUL SYLLABLE JJWI + {0xCB9D, 0xCBB7, prLVT}, // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH + {0xCBB8, 0xCBB8, prLV}, // Lo HANGUL SYLLABLE JJYU + {0xCBB9, 0xCBD3, prLVT}, // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH + {0xCBD4, 0xCBD4, prLV}, // Lo HANGUL SYLLABLE JJEU + {0xCBD5, 0xCBEF, prLVT}, // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH + {0xCBF0, 0xCBF0, prLV}, // Lo HANGUL SYLLABLE JJYI + {0xCBF1, 0xCC0B, prLVT}, // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH + {0xCC0C, 0xCC0C, prLV}, // Lo HANGUL SYLLABLE JJI + {0xCC0D, 0xCC27, prLVT}, // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH + {0xCC28, 0xCC28, prLV}, // Lo HANGUL SYLLABLE CA + {0xCC29, 0xCC43, prLVT}, // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH + {0xCC44, 0xCC44, prLV}, // Lo HANGUL SYLLABLE CAE + {0xCC45, 0xCC5F, prLVT}, // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH + {0xCC60, 0xCC60, prLV}, // Lo HANGUL SYLLABLE CYA + {0xCC61, 0xCC7B, prLVT}, // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH + {0xCC7C, 0xCC7C, prLV}, // Lo HANGUL SYLLABLE CYAE + {0xCC7D, 0xCC97, prLVT}, // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH + {0xCC98, 0xCC98, prLV}, // Lo HANGUL SYLLABLE CEO + {0xCC99, 0xCCB3, prLVT}, // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH + {0xCCB4, 0xCCB4, prLV}, // Lo HANGUL SYLLABLE CE + {0xCCB5, 0xCCCF, prLVT}, // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH + {0xCCD0, 0xCCD0, prLV}, // Lo HANGUL SYLLABLE CYEO + {0xCCD1, 0xCCEB, prLVT}, // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH + {0xCCEC, 0xCCEC, prLV}, // Lo HANGUL SYLLABLE CYE + {0xCCED, 0xCD07, prLVT}, // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH + {0xCD08, 0xCD08, prLV}, // Lo HANGUL SYLLABLE CO + {0xCD09, 0xCD23, prLVT}, // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH + {0xCD24, 0xCD24, prLV}, // Lo HANGUL SYLLABLE CWA + {0xCD25, 0xCD3F, prLVT}, // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH + {0xCD40, 0xCD40, prLV}, // Lo HANGUL SYLLABLE CWAE + {0xCD41, 0xCD5B, prLVT}, // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH + {0xCD5C, 0xCD5C, prLV}, // Lo HANGUL SYLLABLE COE + {0xCD5D, 0xCD77, prLVT}, // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH + {0xCD78, 0xCD78, prLV}, // Lo HANGUL SYLLABLE CYO + {0xCD79, 0xCD93, prLVT}, // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH + {0xCD94, 0xCD94, prLV}, // Lo HANGUL SYLLABLE CU + {0xCD95, 0xCDAF, prLVT}, // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH + {0xCDB0, 0xCDB0, prLV}, // Lo HANGUL SYLLABLE CWEO + {0xCDB1, 0xCDCB, prLVT}, // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH + {0xCDCC, 0xCDCC, prLV}, // Lo HANGUL SYLLABLE CWE + {0xCDCD, 0xCDE7, prLVT}, // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH + {0xCDE8, 0xCDE8, prLV}, // Lo HANGUL SYLLABLE CWI + {0xCDE9, 0xCE03, prLVT}, // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH + {0xCE04, 0xCE04, prLV}, // Lo HANGUL SYLLABLE CYU + {0xCE05, 0xCE1F, prLVT}, // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH + {0xCE20, 0xCE20, prLV}, // Lo HANGUL SYLLABLE CEU + {0xCE21, 0xCE3B, prLVT}, // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH + {0xCE3C, 0xCE3C, prLV}, // Lo HANGUL SYLLABLE CYI + {0xCE3D, 0xCE57, prLVT}, // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH + {0xCE58, 0xCE58, prLV}, // Lo HANGUL SYLLABLE CI + {0xCE59, 0xCE73, prLVT}, // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH + {0xCE74, 0xCE74, prLV}, // Lo HANGUL SYLLABLE KA + {0xCE75, 0xCE8F, prLVT}, // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH + {0xCE90, 0xCE90, prLV}, // Lo HANGUL SYLLABLE KAE + {0xCE91, 0xCEAB, prLVT}, // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH + {0xCEAC, 0xCEAC, prLV}, // Lo HANGUL SYLLABLE KYA + {0xCEAD, 0xCEC7, prLVT}, // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH + {0xCEC8, 0xCEC8, prLV}, // Lo HANGUL SYLLABLE KYAE + {0xCEC9, 0xCEE3, prLVT}, // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH + {0xCEE4, 0xCEE4, prLV}, // Lo HANGUL SYLLABLE KEO + {0xCEE5, 0xCEFF, prLVT}, // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH + {0xCF00, 0xCF00, prLV}, // Lo HANGUL SYLLABLE KE + {0xCF01, 0xCF1B, prLVT}, // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH + {0xCF1C, 0xCF1C, prLV}, // Lo HANGUL SYLLABLE KYEO + {0xCF1D, 0xCF37, prLVT}, // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH + {0xCF38, 0xCF38, prLV}, // Lo HANGUL SYLLABLE KYE + {0xCF39, 0xCF53, prLVT}, // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH + {0xCF54, 0xCF54, prLV}, // Lo HANGUL SYLLABLE KO + {0xCF55, 0xCF6F, prLVT}, // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH + {0xCF70, 0xCF70, prLV}, // Lo HANGUL SYLLABLE KWA + {0xCF71, 0xCF8B, prLVT}, // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH + {0xCF8C, 0xCF8C, prLV}, // Lo HANGUL SYLLABLE KWAE + {0xCF8D, 0xCFA7, prLVT}, // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH + {0xCFA8, 0xCFA8, prLV}, // Lo HANGUL SYLLABLE KOE + {0xCFA9, 0xCFC3, prLVT}, // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH + {0xCFC4, 0xCFC4, prLV}, // Lo HANGUL SYLLABLE KYO + {0xCFC5, 0xCFDF, prLVT}, // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH + {0xCFE0, 0xCFE0, prLV}, // Lo HANGUL SYLLABLE KU + {0xCFE1, 0xCFFB, prLVT}, // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH + {0xCFFC, 0xCFFC, prLV}, // Lo HANGUL SYLLABLE KWEO + {0xCFFD, 0xD017, prLVT}, // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH + {0xD018, 0xD018, prLV}, // Lo HANGUL SYLLABLE KWE + {0xD019, 0xD033, prLVT}, // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH + {0xD034, 0xD034, prLV}, // Lo HANGUL SYLLABLE KWI + {0xD035, 0xD04F, prLVT}, // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH + {0xD050, 0xD050, prLV}, // Lo HANGUL SYLLABLE KYU + {0xD051, 0xD06B, prLVT}, // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH + {0xD06C, 0xD06C, prLV}, // Lo HANGUL SYLLABLE KEU + {0xD06D, 0xD087, prLVT}, // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH + {0xD088, 0xD088, prLV}, // Lo HANGUL SYLLABLE KYI + {0xD089, 0xD0A3, prLVT}, // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH + {0xD0A4, 0xD0A4, prLV}, // Lo HANGUL SYLLABLE KI + {0xD0A5, 0xD0BF, prLVT}, // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH + {0xD0C0, 0xD0C0, prLV}, // Lo HANGUL SYLLABLE TA + {0xD0C1, 0xD0DB, prLVT}, // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH + {0xD0DC, 0xD0DC, prLV}, // Lo HANGUL SYLLABLE TAE + {0xD0DD, 0xD0F7, prLVT}, // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH + {0xD0F8, 0xD0F8, prLV}, // Lo HANGUL SYLLABLE TYA + {0xD0F9, 0xD113, prLVT}, // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH + {0xD114, 0xD114, prLV}, // Lo HANGUL SYLLABLE TYAE + {0xD115, 0xD12F, prLVT}, // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH + {0xD130, 0xD130, prLV}, // Lo HANGUL SYLLABLE TEO + {0xD131, 0xD14B, prLVT}, // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH + {0xD14C, 0xD14C, prLV}, // Lo HANGUL SYLLABLE TE + {0xD14D, 0xD167, prLVT}, // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH + {0xD168, 0xD168, prLV}, // Lo HANGUL SYLLABLE TYEO + {0xD169, 0xD183, prLVT}, // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH + {0xD184, 0xD184, prLV}, // Lo HANGUL SYLLABLE TYE + {0xD185, 0xD19F, prLVT}, // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH + {0xD1A0, 0xD1A0, prLV}, // Lo HANGUL SYLLABLE TO + {0xD1A1, 0xD1BB, prLVT}, // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH + {0xD1BC, 0xD1BC, prLV}, // Lo HANGUL SYLLABLE TWA + {0xD1BD, 0xD1D7, prLVT}, // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH + {0xD1D8, 0xD1D8, prLV}, // Lo HANGUL SYLLABLE TWAE + {0xD1D9, 0xD1F3, prLVT}, // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH + {0xD1F4, 0xD1F4, prLV}, // Lo HANGUL SYLLABLE TOE + {0xD1F5, 0xD20F, prLVT}, // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH + {0xD210, 0xD210, prLV}, // Lo HANGUL SYLLABLE TYO + {0xD211, 0xD22B, prLVT}, // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH + {0xD22C, 0xD22C, prLV}, // Lo HANGUL SYLLABLE TU + {0xD22D, 0xD247, prLVT}, // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH + {0xD248, 0xD248, prLV}, // Lo HANGUL SYLLABLE TWEO + {0xD249, 0xD263, prLVT}, // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH + {0xD264, 0xD264, prLV}, // Lo HANGUL SYLLABLE TWE + {0xD265, 0xD27F, prLVT}, // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH + {0xD280, 0xD280, prLV}, // Lo HANGUL SYLLABLE TWI + {0xD281, 0xD29B, prLVT}, // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH + {0xD29C, 0xD29C, prLV}, // Lo HANGUL SYLLABLE TYU + {0xD29D, 0xD2B7, prLVT}, // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH + {0xD2B8, 0xD2B8, prLV}, // Lo HANGUL SYLLABLE TEU + {0xD2B9, 0xD2D3, prLVT}, // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH + {0xD2D4, 0xD2D4, prLV}, // Lo HANGUL SYLLABLE TYI + {0xD2D5, 0xD2EF, prLVT}, // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH + {0xD2F0, 0xD2F0, prLV}, // Lo HANGUL SYLLABLE TI + {0xD2F1, 0xD30B, prLVT}, // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH + {0xD30C, 0xD30C, prLV}, // Lo HANGUL SYLLABLE PA + {0xD30D, 0xD327, prLVT}, // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH + {0xD328, 0xD328, prLV}, // Lo HANGUL SYLLABLE PAE + {0xD329, 0xD343, prLVT}, // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH + {0xD344, 0xD344, prLV}, // Lo HANGUL SYLLABLE PYA + {0xD345, 0xD35F, prLVT}, // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH + {0xD360, 0xD360, prLV}, // Lo HANGUL SYLLABLE PYAE + {0xD361, 0xD37B, prLVT}, // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH + {0xD37C, 0xD37C, prLV}, // Lo HANGUL SYLLABLE PEO + {0xD37D, 0xD397, prLVT}, // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH + {0xD398, 0xD398, prLV}, // Lo HANGUL SYLLABLE PE + {0xD399, 0xD3B3, prLVT}, // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH + {0xD3B4, 0xD3B4, prLV}, // Lo HANGUL SYLLABLE PYEO + {0xD3B5, 0xD3CF, prLVT}, // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH + {0xD3D0, 0xD3D0, prLV}, // Lo HANGUL SYLLABLE PYE + {0xD3D1, 0xD3EB, prLVT}, // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH + {0xD3EC, 0xD3EC, prLV}, // Lo HANGUL SYLLABLE PO + {0xD3ED, 0xD407, prLVT}, // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH + {0xD408, 0xD408, prLV}, // Lo HANGUL SYLLABLE PWA + {0xD409, 0xD423, prLVT}, // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH + {0xD424, 0xD424, prLV}, // Lo HANGUL SYLLABLE PWAE + {0xD425, 0xD43F, prLVT}, // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH + {0xD440, 0xD440, prLV}, // Lo HANGUL SYLLABLE POE + {0xD441, 0xD45B, prLVT}, // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH + {0xD45C, 0xD45C, prLV}, // Lo HANGUL SYLLABLE PYO + {0xD45D, 0xD477, prLVT}, // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH + {0xD478, 0xD478, prLV}, // Lo HANGUL SYLLABLE PU + {0xD479, 0xD493, prLVT}, // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH + {0xD494, 0xD494, prLV}, // Lo HANGUL SYLLABLE PWEO + {0xD495, 0xD4AF, prLVT}, // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH + {0xD4B0, 0xD4B0, prLV}, // Lo HANGUL SYLLABLE PWE + {0xD4B1, 0xD4CB, prLVT}, // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH + {0xD4CC, 0xD4CC, prLV}, // Lo HANGUL SYLLABLE PWI + {0xD4CD, 0xD4E7, prLVT}, // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH + {0xD4E8, 0xD4E8, prLV}, // Lo HANGUL SYLLABLE PYU + {0xD4E9, 0xD503, prLVT}, // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH + {0xD504, 0xD504, prLV}, // Lo HANGUL SYLLABLE PEU + {0xD505, 0xD51F, prLVT}, // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH + {0xD520, 0xD520, prLV}, // Lo HANGUL SYLLABLE PYI + {0xD521, 0xD53B, prLVT}, // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH + {0xD53C, 0xD53C, prLV}, // Lo HANGUL SYLLABLE PI + {0xD53D, 0xD557, prLVT}, // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH + {0xD558, 0xD558, prLV}, // Lo HANGUL SYLLABLE HA + {0xD559, 0xD573, prLVT}, // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH + {0xD574, 0xD574, prLV}, // Lo HANGUL SYLLABLE HAE + {0xD575, 0xD58F, prLVT}, // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH + {0xD590, 0xD590, prLV}, // Lo HANGUL SYLLABLE HYA + {0xD591, 0xD5AB, prLVT}, // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH + {0xD5AC, 0xD5AC, prLV}, // Lo HANGUL SYLLABLE HYAE + {0xD5AD, 0xD5C7, prLVT}, // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH + {0xD5C8, 0xD5C8, prLV}, // Lo HANGUL SYLLABLE HEO + {0xD5C9, 0xD5E3, prLVT}, // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH + {0xD5E4, 0xD5E4, prLV}, // Lo HANGUL SYLLABLE HE + {0xD5E5, 0xD5FF, prLVT}, // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH + {0xD600, 0xD600, prLV}, // Lo HANGUL SYLLABLE HYEO + {0xD601, 0xD61B, prLVT}, // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH + {0xD61C, 0xD61C, prLV}, // Lo HANGUL SYLLABLE HYE + {0xD61D, 0xD637, prLVT}, // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH + {0xD638, 0xD638, prLV}, // Lo HANGUL SYLLABLE HO + {0xD639, 0xD653, prLVT}, // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH + {0xD654, 0xD654, prLV}, // Lo HANGUL SYLLABLE HWA + {0xD655, 0xD66F, prLVT}, // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH + {0xD670, 0xD670, prLV}, // Lo HANGUL SYLLABLE HWAE + {0xD671, 0xD68B, prLVT}, // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH + {0xD68C, 0xD68C, prLV}, // Lo HANGUL SYLLABLE HOE + {0xD68D, 0xD6A7, prLVT}, // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH + {0xD6A8, 0xD6A8, prLV}, // Lo HANGUL SYLLABLE HYO + {0xD6A9, 0xD6C3, prLVT}, // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH + {0xD6C4, 0xD6C4, prLV}, // Lo HANGUL SYLLABLE HU + {0xD6C5, 0xD6DF, prLVT}, // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH + {0xD6E0, 0xD6E0, prLV}, // Lo HANGUL SYLLABLE HWEO + {0xD6E1, 0xD6FB, prLVT}, // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH + {0xD6FC, 0xD6FC, prLV}, // Lo HANGUL SYLLABLE HWE + {0xD6FD, 0xD717, prLVT}, // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH + {0xD718, 0xD718, prLV}, // Lo HANGUL SYLLABLE HWI + {0xD719, 0xD733, prLVT}, // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH + {0xD734, 0xD734, prLV}, // Lo HANGUL SYLLABLE HYU + {0xD735, 0xD74F, prLVT}, // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH + {0xD750, 0xD750, prLV}, // Lo HANGUL SYLLABLE HEU + {0xD751, 0xD76B, prLVT}, // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH + {0xD76C, 0xD76C, prLV}, // Lo HANGUL SYLLABLE HYI + {0xD76D, 0xD787, prLVT}, // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH + {0xD788, 0xD788, prLV}, // Lo HANGUL SYLLABLE HI + {0xD789, 0xD7A3, prLVT}, // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH + {0xD7B0, 0xD7C6, prV}, // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E + {0xD7CB, 0xD7FB, prT}, // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH + {0xFB1E, 0xFB1E, prExtend}, // Mn HEBREW POINT JUDEO-SPANISH VARIKA + {0xFE00, 0xFE0F, prExtend}, // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 + {0xFE20, 0xFE2F, prExtend}, // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF + {0xFEFF, 0xFEFF, prControl}, // Cf ZERO WIDTH NO-BREAK SPACE + {0xFF9E, 0xFF9F, prExtend}, // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK + {0xFFF0, 0xFFF8, prControl}, // Cn [9] .. + {0xFFF9, 0xFFFB, prControl}, // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR + {0x101FD, 0x101FD, prExtend}, // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE + {0x102E0, 0x102E0, prExtend}, // Mn COPTIC EPACT THOUSANDS MARK + {0x10376, 0x1037A, prExtend}, // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII + {0x10A01, 0x10A03, prExtend}, // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R + {0x10A05, 0x10A06, prExtend}, // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O + {0x10A0C, 0x10A0F, prExtend}, // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA + {0x10A38, 0x10A3A, prExtend}, // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW + {0x10A3F, 0x10A3F, prExtend}, // Mn KHAROSHTHI VIRAMA + {0x10AE5, 0x10AE6, prExtend}, // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW + {0x10D24, 0x10D27, prExtend}, // Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI + {0x10F46, 0x10F50, prExtend}, // Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW + {0x11000, 0x11000, prSpacingMark}, // Mc BRAHMI SIGN CANDRABINDU + {0x11001, 0x11001, prExtend}, // Mn BRAHMI SIGN ANUSVARA + {0x11002, 0x11002, prSpacingMark}, // Mc BRAHMI SIGN VISARGA + {0x11038, 0x11046, prExtend}, // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA + {0x1107F, 0x11081, prExtend}, // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA + {0x11082, 0x11082, prSpacingMark}, // Mc KAITHI SIGN VISARGA + {0x110B0, 0x110B2, prSpacingMark}, // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II + {0x110B3, 0x110B6, prExtend}, // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI + {0x110B7, 0x110B8, prSpacingMark}, // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU + {0x110B9, 0x110BA, prExtend}, // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA + {0x110BD, 0x110BD, prPreprend}, // Cf KAITHI NUMBER SIGN + {0x110CD, 0x110CD, prPreprend}, // Cf KAITHI NUMBER SIGN ABOVE + {0x11100, 0x11102, prExtend}, // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA + {0x11127, 0x1112B, prExtend}, // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU + {0x1112C, 0x1112C, prSpacingMark}, // Mc CHAKMA VOWEL SIGN E + {0x1112D, 0x11134, prExtend}, // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA + {0x11145, 0x11146, prSpacingMark}, // Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI + {0x11173, 0x11173, prExtend}, // Mn MAHAJANI SIGN NUKTA + {0x11180, 0x11181, prExtend}, // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA + {0x11182, 0x11182, prSpacingMark}, // Mc SHARADA SIGN VISARGA + {0x111B3, 0x111B5, prSpacingMark}, // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II + {0x111B6, 0x111BE, prExtend}, // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O + {0x111BF, 0x111C0, prSpacingMark}, // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA + {0x111C2, 0x111C3, prPreprend}, // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA + {0x111C9, 0x111CC, prExtend}, // Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK + {0x1122C, 0x1122E, prSpacingMark}, // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II + {0x1122F, 0x11231, prExtend}, // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI + {0x11232, 0x11233, prSpacingMark}, // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU + {0x11234, 0x11234, prExtend}, // Mn KHOJKI SIGN ANUSVARA + {0x11235, 0x11235, prSpacingMark}, // Mc KHOJKI SIGN VIRAMA + {0x11236, 0x11237, prExtend}, // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA + {0x1123E, 0x1123E, prExtend}, // Mn KHOJKI SIGN SUKUN + {0x112DF, 0x112DF, prExtend}, // Mn KHUDAWADI SIGN ANUSVARA + {0x112E0, 0x112E2, prSpacingMark}, // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II + {0x112E3, 0x112EA, prExtend}, // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA + {0x11300, 0x11301, prExtend}, // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU + {0x11302, 0x11303, prSpacingMark}, // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA + {0x1133B, 0x1133C, prExtend}, // Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA + {0x1133E, 0x1133E, prExtend}, // Mc GRANTHA VOWEL SIGN AA + {0x1133F, 0x1133F, prSpacingMark}, // Mc GRANTHA VOWEL SIGN I + {0x11340, 0x11340, prExtend}, // Mn GRANTHA VOWEL SIGN II + {0x11341, 0x11344, prSpacingMark}, // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR + {0x11347, 0x11348, prSpacingMark}, // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI + {0x1134B, 0x1134D, prSpacingMark}, // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA + {0x11357, 0x11357, prExtend}, // Mc GRANTHA AU LENGTH MARK + {0x11362, 0x11363, prSpacingMark}, // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL + {0x11366, 0x1136C, prExtend}, // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + {0x11370, 0x11374, prExtend}, // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA + {0x11435, 0x11437, prSpacingMark}, // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II + {0x11438, 0x1143F, prExtend}, // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI + {0x11440, 0x11441, prSpacingMark}, // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU + {0x11442, 0x11444, prExtend}, // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA + {0x11445, 0x11445, prSpacingMark}, // Mc NEWA SIGN VISARGA + {0x11446, 0x11446, prExtend}, // Mn NEWA SIGN NUKTA + {0x1145E, 0x1145E, prExtend}, // Mn NEWA SANDHI MARK + {0x114B0, 0x114B0, prExtend}, // Mc TIRHUTA VOWEL SIGN AA + {0x114B1, 0x114B2, prSpacingMark}, // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II + {0x114B3, 0x114B8, prExtend}, // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL + {0x114B9, 0x114B9, prSpacingMark}, // Mc TIRHUTA VOWEL SIGN E + {0x114BA, 0x114BA, prExtend}, // Mn TIRHUTA VOWEL SIGN SHORT E + {0x114BB, 0x114BC, prSpacingMark}, // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O + {0x114BD, 0x114BD, prExtend}, // Mc TIRHUTA VOWEL SIGN SHORT O + {0x114BE, 0x114BE, prSpacingMark}, // Mc TIRHUTA VOWEL SIGN AU + {0x114BF, 0x114C0, prExtend}, // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA + {0x114C1, 0x114C1, prSpacingMark}, // Mc TIRHUTA SIGN VISARGA + {0x114C2, 0x114C3, prExtend}, // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA + {0x115AF, 0x115AF, prExtend}, // Mc SIDDHAM VOWEL SIGN AA + {0x115B0, 0x115B1, prSpacingMark}, // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II + {0x115B2, 0x115B5, prExtend}, // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR + {0x115B8, 0x115BB, prSpacingMark}, // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU + {0x115BC, 0x115BD, prExtend}, // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA + {0x115BE, 0x115BE, prSpacingMark}, // Mc SIDDHAM SIGN VISARGA + {0x115BF, 0x115C0, prExtend}, // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA + {0x115DC, 0x115DD, prExtend}, // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU + {0x11630, 0x11632, prSpacingMark}, // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II + {0x11633, 0x1163A, prExtend}, // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI + {0x1163B, 0x1163C, prSpacingMark}, // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU + {0x1163D, 0x1163D, prExtend}, // Mn MODI SIGN ANUSVARA + {0x1163E, 0x1163E, prSpacingMark}, // Mc MODI SIGN VISARGA + {0x1163F, 0x11640, prExtend}, // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA + {0x116AB, 0x116AB, prExtend}, // Mn TAKRI SIGN ANUSVARA + {0x116AC, 0x116AC, prSpacingMark}, // Mc TAKRI SIGN VISARGA + {0x116AD, 0x116AD, prExtend}, // Mn TAKRI VOWEL SIGN AA + {0x116AE, 0x116AF, prSpacingMark}, // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II + {0x116B0, 0x116B5, prExtend}, // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU + {0x116B6, 0x116B6, prSpacingMark}, // Mc TAKRI SIGN VIRAMA + {0x116B7, 0x116B7, prExtend}, // Mn TAKRI SIGN NUKTA + {0x1171D, 0x1171F, prExtend}, // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA + {0x11720, 0x11721, prSpacingMark}, // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA + {0x11722, 0x11725, prExtend}, // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU + {0x11726, 0x11726, prSpacingMark}, // Mc AHOM VOWEL SIGN E + {0x11727, 0x1172B, prExtend}, // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER + {0x1182C, 0x1182E, prSpacingMark}, // Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II + {0x1182F, 0x11837, prExtend}, // Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA + {0x11838, 0x11838, prSpacingMark}, // Mc DOGRA SIGN VISARGA + {0x11839, 0x1183A, prExtend}, // Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA + {0x119D1, 0x119D3, prSpacingMark}, // Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II + {0x119D4, 0x119D7, prExtend}, // Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR + {0x119DA, 0x119DB, prExtend}, // Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI + {0x119DC, 0x119DF, prSpacingMark}, // Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA + {0x119E0, 0x119E0, prExtend}, // Mn NANDINAGARI SIGN VIRAMA + {0x119E4, 0x119E4, prSpacingMark}, // Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E + {0x11A01, 0x11A0A, prExtend}, // Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK + {0x11A33, 0x11A38, prExtend}, // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA + {0x11A39, 0x11A39, prSpacingMark}, // Mc ZANABAZAR SQUARE SIGN VISARGA + {0x11A3A, 0x11A3A, prPreprend}, // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA + {0x11A3B, 0x11A3E, prExtend}, // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA + {0x11A47, 0x11A47, prExtend}, // Mn ZANABAZAR SQUARE SUBJOINER + {0x11A51, 0x11A56, prExtend}, // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE + {0x11A57, 0x11A58, prSpacingMark}, // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU + {0x11A59, 0x11A5B, prExtend}, // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK + {0x11A84, 0x11A89, prPreprend}, // Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA + {0x11A8A, 0x11A96, prExtend}, // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA + {0x11A97, 0x11A97, prSpacingMark}, // Mc SOYOMBO SIGN VISARGA + {0x11A98, 0x11A99, prExtend}, // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER + {0x11C2F, 0x11C2F, prSpacingMark}, // Mc BHAIKSUKI VOWEL SIGN AA + {0x11C30, 0x11C36, prExtend}, // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L + {0x11C38, 0x11C3D, prExtend}, // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA + {0x11C3E, 0x11C3E, prSpacingMark}, // Mc BHAIKSUKI SIGN VISARGA + {0x11C3F, 0x11C3F, prExtend}, // Mn BHAIKSUKI SIGN VIRAMA + {0x11C92, 0x11CA7, prExtend}, // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA + {0x11CA9, 0x11CA9, prSpacingMark}, // Mc MARCHEN SUBJOINED LETTER YA + {0x11CAA, 0x11CB0, prExtend}, // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA + {0x11CB1, 0x11CB1, prSpacingMark}, // Mc MARCHEN VOWEL SIGN I + {0x11CB2, 0x11CB3, prExtend}, // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E + {0x11CB4, 0x11CB4, prSpacingMark}, // Mc MARCHEN VOWEL SIGN O + {0x11CB5, 0x11CB6, prExtend}, // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + {0x11D31, 0x11D36, prExtend}, // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R + {0x11D3A, 0x11D3A, prExtend}, // Mn MASARAM GONDI VOWEL SIGN E + {0x11D3C, 0x11D3D, prExtend}, // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O + {0x11D3F, 0x11D45, prExtend}, // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA + {0x11D46, 0x11D46, prPreprend}, // Lo MASARAM GONDI REPHA + {0x11D47, 0x11D47, prExtend}, // Mn MASARAM GONDI RA-KARA + {0x11D8A, 0x11D8E, prSpacingMark}, // Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU + {0x11D90, 0x11D91, prExtend}, // Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI + {0x11D93, 0x11D94, prSpacingMark}, // Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU + {0x11D95, 0x11D95, prExtend}, // Mn GUNJALA GONDI SIGN ANUSVARA + {0x11D96, 0x11D96, prSpacingMark}, // Mc GUNJALA GONDI SIGN VISARGA + {0x11D97, 0x11D97, prExtend}, // Mn GUNJALA GONDI VIRAMA + {0x11EF3, 0x11EF4, prExtend}, // Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U + {0x11EF5, 0x11EF6, prSpacingMark}, // Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O + {0x13430, 0x13438, prControl}, // Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT + {0x16AF0, 0x16AF4, prExtend}, // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE + {0x16B30, 0x16B36, prExtend}, // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM + {0x16F4F, 0x16F4F, prExtend}, // Mn MIAO SIGN CONSONANT MODIFIER BAR + {0x16F51, 0x16F87, prSpacingMark}, // Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI + {0x16F8F, 0x16F92, prExtend}, // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + {0x1BC9D, 0x1BC9E, prExtend}, // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK + {0x1BCA0, 0x1BCA3, prControl}, // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + {0x1D165, 0x1D165, prExtend}, // Mc MUSICAL SYMBOL COMBINING STEM + {0x1D166, 0x1D166, prSpacingMark}, // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM + {0x1D167, 0x1D169, prExtend}, // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 + {0x1D16D, 0x1D16D, prSpacingMark}, // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT + {0x1D16E, 0x1D172, prExtend}, // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 + {0x1D173, 0x1D17A, prControl}, // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE + {0x1D17B, 0x1D182, prExtend}, // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE + {0x1D185, 0x1D18B, prExtend}, // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE + {0x1D1AA, 0x1D1AD, prExtend}, // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO + {0x1D242, 0x1D244, prExtend}, // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME + {0x1DA00, 0x1DA36, prExtend}, // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN + {0x1DA3B, 0x1DA6C, prExtend}, // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT + {0x1DA75, 0x1DA75, prExtend}, // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS + {0x1DA84, 0x1DA84, prExtend}, // Mn SIGNWRITING LOCATION HEAD NECK + {0x1DA9B, 0x1DA9F, prExtend}, // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + {0x1DAA1, 0x1DAAF, prExtend}, // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 + {0x1E000, 0x1E006, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE + {0x1E008, 0x1E018, prExtend}, // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU + {0x1E01B, 0x1E021, prExtend}, // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI + {0x1E023, 0x1E024, prExtend}, // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS + {0x1E026, 0x1E02A, prExtend}, // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + {0x1E130, 0x1E136, prExtend}, // Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D + {0x1E2EC, 0x1E2EF, prExtend}, // Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI + {0x1E8D0, 0x1E8D6, prExtend}, // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS + {0x1E944, 0x1E94A, prExtend}, // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA + {0x1F000, 0x1F02B, prExtendedPictographic}, // 5.1 [44] (🀀..🀫) MAHJONG TILE EAST WIND..MAHJONG TILE BACK + {0x1F02C, 0x1F02F, prExtendedPictographic}, // NA [4] (🀬..🀯) .. + {0x1F030, 0x1F093, prExtendedPictographic}, // 5.1[100] (🀰..🂓) DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 + {0x1F094, 0x1F09F, prExtendedPictographic}, // NA [12] (🂔..🂟) .. + {0x1F0A0, 0x1F0AE, prExtendedPictographic}, // 6.0 [15] (🂠..🂮) PLAYING CARD BACK..PLAYING CARD KING OF SPADES + {0x1F0AF, 0x1F0B0, prExtendedPictographic}, // NA [2] (🂯..🂰) .. + {0x1F0B1, 0x1F0BE, prExtendedPictographic}, // 6.0 [14] (🂱..🂾) PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS + {0x1F0BF, 0x1F0BF, prExtendedPictographic}, // 7.0 [1] (🂿) PLAYING CARD RED JOKER + {0x1F0C0, 0x1F0C0, prExtendedPictographic}, // NA [1] (🃀) + {0x1F0C1, 0x1F0CF, prExtendedPictographic}, // 6.0 [15] (🃁..🃏) PLAYING CARD ACE OF DIAMONDS..joker + {0x1F0D0, 0x1F0D0, prExtendedPictographic}, // NA [1] (🃐) + {0x1F0D1, 0x1F0DF, prExtendedPictographic}, // 6.0 [15] (🃑..🃟) PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER + {0x1F0E0, 0x1F0F5, prExtendedPictographic}, // 7.0 [22] (🃠..🃵) PLAYING CARD FOOL..PLAYING CARD TRUMP-21 + {0x1F0F6, 0x1F0FF, prExtendedPictographic}, // NA [10] (🃶..🃿) .. + {0x1F10D, 0x1F10F, prExtendedPictographic}, // NA [3] (🄍..🄏) .. + {0x1F12F, 0x1F12F, prExtendedPictographic}, // 11.0 [1] (🄯) COPYLEFT SYMBOL + {0x1F16C, 0x1F16C, prExtendedPictographic}, // 12.0 [1] (🅬) RAISED MR SIGN + {0x1F16D, 0x1F16F, prExtendedPictographic}, // NA [3] (🅭..🅯) .. + {0x1F170, 0x1F171, prExtendedPictographic}, // 6.0 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) + {0x1F17E, 0x1F17E, prExtendedPictographic}, // 6.0 [1] (🅾️) O button (blood type) + {0x1F17F, 0x1F17F, prExtendedPictographic}, // 5.2 [1] (🅿️) P button + {0x1F18E, 0x1F18E, prExtendedPictographic}, // 6.0 [1] (🆎) AB button (blood type) + {0x1F191, 0x1F19A, prExtendedPictographic}, // 6.0 [10] (🆑..🆚) CL button..VS button + {0x1F1AD, 0x1F1E5, prExtendedPictographic}, // NA [57] (🆭..🇥) .. + {0x1F1E6, 0x1F1FF, prRegionalIndicator}, // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z + {0x1F201, 0x1F202, prExtendedPictographic}, // 6.0 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button + {0x1F203, 0x1F20F, prExtendedPictographic}, // NA [13] (🈃..🈏) .. + {0x1F21A, 0x1F21A, prExtendedPictographic}, // 5.2 [1] (🈚) Japanese “free of charge” button + {0x1F22F, 0x1F22F, prExtendedPictographic}, // 5.2 [1] (🈯) Japanese “reserved” button + {0x1F232, 0x1F23A, prExtendedPictographic}, // 6.0 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button + {0x1F23C, 0x1F23F, prExtendedPictographic}, // NA [4] (🈼..🈿) .. + {0x1F249, 0x1F24F, prExtendedPictographic}, // NA [7] (🉉..🉏) .. + {0x1F250, 0x1F251, prExtendedPictographic}, // 6.0 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button + {0x1F252, 0x1F25F, prExtendedPictographic}, // NA [14] (🉒..🉟) .. + {0x1F260, 0x1F265, prExtendedPictographic}, // 10.0 [6] (🉠..🉥) ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI + {0x1F266, 0x1F2FF, prExtendedPictographic}, // NA[154] (🉦..🋿) .. + {0x1F300, 0x1F320, prExtendedPictographic}, // 6.0 [33] (🌀..🌠) cyclone..shooting star + {0x1F321, 0x1F32C, prExtendedPictographic}, // 7.0 [12] (🌡️..🌬️) thermometer..wind face + {0x1F32D, 0x1F32F, prExtendedPictographic}, // 8.0 [3] (🌭..🌯) hot dog..burrito + {0x1F330, 0x1F335, prExtendedPictographic}, // 6.0 [6] (🌰..🌵) chestnut..cactus + {0x1F336, 0x1F336, prExtendedPictographic}, // 7.0 [1] (🌶️) hot pepper + {0x1F337, 0x1F37C, prExtendedPictographic}, // 6.0 [70] (🌷..🍼) tulip..baby bottle + {0x1F37D, 0x1F37D, prExtendedPictographic}, // 7.0 [1] (🍽️) fork and knife with plate + {0x1F37E, 0x1F37F, prExtendedPictographic}, // 8.0 [2] (🍾..🍿) bottle with popping cork..popcorn + {0x1F380, 0x1F393, prExtendedPictographic}, // 6.0 [20] (🎀..🎓) ribbon..graduation cap + {0x1F394, 0x1F39F, prExtendedPictographic}, // 7.0 [12] (🎔..🎟️) HEART WITH TIP ON THE LEFT..admission tickets + {0x1F3A0, 0x1F3C4, prExtendedPictographic}, // 6.0 [37] (🎠..🏄) carousel horse..person surfing + {0x1F3C5, 0x1F3C5, prExtendedPictographic}, // 7.0 [1] (🏅) sports medal + {0x1F3C6, 0x1F3CA, prExtendedPictographic}, // 6.0 [5] (🏆..🏊) trophy..person swimming + {0x1F3CB, 0x1F3CE, prExtendedPictographic}, // 7.0 [4] (🏋️..🏎️) person lifting weights..racing car + {0x1F3CF, 0x1F3D3, prExtendedPictographic}, // 8.0 [5] (🏏..🏓) cricket game..ping pong + {0x1F3D4, 0x1F3DF, prExtendedPictographic}, // 7.0 [12] (🏔️..🏟️) snow-capped mountain..stadium + {0x1F3E0, 0x1F3F0, prExtendedPictographic}, // 6.0 [17] (🏠..🏰) house..castle + {0x1F3F1, 0x1F3F7, prExtendedPictographic}, // 7.0 [7] (🏱..🏷️) WHITE PENNANT..label + {0x1F3F8, 0x1F3FA, prExtendedPictographic}, // 8.0 [3] (🏸..🏺) badminton..amphora + {0x1F3FB, 0x1F3FF, prExtend}, // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 + {0x1F400, 0x1F43E, prExtendedPictographic}, // 6.0 [63] (🐀..🐾) rat..paw prints + {0x1F43F, 0x1F43F, prExtendedPictographic}, // 7.0 [1] (🐿️) chipmunk + {0x1F440, 0x1F440, prExtendedPictographic}, // 6.0 [1] (👀) eyes + {0x1F441, 0x1F441, prExtendedPictographic}, // 7.0 [1] (👁️) eye + {0x1F442, 0x1F4F7, prExtendedPictographic}, // 6.0[182] (👂..📷) ear..camera + {0x1F4F8, 0x1F4F8, prExtendedPictographic}, // 7.0 [1] (📸) camera with flash + {0x1F4F9, 0x1F4FC, prExtendedPictographic}, // 6.0 [4] (📹..📼) video camera..videocassette + {0x1F4FD, 0x1F4FE, prExtendedPictographic}, // 7.0 [2] (📽️..📾) film projector..PORTABLE STEREO + {0x1F4FF, 0x1F4FF, prExtendedPictographic}, // 8.0 [1] (📿) prayer beads + {0x1F500, 0x1F53D, prExtendedPictographic}, // 6.0 [62] (🔀..🔽) shuffle tracks button..downwards button + {0x1F546, 0x1F54A, prExtendedPictographic}, // 7.0 [5] (🕆..🕊️) WHITE LATIN CROSS..dove + {0x1F54B, 0x1F54F, prExtendedPictographic}, // 8.0 [5] (🕋..🕏) kaaba..BOWL OF HYGIEIA + {0x1F550, 0x1F567, prExtendedPictographic}, // 6.0 [24] (🕐..🕧) one o’clock..twelve-thirty + {0x1F568, 0x1F579, prExtendedPictographic}, // 7.0 [18] (🕨..🕹️) RIGHT SPEAKER..joystick + {0x1F57A, 0x1F57A, prExtendedPictographic}, // 9.0 [1] (🕺) man dancing + {0x1F57B, 0x1F5A3, prExtendedPictographic}, // 7.0 [41] (🕻..🖣) LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX + {0x1F5A4, 0x1F5A4, prExtendedPictographic}, // 9.0 [1] (🖤) black heart + {0x1F5A5, 0x1F5FA, prExtendedPictographic}, // 7.0 [86] (🖥️..🗺️) desktop computer..world map + {0x1F5FB, 0x1F5FF, prExtendedPictographic}, // 6.0 [5] (🗻..🗿) mount fuji..moai + {0x1F600, 0x1F600, prExtendedPictographic}, // 6.1 [1] (😀) grinning face + {0x1F601, 0x1F610, prExtendedPictographic}, // 6.0 [16] (😁..😐) beaming face with smiling eyes..neutral face + {0x1F611, 0x1F611, prExtendedPictographic}, // 6.1 [1] (😑) expressionless face + {0x1F612, 0x1F614, prExtendedPictographic}, // 6.0 [3] (😒..😔) unamused face..pensive face + {0x1F615, 0x1F615, prExtendedPictographic}, // 6.1 [1] (😕) confused face + {0x1F616, 0x1F616, prExtendedPictographic}, // 6.0 [1] (😖) confounded face + {0x1F617, 0x1F617, prExtendedPictographic}, // 6.1 [1] (😗) kissing face + {0x1F618, 0x1F618, prExtendedPictographic}, // 6.0 [1] (😘) face blowing a kiss + {0x1F619, 0x1F619, prExtendedPictographic}, // 6.1 [1] (😙) kissing face with smiling eyes + {0x1F61A, 0x1F61A, prExtendedPictographic}, // 6.0 [1] (😚) kissing face with closed eyes + {0x1F61B, 0x1F61B, prExtendedPictographic}, // 6.1 [1] (😛) face with tongue + {0x1F61C, 0x1F61E, prExtendedPictographic}, // 6.0 [3] (😜..😞) winking face with tongue..disappointed face + {0x1F61F, 0x1F61F, prExtendedPictographic}, // 6.1 [1] (😟) worried face + {0x1F620, 0x1F625, prExtendedPictographic}, // 6.0 [6] (😠..😥) angry face..sad but relieved face + {0x1F626, 0x1F627, prExtendedPictographic}, // 6.1 [2] (😦..😧) frowning face with open mouth..anguished face + {0x1F628, 0x1F62B, prExtendedPictographic}, // 6.0 [4] (😨..😫) fearful face..tired face + {0x1F62C, 0x1F62C, prExtendedPictographic}, // 6.1 [1] (😬) grimacing face + {0x1F62D, 0x1F62D, prExtendedPictographic}, // 6.0 [1] (😭) loudly crying face + {0x1F62E, 0x1F62F, prExtendedPictographic}, // 6.1 [2] (😮..😯) face with open mouth..hushed face + {0x1F630, 0x1F633, prExtendedPictographic}, // 6.0 [4] (😰..😳) anxious face with sweat..flushed face + {0x1F634, 0x1F634, prExtendedPictographic}, // 6.1 [1] (😴) sleeping face + {0x1F635, 0x1F640, prExtendedPictographic}, // 6.0 [12] (😵..🙀) dizzy face..weary cat + {0x1F641, 0x1F642, prExtendedPictographic}, // 7.0 [2] (🙁..🙂) slightly frowning face..slightly smiling face + {0x1F643, 0x1F644, prExtendedPictographic}, // 8.0 [2] (🙃..🙄) upside-down face..face with rolling eyes + {0x1F645, 0x1F64F, prExtendedPictographic}, // 6.0 [11] (🙅..🙏) person gesturing NO..folded hands + {0x1F680, 0x1F6C5, prExtendedPictographic}, // 6.0 [70] (🚀..🛅) rocket..left luggage + {0x1F6C6, 0x1F6CF, prExtendedPictographic}, // 7.0 [10] (🛆..🛏️) TRIANGLE WITH ROUNDED CORNERS..bed + {0x1F6D0, 0x1F6D0, prExtendedPictographic}, // 8.0 [1] (🛐) place of worship + {0x1F6D1, 0x1F6D2, prExtendedPictographic}, // 9.0 [2] (🛑..🛒) stop sign..shopping cart + {0x1F6D3, 0x1F6D4, prExtendedPictographic}, // 10.0 [2] (🛓..🛔) STUPA..PAGODA + {0x1F6D5, 0x1F6D5, prExtendedPictographic}, // 12.0 [1] (🛕) hindu temple + {0x1F6D6, 0x1F6DF, prExtendedPictographic}, // NA [10] (🛖..🛟) .. + {0x1F6E0, 0x1F6EC, prExtendedPictographic}, // 7.0 [13] (🛠️..🛬) hammer and wrench..airplane arrival + {0x1F6ED, 0x1F6EF, prExtendedPictographic}, // NA [3] (🛭..🛯) .. + {0x1F6F0, 0x1F6F3, prExtendedPictographic}, // 7.0 [4] (🛰️..🛳️) satellite..passenger ship + {0x1F6F4, 0x1F6F6, prExtendedPictographic}, // 9.0 [3] (🛴..🛶) kick scooter..canoe + {0x1F6F7, 0x1F6F8, prExtendedPictographic}, // 10.0 [2] (🛷..🛸) sled..flying saucer + {0x1F6F9, 0x1F6F9, prExtendedPictographic}, // 11.0 [1] (🛹) skateboard + {0x1F6FA, 0x1F6FA, prExtendedPictographic}, // 12.0 [1] (🛺) auto rickshaw + {0x1F6FB, 0x1F6FF, prExtendedPictographic}, // NA [5] (🛻..🛿) .. + {0x1F774, 0x1F77F, prExtendedPictographic}, // NA [12] (🝴..🝿) .. + {0x1F7D5, 0x1F7D8, prExtendedPictographic}, // 11.0 [4] (🟕..🟘) CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE + {0x1F7D9, 0x1F7DF, prExtendedPictographic}, // NA [7] (🟙..🟟) .. + {0x1F7E0, 0x1F7EB, prExtendedPictographic}, // 12.0 [12] (🟠..🟫) orange circle..brown square + {0x1F7EC, 0x1F7FF, prExtendedPictographic}, // NA [20] (🟬..🟿) .. + {0x1F80C, 0x1F80F, prExtendedPictographic}, // NA [4] (🠌..🠏) .. + {0x1F848, 0x1F84F, prExtendedPictographic}, // NA [8] (🡈..🡏) .. + {0x1F85A, 0x1F85F, prExtendedPictographic}, // NA [6] (🡚..🡟) .. + {0x1F888, 0x1F88F, prExtendedPictographic}, // NA [8] (🢈..🢏) .. + {0x1F8AE, 0x1F8FF, prExtendedPictographic}, // NA [82] (🢮..🣿) .. + {0x1F90C, 0x1F90C, prExtendedPictographic}, // NA [1] (🤌) + {0x1F90D, 0x1F90F, prExtendedPictographic}, // 12.0 [3] (🤍..🤏) white heart..pinching hand + {0x1F910, 0x1F918, prExtendedPictographic}, // 8.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns + {0x1F919, 0x1F91E, prExtendedPictographic}, // 9.0 [6] (🤙..🤞) call me hand..crossed fingers + {0x1F91F, 0x1F91F, prExtendedPictographic}, // 10.0 [1] (🤟) love-you gesture + {0x1F920, 0x1F927, prExtendedPictographic}, // 9.0 [8] (🤠..🤧) cowboy hat face..sneezing face + {0x1F928, 0x1F92F, prExtendedPictographic}, // 10.0 [8] (🤨..🤯) face with raised eyebrow..exploding head + {0x1F930, 0x1F930, prExtendedPictographic}, // 9.0 [1] (🤰) pregnant woman + {0x1F931, 0x1F932, prExtendedPictographic}, // 10.0 [2] (🤱..🤲) breast-feeding..palms up together + {0x1F933, 0x1F93A, prExtendedPictographic}, // 9.0 [8] (🤳..🤺) selfie..person fencing + {0x1F93C, 0x1F93E, prExtendedPictographic}, // 9.0 [3] (🤼..🤾) people wrestling..person playing handball + {0x1F93F, 0x1F93F, prExtendedPictographic}, // 12.0 [1] (🤿) diving mask + {0x1F940, 0x1F945, prExtendedPictographic}, // 9.0 [6] (🥀..🥅) wilted flower..goal net + {0x1F947, 0x1F94B, prExtendedPictographic}, // 9.0 [5] (🥇..🥋) 1st place medal..martial arts uniform + {0x1F94C, 0x1F94C, prExtendedPictographic}, // 10.0 [1] (🥌) curling stone + {0x1F94D, 0x1F94F, prExtendedPictographic}, // 11.0 [3] (🥍..🥏) lacrosse..flying disc + {0x1F950, 0x1F95E, prExtendedPictographic}, // 9.0 [15] (🥐..🥞) croissant..pancakes + {0x1F95F, 0x1F96B, prExtendedPictographic}, // 10.0 [13] (🥟..🥫) dumpling..canned food + {0x1F96C, 0x1F970, prExtendedPictographic}, // 11.0 [5] (🥬..🥰) leafy green..smiling face with hearts + {0x1F971, 0x1F971, prExtendedPictographic}, // 12.0 [1] (🥱) yawning face + {0x1F972, 0x1F972, prExtendedPictographic}, // NA [1] (🥲) + {0x1F973, 0x1F976, prExtendedPictographic}, // 11.0 [4] (🥳..🥶) partying face..cold face + {0x1F977, 0x1F979, prExtendedPictographic}, // NA [3] (🥷..🥹) .. + {0x1F97A, 0x1F97A, prExtendedPictographic}, // 11.0 [1] (🥺) pleading face + {0x1F97B, 0x1F97B, prExtendedPictographic}, // 12.0 [1] (🥻) sari + {0x1F97C, 0x1F97F, prExtendedPictographic}, // 11.0 [4] (🥼..🥿) lab coat..flat shoe + {0x1F980, 0x1F984, prExtendedPictographic}, // 8.0 [5] (🦀..🦄) crab..unicorn + {0x1F985, 0x1F991, prExtendedPictographic}, // 9.0 [13] (🦅..🦑) eagle..squid + {0x1F992, 0x1F997, prExtendedPictographic}, // 10.0 [6] (🦒..🦗) giraffe..cricket + {0x1F998, 0x1F9A2, prExtendedPictographic}, // 11.0 [11] (🦘..🦢) kangaroo..swan + {0x1F9A3, 0x1F9A4, prExtendedPictographic}, // NA [2] (🦣..🦤) .. + {0x1F9A5, 0x1F9AA, prExtendedPictographic}, // 12.0 [6] (🦥..🦪) sloth..oyster + {0x1F9AB, 0x1F9AD, prExtendedPictographic}, // NA [3] (🦫..🦭) .. + {0x1F9AE, 0x1F9AF, prExtendedPictographic}, // 12.0 [2] (🦮..🦯) guide dog..probing cane + {0x1F9B0, 0x1F9B9, prExtendedPictographic}, // 11.0 [10] (🦰..🦹) red hair..supervillain + {0x1F9BA, 0x1F9BF, prExtendedPictographic}, // 12.0 [6] (🦺..🦿) safety vest..mechanical leg + {0x1F9C0, 0x1F9C0, prExtendedPictographic}, // 8.0 [1] (🧀) cheese wedge + {0x1F9C1, 0x1F9C2, prExtendedPictographic}, // 11.0 [2] (🧁..🧂) cupcake..salt + {0x1F9C3, 0x1F9CA, prExtendedPictographic}, // 12.0 [8] (🧃..🧊) beverage box..ice cube + {0x1F9CB, 0x1F9CC, prExtendedPictographic}, // NA [2] (🧋..🧌) .. + {0x1F9CD, 0x1F9CF, prExtendedPictographic}, // 12.0 [3] (🧍..🧏) person standing..deaf person + {0x1F9D0, 0x1F9E6, prExtendedPictographic}, // 10.0 [23] (🧐..🧦) face with monocle..socks + {0x1F9E7, 0x1F9FF, prExtendedPictographic}, // 11.0 [25] (🧧..🧿) red envelope..nazar amulet + {0x1FA00, 0x1FA53, prExtendedPictographic}, // 12.0 [84] (🨀..🩓) NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP + {0x1FA54, 0x1FA5F, prExtendedPictographic}, // NA [12] (🩔..🩟) .. + {0x1FA60, 0x1FA6D, prExtendedPictographic}, // 11.0 [14] (🩠..🩭) XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER + {0x1FA6E, 0x1FA6F, prExtendedPictographic}, // NA [2] (🩮..🩯) .. + {0x1FA70, 0x1FA73, prExtendedPictographic}, // 12.0 [4] (🩰..🩳) ballet shoes..shorts + {0x1FA74, 0x1FA77, prExtendedPictographic}, // NA [4] (🩴..🩷) .. + {0x1FA78, 0x1FA7A, prExtendedPictographic}, // 12.0 [3] (🩸..🩺) drop of blood..stethoscope + {0x1FA7B, 0x1FA7F, prExtendedPictographic}, // NA [5] (🩻..🩿) .. + {0x1FA80, 0x1FA82, prExtendedPictographic}, // 12.0 [3] (🪀..🪂) yo-yo..parachute + {0x1FA83, 0x1FA8F, prExtendedPictographic}, // NA [13] (🪃..🪏) .. + {0x1FA90, 0x1FA95, prExtendedPictographic}, // 12.0 [6] (🪐..🪕) ringed planet..banjo + {0x1FA96, 0x1FFFD, prExtendedPictographic}, // NA[1384] (🪖..🿽) .. + {0xE0000, 0xE0000, prControl}, // Cn + {0xE0001, 0xE0001, prControl}, // Cf LANGUAGE TAG + {0xE0002, 0xE001F, prControl}, // Cn [30] .. + {0xE0020, 0xE007F, prExtend}, // Cf [96] TAG SPACE..CANCEL TAG + {0xE0080, 0xE00FF, prControl}, // Cn [128] .. + {0xE0100, 0xE01EF, prExtend}, // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + {0xE01F0, 0xE0FFF, prControl}, // Cn [3600] .. +} + +// property returns the Unicode property value (see constants above) of the +// given code point. +func property(r rune) int { + // Run a binary search. + from := 0 + to := len(codePoints) + for to > from { + middle := (from + to) / 2 + cpRange := codePoints[middle] + if int(r) < cpRange[0] { + to = middle + continue + } + if int(r) > cpRange[1] { + from = middle + 1 + continue + } + return cpRange[2] + } + return prAny +} diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go new file mode 100644 index 0000000..e07899b --- /dev/null +++ b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go @@ -0,0 +1,30 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package unsafeheader contains header declarations for the Go runtime's +// slice and string implementations. +// +// This package allows x/sys to use types equivalent to +// reflect.SliceHeader and reflect.StringHeader without introducing +// a dependency on the (relatively heavy) "reflect" package. +package unsafeheader + +import ( + "unsafe" +) + +// Slice is the runtime representation of a slice. +// It cannot be used safely or portably and its representation may change in a later release. +type Slice struct { + Data unsafe.Pointer + Len int + Cap int +} + +// String is the runtime representation of a string. +// It cannot be used safely or portably and its representation may change in a later release. +type String struct { + Data unsafe.Pointer + Len int +} diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md index eb2f78a..579d2d7 100644 --- a/vendor/golang.org/x/sys/unix/README.md +++ b/vendor/golang.org/x/sys/unix/README.md @@ -89,7 +89,7 @@ constants. Adding new syscall numbers is mostly done by running the build on a sufficiently new installation of the target OS (or updating the source checkouts for the -new build system). However, depending on the OS, you make need to update the +new build system). However, depending on the OS, you may need to update the parsing in mksysnum. ### mksyscall.go @@ -149,10 +149,21 @@ To add a constant, add the header that includes it to the appropriate variable. Then, edit the regex (if necessary) to match the desired constant. Avoid making the regex too broad to avoid matching unintended constants. +### mkmerge.go + +This program is used to extract duplicate const, func, and type declarations +from the generated architecture-specific files listed below, and merge these +into a common file for each OS. + +The merge is performed in the following steps: +1. Construct the set of common code that is idential in all architecture-specific files. +2. Write this common code to the merged file. +3. Remove the common code from all architecture-specific files. + ## Generated files -### `zerror_${GOOS}_${GOARCH}.go` +### `zerrors_${GOOS}_${GOARCH}.go` A file containing all of the system's generated error numbers, error strings, signal numbers, and constants. Generated by `mkerrors.sh` (see above). diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s index 6db717d..3cfefed 100644 --- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s @@ -23,10 +23,6 @@ TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 MOV a1+8(FP), A0 MOV a2+16(FP), A1 MOV a3+24(FP), A2 - MOV $0, A3 - MOV $0, A4 - MOV $0, A5 - MOV $0, A6 MOV trap+0(FP), A7 // syscall entry ECALL MOV A0, r1+32(FP) // r1 @@ -44,9 +40,6 @@ TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 MOV a1+8(FP), A0 MOV a2+16(FP), A1 MOV a3+24(FP), A2 - MOV ZERO, A3 - MOV ZERO, A4 - MOV ZERO, A5 MOV trap+0(FP), A7 // syscall entry ECALL MOV A0, r1+32(FP) diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go index 6e32296..a178a61 100644 --- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go +++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go @@ -23,6 +23,7 @@ const ( HCI_CHANNEL_USER = 1 HCI_CHANNEL_MONITOR = 2 HCI_CHANNEL_CONTROL = 3 + HCI_CHANNEL_LOGGING = 4 ) // Socketoption Level diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go index c56bc8b..761db66 100644 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go @@ -8,6 +8,7 @@ package unix const ( + DLT_HHDLC = 0x79 IFF_SMART = 0x20 IFT_1822 = 0x2 IFT_A12MPPSWITCH = 0x82 @@ -210,13 +211,18 @@ const ( IFT_XETHER = 0x1a IPPROTO_MAXID = 0x34 IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f MAP_NORESERVE = 0x40 MAP_RENAME = 0x20 NET_RT_MAXID = 0x6 RTF_PRCLONING = 0x10000 RTM_OLDADD = 0x9 RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 SIOCADDRT = 0x8030720a SIOCALIFADDR = 0x8118691b SIOCDELRT = 0x8030720b diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go index 3e97711..070f44b 100644 --- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go @@ -8,6 +8,7 @@ package unix const ( + DLT_HHDLC = 0x79 IFF_SMART = 0x20 IFT_1822 = 0x2 IFT_A12MPPSWITCH = 0x82 @@ -210,13 +211,18 @@ const ( IFT_XETHER = 0x1a IPPROTO_MAXID = 0x34 IPV6_FAITH = 0x1d + IPV6_MIN_MEMBERSHIPS = 0x1f IP_FAITH = 0x16 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f MAP_NORESERVE = 0x40 MAP_RENAME = 0x20 NET_RT_MAXID = 0x6 RTF_PRCLONING = 0x10000 RTM_OLDADD = 0x9 RTM_OLDDEL = 0xa + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 SIOCADDRT = 0x8040720a SIOCALIFADDR = 0x8118691b SIOCDELRT = 0x8040720b diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go new file mode 100644 index 0000000..946dcf3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go @@ -0,0 +1,17 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep +// them here for backwards compatibility. + +package unix + +const ( + DLT_HHDLC = 0x79 + IPV6_MIN_MEMBERSHIPS = 0x1f + IP_MAX_SOURCE_FILTER = 0x400 + IP_MIN_MEMBERSHIPS = 0x1f + RT_CACHING_CONTEXT = 0x1 + RT_NORTREF = 0x2 +) diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go index 39c03f1..4dc5348 100644 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ b/vendor/golang.org/x/sys/unix/fcntl.go @@ -9,12 +9,11 @@ package unix import "unsafe" // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux -// systems by flock_linux_32bit.go to be SYS_FCNTL64. +// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. var fcntl64Syscall uintptr = SYS_FCNTL -// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -func FcntlInt(fd uintptr, cmd, arg int) (int, error) { - valptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg)) +func fcntl(fd int, cmd, arg int) (int, error) { + valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) var err error if errno != 0 { err = errno @@ -22,6 +21,11 @@ func FcntlInt(fd uintptr, cmd, arg int) (int, error) { return int(valptr), err } +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go new file mode 100644 index 0000000..b27be0a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -0,0 +1,29 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +// Set adds fd to the set fds. +func (fds *FdSet) Set(fd int) { + fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) +} + +// Clear removes fd from the set fds. +func (fds *FdSet) Clear(fd int) { + fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) +} + +// IsSet returns whether fd is in the set fds. +func (fds *FdSet) IsSet(fd int) bool { + return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 +} + +// Zero clears the set fds. +func (fds *FdSet) Zero() { + for i := range fds.Bits { + fds.Bits[i] = 0 + } +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 890ec46..ece31e9 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -50,7 +50,7 @@ if [[ "$GOOS" = "linux" ]]; then # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")" && /bin/pwd):/build generate:$GOOS exit fi @@ -124,7 +124,7 @@ freebsd_arm) freebsd_arm64) mkerrors="$mkerrors -m64" mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" - mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; netbsd_386) mkerrors="$mkerrors -m32" @@ -190,6 +190,12 @@ solaris_amd64) mksysnum= mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; +illumos_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors= + mksysnum= + mktypes= + ;; *) echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 exit 1 @@ -217,6 +223,11 @@ esac echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; # 1.13 and later, syscalls via libSystem (including syscallPtr) echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go"; + elif [ "$GOOS" == "illumos" ]; then + # illumos code generation requires a --illumos switch + echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; + # illumos implies solaris, so solaris code generation is also required + echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; else echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 67b8482..40534f0 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -44,6 +44,7 @@ includes_AIX=' #include #include #include +#include #include #include #include @@ -104,7 +105,9 @@ includes_FreeBSD=' #include #include #include +#include #include +#include #include #include #include @@ -185,16 +188,22 @@ struct ltchars { #include #include #include +#include +#include #include #include #include #include #include +#include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -276,6 +285,11 @@ struct ltchars { // for the tipc_subscr timeout __u32 field. #undef TIPC_WAIT_FOREVER #define TIPC_WAIT_FOREVER 0xffffffff + +// Copied from linux/l2tp.h +// Including linux/l2tp.h here causes conflicts between linux/in.h +// and netinet/in.h included via net/route.h above. +#define IPPROTO_L2TP 115 ' includes_NetBSD=' @@ -285,6 +299,7 @@ includes_NetBSD=' #include #include #include +#include #include #include #include @@ -313,6 +328,7 @@ includes_OpenBSD=' #include #include #include +#include #include #include #include @@ -469,12 +485,13 @@ ccflags="$@" $2 ~ /^(MS|MNT|UMOUNT)_/ || $2 ~ /^NS_GET_/ || $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ || $2 ~ /^KEXEC_/ || $2 ~ /^LINUX_REBOOT_CMD_/ || $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || $2 ~ /^MODULE_INIT_/ || $2 !~ "NLA_TYPE_MASK" && + $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || $2 ~ /^SIOC/ || $2 ~ /^TIOC/ || @@ -482,8 +499,9 @@ ccflags="$@" $2 ~ /^TCSET/ || $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || $2 !~ "RTF_BITS" && - $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || $2 ~ /^BIOC/ || + $2 ~ /^DIOC/ || $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || @@ -493,8 +511,14 @@ ccflags="$@" $2 ~ /^(CLOCK|TIMER)_/ || $2 ~ /^CAN_/ || $2 ~ /^CAP_/ || + $2 ~ /^CP_/ || + $2 ~ /^CPUSTATES$/ || $2 ~ /^ALG_/ || - $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE|IOC_(GET|SET)_ENCRYPTION)/ || + $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || + $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || + $2 ~ /^FS_VERITY_/ || + $2 ~ /^FSCRYPT_/ || + $2 ~ /^DM_/ || $2 ~ /^GRND_/ || $2 ~ /^RND/ || $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || @@ -521,9 +545,11 @@ ccflags="$@" $2 ~ /^WDIOC_/ || $2 ~ /^NFN/ || $2 ~ /^XDP_/ || + $2 ~ /^RWF_/ || $2 ~ /^(HDIO|WIN|SMART)_/ || $2 ~ /^CRYPTO_/ || $2 ~ /^TIPC_/ || + $2 ~ /^DEVLINK_/ || $2 !~ "WMESGLEN" && $2 ~ /^W[A-Z0-9]+$/ || $2 ~/^PPPIOC/ || diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go new file mode 100644 index 0000000..5144dee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go @@ -0,0 +1,16 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { + // 64-bit Dragonfly before the September 2019 ABI changes still requires + // 32-bit aligned access to network subsystem. + salign = 4 + } + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go index 6079eb4..8bf4570 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go @@ -17,7 +17,7 @@ func UnixCredentials(ucred *Ucred) []byte { h.Level = SOL_SOCKET h.Type = SCM_CREDENTIALS h.SetLen(CmsgLen(SizeofUcred)) - *((*Ucred)(cmsgData(h))) = *ucred + *(*Ucred)(h.data(0)) = *ucred return b } diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go index 062bcab..003916e 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -9,35 +9,9 @@ package unix import ( - "runtime" "unsafe" ) -// Round the length of a raw sockaddr up to align it properly. -func cmsgAlignOf(salen int) int { - salign := SizeofPtr - - switch runtime.GOOS { - case "aix": - // There is no alignment on AIX. - salign = 1 - case "darwin", "dragonfly", "solaris", "illumos": - // NOTE: It seems like 64-bit Darwin, DragonFly BSD, - // illumos, and Solaris kernels still require 32-bit - // aligned access to network subsystem. - if SizeofPtr == 8 { - salign = 4 - } - case "netbsd", "openbsd": - // NetBSD and OpenBSD armv7 require 64-bit alignment. - if runtime.GOARCH == "arm" { - salign = 8 - } - } - - return (salen + salign - 1) & ^(salign - 1) -} - // CmsgLen returns the value to store in the Len field of the Cmsghdr // structure, taking into account any necessary alignment. func CmsgLen(datalen int) int { @@ -50,8 +24,8 @@ func CmsgSpace(datalen int) int { return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) } -func cmsgData(h *Cmsghdr) unsafe.Pointer { - return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr))) +func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) } // SocketControlMessage represents a socket control message. @@ -94,10 +68,8 @@ func UnixRights(fds ...int) []byte { h.Level = SOL_SOCKET h.Type = SCM_RIGHTS h.SetLen(CmsgLen(datalen)) - data := cmsgData(h) - for _, fd := range fds { - *(*int32)(data) = int32(fd) - data = unsafe.Pointer(uintptr(data) + 4) + for i, fd := range fds { + *(*int32)(h.data(4 * uintptr(i))) = int32(fd) } return b } diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go new file mode 100644 index 0000000..7d08dae --- /dev/null +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go @@ -0,0 +1,38 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix darwin freebsd linux netbsd openbsd solaris + +package unix + +import ( + "runtime" +) + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + + // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in + // sockcmsg_dragonfly.go + switch runtime.GOOS { + case "aix": + // There is no alignment on AIX. + salign = 1 + case "darwin", "illumos", "solaris": + // NOTE: It seems like 64-bit Darwin, Illumos and Solaris + // kernels still require 32-bit aligned access to network + // subsystem. + if SizeofPtr == 8 { + salign = 4 + } + case "netbsd", "openbsd": + // NetBSD and OpenBSD armv7 require 64-bit alignment. + if runtime.GOARCH == "arm" { + salign = 8 + } + } + + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index 3e66714..60bbe10 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -237,7 +237,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { break } } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil @@ -510,6 +510,40 @@ func SysctlRaw(name string, args ...int) ([]byte, error) { return buf[:n], nil } +func SysctlClockinfo(name string) (*Clockinfo, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofClockinfo) + var ci Clockinfo + if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofClockinfo { + return nil, EIO + } + return &ci, nil +} + +func SysctlTimeval(name string) (*Timeval, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + var tv Timeval + n := uintptr(unsafe.Sizeof(tv)) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { + return nil, err + } + if n != unsafe.Sizeof(tv) { + return nil, EIO + } + return &tv, nil +} + //sys utimes(path string, timeval *[2]Timeval) (err error) func Utimes(path string, tv []Timeval) error { @@ -577,8 +611,6 @@ func Futimes(fd int, tv []Timeval) error { return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) } -//sys fcntl(fd int, cmd int, arg int) (val int, err error) - //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go index 24960c3..dc0befe 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go @@ -6,7 +6,11 @@ package unix -import "unsafe" +import ( + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) //sys closedir(dir uintptr) (err error) //sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) @@ -27,8 +31,6 @@ func libc_fdopendir_trampoline() func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // Simulate Getdirentries using fdopendir/readdir_r/closedir. - const ptrSize = unsafe.Sizeof(uintptr(0)) - // We store the number of entries to skip in the seek // offset of fd. See issue #31368. // It's not the full required semantics, but should handle the case @@ -73,6 +75,7 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { cnt++ continue } + reclen := int(entry.Reclen) if reclen > len(buf) { // Not enough room. Return for now. @@ -81,13 +84,15 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // restarting is O(n^2) in the length of the directory. Oh well. break } + // Copy entry into return buffer. - s := struct { - ptr unsafe.Pointer - siz int - cap int - }{ptr: unsafe.Pointer(&entry), siz: reclen, cap: reclen} - copy(buf, *(*[]byte)(unsafe.Pointer(&s))) + var s []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&s)) + hdr.Data = unsafe.Pointer(&entry) + hdr.Cap = reclen + hdr.Len = reclen + copy(buf, s) + buf = buf[reclen:] n += reclen cnt++ diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index c5018a3..0cf31ac 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -155,23 +155,6 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) ( //sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - //sysnb pipe() (r int, w int, err error) func Pipe(p []int) (err error) { @@ -333,12 +316,16 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { * Wrapped */ +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + //sys kill(pid int, signum int, posix int) (err error) func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } //sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL + func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} n := unsafe.Sizeof(uname.Sysname) @@ -436,6 +423,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Getrlimit(which int, lim *Rlimit) (err error) //sysnb Getrusage(who int, rusage *Rusage) (err error) //sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tp *Timeval) (err error) //sysnb Getuid() (uid int) //sysnb Issetugid() (tainted bool) //sys Kqueue() (fd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go index dd756e7..2724e3a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go @@ -10,7 +10,6 @@ import ( "syscall" ) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL //sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) func setTimespec(sec, nsec int64) Timespec { @@ -21,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint32(fd) k.Filter = int16(mode) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go index 7f148c4..ce2e0d2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -10,7 +10,6 @@ import ( "syscall" ) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL //sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) func setTimespec(sec, nsec int64) Timespec { @@ -21,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint64(fd) k.Filter = int16(mode) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go index c81510d..0e3f25a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin,386,!go1.12 +// +build darwin,arm,!go1.12 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go index 58be02e..fc17a3f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go @@ -12,10 +12,6 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) error { return ENOTSUP } -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { - return ENOTSUP -} - func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: int32(sec), Nsec: int32(nsec)} } @@ -24,17 +20,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: int32(sec), Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = int32(sec) - tv.Usec = int32(usec) - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint32(fd) k.Filter = int16(mode) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go index 1ee931f..1e91ddf 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -14,10 +14,6 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) error { return ENOTSUP } -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error { - return ENOTSUP -} - func setTimespec(sec, nsec int64) Timespec { return Timespec{Sec: sec, Nsec: nsec} } @@ -26,17 +22,6 @@ func setTimeval(sec, usec int64) Timeval { return Timeval{Sec: sec, Usec: int32(usec)} } -//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) -func Gettimeofday(tv *Timeval) (err error) { - // The tv passed to gettimeofday must be non-nil - // but is otherwise unused. The answers come back - // in the two registers. - sec, usec, err := gettimeofday(tv) - tv.Sec = sec - tv.Usec = usec - return err -} - func SetKevent(k *Kevent_t, fd, mode, flags int) { k.Ident = uint64(fd) k.Filter = int16(mode) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 8c8d502..8a195ae 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -12,9 +12,25 @@ package unix -import "unsafe" +import ( + "sync" + "unsafe" +) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL +// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// First __DragonFly_version after September 2019 ABI changes +// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html +const _dragonflyABIChangeVersion = 500705 + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { @@ -152,6 +168,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { err := sysctl(mib, old, oldlen, nil, 0) if err != nil { diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index 25ac934..6932e7c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -36,8 +36,6 @@ var ( // INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h const _ino64First = 1200031 -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - func supportsABI(ver uint32) bool { osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) return osreldate >= ver @@ -203,6 +201,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + func Uname(uname *Utsname) error { mib := []_C_int{CTL_KERN, KERN_OSTYPE} n := unsafe.Sizeof(uname.Sysname) @@ -462,8 +462,12 @@ func convertFromDirents11(buf []byte, old []byte) int { dstPos := 0 srcPos := 0 for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) { - dstDirent := (*Dirent)(unsafe.Pointer(&buf[dstPos])) - srcDirent := (*dirent_freebsd11)(unsafe.Pointer(&old[srcPos])) + var dstDirent Dirent + var srcDirent dirent_freebsd11 + + // If multiple direntries are written, sometimes when we reach the final one, + // we may have cap of old less than size of dirent_freebsd11. + copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:]) reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8) if dstPos+reclen > len(buf) { @@ -479,6 +483,7 @@ func convertFromDirents11(buf []byte, old []byte) int { dstDirent.Pad1 = 0 copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen]) + copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:]) padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen] for i := range padding { padding[i] = 0 @@ -516,20 +521,10 @@ func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) } -func PtraceGetFsBase(pid int, fsbase *int64) (err error) { - return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) -} - func PtraceGetRegs(pid int, regsout *Reg) (err error) { return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) } -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint(countin)} - err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) - return int(ioDesc.Len), err -} - func PtraceLwpEvents(pid int, enable int) (err error) { return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go index dcc5645..72a506d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -54,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go index 321c3ba..d5e376a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -54,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) +} + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go index 6977008..4ea45bc 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -54,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go index dbbbfd6..aa5326d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -54,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} + err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) + return int(ioDesc.Len), err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go new file mode 100644 index 0000000..99e62dc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -0,0 +1,57 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// illumos system calls not present on Solaris. + +// +build amd64,illumos + +package unix + +import "unsafe" + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + // somehow Iovec.Base on illumos is (*int8), not (*byte) + iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0])) + } else { + iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +//sys readv(fd int, iovs []Iovec) (n int, err error) + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + return n, err +} + +//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) + +func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = preadv(fd, iovecs, off) + return n, err +} + +//sys writev(fd int, iovs []Iovec) (n int, err error) + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = writev(fd, iovecs) + return n, err +} + +//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) + +func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = pwritev(fd, iovecs, off) + return n, err +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 772ba70..c48f5dd 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -97,6 +97,12 @@ func IoctlSetRTCTime(fd int, value *RTCTime) error { return err } +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + err := ioctl(fd, RTC_WKALM_SET, uintptr(unsafe.Pointer(value))) + runtime.KeepAlive(value) + return err +} + func IoctlGetUint32(fd int, req uint) (uint32, error) { var value uint32 err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) @@ -109,6 +115,12 @@ func IoctlGetRTCTime(fd int) (*RTCTime, error) { return &value, err } +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctl(fd, RTC_WKALM_RD, uintptr(unsafe.Pointer(&value))) + return &value, err +} + //sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) func Link(oldpath string, newpath string) (err error) { @@ -839,6 +851,69 @@ func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil } +// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. +type SockaddrL2TPIP struct { + Addr [4]byte + ConnId uint32 + raw RawSockaddrL2TPIP +} + +func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET + sa.raw.Conn_id = sa.ConnId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil +} + +// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. +type SockaddrL2TPIP6 struct { + Addr [16]byte + ZoneId uint32 + ConnId uint32 + raw RawSockaddrL2TPIP6 +} + +func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET6 + sa.raw.Conn_id = sa.ConnId + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil +} + +// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. +type SockaddrIUCV struct { + UserID string + Name string + raw RawSockaddrIUCV +} + +func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_IUCV + // These are EBCDIC encoded by the kernel, but we still need to pad them + // with blanks. Initializing with blanks allows the caller to feed in either + // a padded or an unpadded string. + for i := 0; i < 8; i++ { + sa.raw.Nodeid[i] = ' ' + sa.raw.User_id[i] = ' ' + sa.raw.Name[i] = ' ' + } + if len(sa.UserID) > 8 || len(sa.Name) > 8 { + return nil, 0, EINVAL + } + for i, b := range []byte(sa.UserID[:]) { + sa.raw.User_id[i] = int8(b) + } + for i, b := range []byte(sa.Name[:]) { + sa.raw.Name[i] = int8(b) + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil +} + func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { switch rsa.Addr.Family { case AF_NETLINK: @@ -884,30 +959,63 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { for n < len(pp.Path) && pp.Path[n] != 0 { n++ } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil case AF_INET: - pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet4) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] + proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP) + sa.ConnId = pp.Conn_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil } - return sa, nil case AF_INET6: - pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) - sa := new(SockaddrInet6) - p := (*[2]byte)(unsafe.Pointer(&pp.Port)) - sa.Port = int(p[0])<<8 + int(p[1]) - sa.ZoneId = pp.Scope_id - for i := 0; i < len(sa.Addr); i++ { - sa.Addr[i] = pp.Addr[i] + proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP6) + sa.ConnId = pp.Conn_id + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + default: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil } - return sa, nil case AF_VSOCK: pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) @@ -986,6 +1094,23 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { } return sa, nil + case AF_IUCV: + pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) + + var user [8]byte + var name [8]byte + + for i := 0; i < 8; i++ { + user[i] = byte(pp.User_id[i]) + name[i] = byte(pp.Name[i]) + } + + sa := &SockaddrIUCV{ + UserID: string(user[:]), + Name: string(name[:]), + } + return sa, nil + } return nil, EAFNOSUPPORT } @@ -1493,8 +1618,12 @@ func PtraceSyscall(pid int, signal int) (err error) { func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } +func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } + func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } +func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } + func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } //sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) @@ -1551,8 +1680,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Acct(path string) (err error) //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) //sys Adjtimex(buf *Timex) (state int, err error) -//sys Capget(hdr *CapUserHeader, data *CapUserData) (err error) -//sys Capset(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) @@ -1562,6 +1691,15 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys DeleteModule(name string, flags int) (err error) //sys Dup(oldfd int) (fd int, err error) + +func Dup2(oldfd, newfd int) error { + // Android O and newer blocks dup2; riscv and arm64 don't implement dup2. + if runtime.GOOS == "android" || runtime.GOARCH == "riscv64" || runtime.GOARCH == "arm64" { + return Dup3(oldfd, newfd, 0) + } + return dup2(oldfd, newfd) +} + //sys Dup3(oldfd int, newfd int, flags int) (err error) //sysnb EpollCreate1(flag int) (fd int, err error) //sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) @@ -1571,7 +1709,6 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fchdir(fd int) (err error) //sys Fchmod(fd int, mode uint32) (err error) //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) -//sys fcntl(fd int, cmd int, arg int) (val int, err error) //sys Fdatasync(fd int) (err error) //sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) //sys FinitModule(fd int, params string, flags int) (err error) @@ -1627,6 +1764,17 @@ func Getpgrp() (pid int) { //sysnb Settimeofday(tv *Timeval) (err error) //sys Setns(fd int, nstype int) (err error) +// PrctlRetInt performs a prctl operation specified by option and further +// optional arguments arg2 through arg5 depending on option. It returns a +// non-negative integer that is returned by the prctl syscall. +func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { + ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + // issue 1435. // On linux Setuid and Setgid only affects the current thread, not the process. // This does not match what most callers expect so we must return an error @@ -1640,6 +1788,30 @@ func Setgid(uid int) (err error) { return EOPNOTSUPP } +// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. +// If the call fails due to other reasons, current fsgid will be returned. +func SetfsgidRetGid(gid int) (int, error) { + return setfsgid(gid) +} + +// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability +// If the call fails due to other reasons, current fsuid will be returned. +func SetfsuidRetUid(uid int) (int, error) { + return setfsuid(uid) +} + +func Setfsgid(gid int) error { + _, err := setfsgid(gid) + return err +} + +func Setfsuid(uid int) error { + _, err := setfsuid(uid) + return err +} + func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { return signalfd(fd, sigmask, _C__NSIG/8, flags) } @@ -1652,6 +1824,9 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { //sys Syncfs(fd int) (err error) //sysnb Sysinfo(info *Sysinfo_t) (err error) //sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) +//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) +//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) +//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) //sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) //sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Umask(mask int) (oldmask int) @@ -1662,6 +1837,123 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { //sys exitThread(code int) (err error) = SYS_EXIT //sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ //sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE +//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV +//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV +//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV +//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV +//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 +//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + iovecs[i].Base = &b[0] + } else { + iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit +// systems, hi will always be 0. On 32-bit systems, offs will be split in half. +// preadv/pwritev chose this calling convention so they don't need to add a +// padding-register for alignment on ARM. +func offs2lohi(offs int64) (lo, hi uintptr) { + return uintptr(offs), uintptr(uint64(offs) >> SizeofLong) +} + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv(fd, iovecs, lo, hi) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + lo, hi := offs2lohi(offset) + n, err = preadv2(fd, iovecs, lo, hi, flags) + readvRacedetect(iovecs, n, err) + return n, err +} + +func readvRacedetect(iovecs []Iovec, n int, err error) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) + } + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } +} + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = writev(fd, iovecs) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev(fd, iovecs, lo, hi) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := bytes2iovec(iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev2(fd, iovecs, lo, hi, flags) + writevRacedetect(iovecs, n) + return n, err +} + +func writevRacedetect(iovecs []Iovec, n int) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceReadRange(unsafe.Pointer(iovecs[i].Base), m) + } + } +} // mmap varies by architecture; see syscall_linux_*.go. //sys munmap(addr uintptr, length uintptr) (err error) @@ -1704,11 +1996,30 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { return int(n), nil } +func isGroupMember(gid int) bool { + groups, err := Getgroups() + if err != nil { + return false + } + + for _, g := range groups { + if g == gid { + return true + } + } + return false +} + //sys faccessat(dirfd int, path string, mode uint32) (err error) +//sys Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { - return EINVAL + if flags == 0 { + return faccessat(dirfd, path, mode) + } + + if err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM { + return err } // The Linux kernel faccessat system call does not take any flags. @@ -1717,8 +2028,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // Because people naturally expect syscall.Faccessat to act // like C faccessat, we do the same. - if flags == 0 { - return faccessat(dirfd, path, mode) + if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 { + return EINVAL } var st Stat_t @@ -1761,7 +2072,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { gid = Getgid() } - if uint32(gid) == st.Gid { + if uint32(gid) == st.Gid || isGroupMember(gid) { fmode = (st.Mode >> 3) & 7 } else { fmode = st.Mode & 7 @@ -1862,6 +2173,18 @@ func Klogset(typ int, arg int) (err error) { return nil } +// RemoteIovec is Iovec with the pointer replaced with an integer. +// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer +// refers to a location in a different process' address space, which +// would confuse the Go garbage collector. +type RemoteIovec struct { + Base uintptr + Len int +} + +//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV +//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV + /* * Unimplemented */ @@ -1956,7 +2279,6 @@ func Klogset(typ int, arg int) (err error) { // TimerGetoverrun // TimerGettime // TimerSettime -// Timerfd // Tkill (obsolete) // Tuxcall // Umount2 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go index e7fa665..048d18e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -49,7 +49,7 @@ func Pipe2(p []int, flags int) (err error) { // 64-bit file system and 32-bit uid calls // (386 default is 32-bit file system and 16-bit uid). -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 @@ -70,8 +70,8 @@ func Pipe2(p []int, flags int) (err error) { //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 088ce0f..72efe86 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -6,7 +6,7 @@ package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -55,8 +55,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index 11930fc..e1913e2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -80,7 +80,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { // 64-bit file system and 32-bit uid calls // (16-bit uid calls are not always supported in newer kernels) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 @@ -98,8 +98,8 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT -//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 -//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index 251e2d9..c6de6b9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -25,7 +25,7 @@ func EpollCreate(size int) (fd int, err error) { //sysnb Getegid() (egid int) //sysnb Geteuid() (euid int) //sysnb Getgid() (gid int) -//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb getrlimit(resource int, rlim *Rlimit) (err error) //sysnb Getuid() (uid int) //sys Listen(s int, n int) (err error) //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 @@ -42,12 +42,12 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sysnb setrlimit(resource int, rlim *Rlimit) (err error) //sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) @@ -168,6 +168,24 @@ func Pipe2(p []int, flags int) (err error) { return } +// Getrlimit prefers the prlimit64 system call. See issue 38604. +func Getrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + return getrlimit(resource, rlim) +} + +// Setrlimit prefers the prlimit64 system call. See issue 38604. +func Setrlimit(resource int, rlim *Rlimit) error { + err := prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + return setrlimit(resource, rlim) +} + func (r *PtraceRegs) PC() uint64 { return r.Pc } func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } @@ -192,9 +210,9 @@ func InotifyInit() (fd int, err error) { return InotifyInit1(0) } -func Dup2(oldfd int, newfd int) (err error) { - return Dup3(oldfd, newfd, 0) -} +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error func Pause() error { _, err := ppoll(nil, 0, nil, nil) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 7562fe9..f028747 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -7,7 +7,7 @@ package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -36,8 +36,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -216,6 +216,10 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint64(length) } +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) func Poll(fds []PollFd, timeout int) (n int, err error) { diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go index a939ff8..c113281 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -14,7 +14,7 @@ import ( func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -31,8 +31,8 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go index 28d6d0f..3493744 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -7,7 +7,7 @@ package unix -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -34,8 +34,8 @@ package unix //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index 6798c26..b0b1505 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -41,8 +41,8 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) @@ -191,10 +191,6 @@ func InotifyInit() (fd int, err error) { return InotifyInit1(0) } -func Dup2(oldfd int, newfd int) (err error) { - return Dup3(oldfd, newfd, 0) -} - func Pause() error { _, err := ppoll(nil, 0, nil, nil) return err @@ -228,3 +224,7 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error } return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) } + +// dup2 exists because func Dup3 in syscall_linux.go references +// it in an unreachable path. dup2 isn't available on arm64. +func dup2(oldfd int, newfd int) error diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go index eb5cb1a..2363f74 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -10,7 +10,7 @@ import ( "unsafe" ) -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sysnb EpollCreate(size int) (fd int, err error) //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 @@ -34,8 +34,8 @@ import ( //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go index 37321c1..d389f15 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -8,7 +8,7 @@ package unix //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 -//sys Dup2(oldfd int, newfd int) (err error) +//sys dup2(oldfd int, newfd int) (err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 @@ -30,8 +30,8 @@ package unix //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -//sys Setfsgid(gid int) (err error) -//sys Setfsuid(uid int) (err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) //sysnb Setregid(rgid int, egid int) (err error) //sysnb Setresgid(rgid int, egid int, sgid int) (err error) //sysnb Setresuid(ruid int, euid int, suid int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index f95463e..45b50a6 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -18,8 +18,6 @@ import ( "unsafe" ) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { Len uint8 @@ -108,23 +106,6 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - //sysnb pipe() (fd1 int, fd2 int, err error) func Pipe(p []int) (err error) { if len(p) != 2 { @@ -189,6 +170,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { var value Ptmget err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) @@ -249,6 +232,14 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e return sendfile(outfd, infd, offset, count) } +func Fstatvfs(fd int, buf *Statvfs_t) (err error) { + return Fstatvfs1(fd, buf, ST_WAIT) +} + +func Statvfs(path string, buf *Statvfs_t) (err error) { + return Statvfs1(path, buf, ST_WAIT) +} + /* * Exposed directly */ @@ -262,6 +253,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) //sys Exit(code int) //sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) //sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) @@ -287,6 +279,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Fpathconf(fd int, name int) (val int, err error) //sys Fstat(fd int, stat *Stat_t) (err error) //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 //sys Fsync(fd int) (err error) //sys Ftruncate(fd int, length int64) (err error) //sysnb Getegid() (egid int) @@ -343,6 +336,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Settimeofday(tp *Timeval) (err error) //sysnb Setuid(uid int) (err error) //sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 //sys Symlink(path string, link string) (err error) //sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) //sys Sync() (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index 7fe65ef..a266e92 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -18,8 +18,6 @@ import ( "unsafe" ) -//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { Len uint8 @@ -57,23 +55,6 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } -func SysctlClockinfo(name string) (*Clockinfo, error) { - mib, err := sysctlmib(name) - if err != nil { - return nil, err - } - - n := uintptr(SizeofClockinfo) - var ci Clockinfo - if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { - return nil, err - } - if n != SizeofClockinfo { - return nil, EIO - } - return &ci, nil -} - func SysctlUvmexp(name string) (*Uvmexp, error) { mib, err := sysctlmib(name) if err != nil { @@ -91,16 +72,20 @@ func SysctlUvmexp(name string) (*Uvmexp, error) { return &u, nil } -//sysnb pipe(p *[2]_C_int) (err error) func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) +func Pipe2(p []int, flags int) error { if len(p) != 2 { return EINVAL } var pp [2]_C_int - err = pipe(&pp) + err := pipe2(&pp, flags) p[0] = int(pp[0]) p[1] = int(pp[1]) - return + return err } //sys Getdents(fd int, buf []byte) (n int, err error) @@ -180,6 +165,8 @@ func setattrlistTimes(path string, times []Timespec, flags int) error { //sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { @@ -248,6 +235,7 @@ func Uname(uname *Utsname) error { //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) //sys Exit(code int) //sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) //sys Fchdir(fd int) (err error) @@ -352,7 +340,6 @@ func Uname(uname *Utsname) error { // clock_settime // closefrom // execve -// fcntl // fhopen // fhstat // fhstatfs diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index 62f968c..0e2a696 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -391,7 +391,7 @@ func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { for n < len(pp.Path) && pp.Path[n] != 0 { n++ } - bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] + bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] sa.Name = string(bytes) return sa, nil diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 3de3756..400ba9f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -12,6 +12,8 @@ import ( "sync" "syscall" "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) var ( @@ -76,7 +78,7 @@ func SignalName(s syscall.Signal) string { // The signal name should start with "SIG". func SignalNum(s string) syscall.Signal { signalNameMapOnce.Do(func() { - signalNameMap = make(map[string]syscall.Signal) + signalNameMap = make(map[string]syscall.Signal, len(signalList)) for _, signal := range signalList { signalNameMap[signal.name] = signal.num } @@ -113,15 +115,12 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d return nil, errno } - // Slice memory layout - var sl = struct { - addr uintptr - len int - cap int - }{addr, length, length} - - // Use unsafe to turn sl into a []byte. - b := *(*[]byte)(unsafe.Pointer(&sl)) + // Use unsafe to convert addr into a []byte. + var b []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b)) + hdr.Data = unsafe.Pointer(addr) + hdr.Cap = length + hdr.Len = length // Register mapping in m and return it. p := &b[cap(b)-1] diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go index 1def8a5..104994b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -459,6 +459,15 @@ const ( MAP_SHARED = 0x1 MAP_TYPE = 0xf0 MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 MCL_CURRENT = 0x100 MCL_FUTURE = 0x200 MSG_ANY = 0x4 @@ -483,6 +492,7 @@ const ( MS_INVALIDATE = 0x40 MS_PER_SEC = 0x3e8 MS_SYNC = 0x20 + NFDBITS = 0x20 NL0 = 0x0 NL1 = 0x4000 NL2 = 0x8000 @@ -688,7 +698,7 @@ const ( SIOCGHIWAT = 0x40047301 SIOCGIFADDR = -0x3fd796df SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fd79693 + SIOCGIFBAUDRATE = -0x3fdf9669 SIOCGIFBRDADDR = -0x3fd796dd SIOCGIFCONF = -0x3ff796bb SIOCGIFCONFGLOB = -0x3ff79670 diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go index 03187de..4fc8d30 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -459,6 +459,15 @@ const ( MAP_SHARED = 0x1 MAP_TYPE = 0xf0 MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 MCL_CURRENT = 0x100 MCL_FUTURE = 0x200 MSG_ANY = 0x4 @@ -483,6 +492,7 @@ const ( MS_INVALIDATE = 0x40 MS_PER_SEC = 0x3e8 MS_SYNC = 0x20 + NFDBITS = 0x40 NL0 = 0x0 NL1 = 0x4000 NL2 = 0x8000 @@ -688,7 +698,7 @@ const ( SIOCGHIWAT = 0x40047301 SIOCGIFADDR = -0x3fd796df SIOCGIFADDRS = 0x2000698c - SIOCGIFBAUDRATE = -0x3fd79693 + SIOCGIFBAUDRATE = -0x3fdf9669 SIOCGIFBRDADDR = -0x3fd796dd SIOCGIFCONF = -0x3fef96bb SIOCGIFCONFGLOB = -0x3fef9670 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go index b72544f..3689c80 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -339,6 +339,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +361,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +401,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +418,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +432,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +454,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +487,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +505,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +525,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +562,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +587,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +595,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +617,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +659,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +676,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +851,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +872,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +890,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +951,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +962,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +971,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -975,6 +1021,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -986,6 +1033,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1026,10 +1082,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1058,6 +1116,7 @@ const ( NFDBITS = 0x20 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1212,7 +1271,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1222,15 +1280,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1246,6 +1306,7 @@ const ( SIOCGETSGCNT = 0xc0147210 SIOCGETVIFCNT = 0xc014720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1267,8 +1328,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1299,6 +1363,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1317,6 +1382,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1325,6 +1391,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1337,11 +1404,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1385,10 +1460,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1396,6 +1506,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1411,8 +1527,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1476,6 +1614,8 @@ const ( TIOCTIMESTAMP = 0x40087459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1487,6 +1627,8 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x70e0000 + VM_SWZONE_SIZE_MAX = 0x2280000 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go index 9f38267..b8f7c3c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -339,6 +339,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +361,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +401,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +418,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +432,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +454,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +487,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +505,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +525,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +562,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +587,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +595,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +617,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +659,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +676,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +851,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +872,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +890,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +951,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +962,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +971,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -976,6 +1022,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -987,6 +1034,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1027,10 +1083,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1059,6 +1117,7 @@ const ( NFDBITS = 0x40 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1213,7 +1272,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1223,15 +1281,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1247,6 +1307,7 @@ const ( SIOCGETSGCNT = 0xc0207210 SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1268,8 +1329,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1300,6 +1364,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1318,6 +1383,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1326,6 +1392,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1338,11 +1405,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1386,10 +1461,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1397,6 +1507,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1412,8 +1528,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1477,6 +1615,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go index 16db56a..be14bb1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -339,6 +339,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +361,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go index 1a1de34..7ce9c00 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -339,6 +339,12 @@ const ( CLOCK_UPTIME_FAST = 0x8 CLOCK_UPTIME_PRECISE = 0x7 CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x30000 CS5 = 0x0 @@ -355,6 +361,22 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0x18 CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f DLT_A429 = 0xb8 DLT_A653_ICM = 0xb9 DLT_AIRONET_HEADER = 0x78 @@ -379,11 +401,14 @@ const ( DLT_CHAOS = 0x5 DLT_CHDLC = 0x68 DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 DLT_C_HDLC = 0x68 DLT_C_HDLC_WITH_DIR = 0xcd DLT_DBUS = 0xe7 DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 DLT_DVB_CI = 0xeb DLT_ECONET = 0x73 DLT_EN10MB = 0x1 @@ -393,6 +418,7 @@ const ( DLT_ERF = 0xc5 DLT_ERF_ETH = 0xaf DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 DLT_FC_2 = 0xe0 DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 DLT_FDDI = 0xa @@ -406,7 +432,6 @@ const ( DLT_GPRS_LLC = 0xa9 DLT_GSMTAP_ABIS = 0xda DLT_GSMTAP_UM = 0xd9 - DLT_HHDLC = 0x79 DLT_IBM_SN = 0x92 DLT_IBM_SP = 0x91 DLT_IEEE802 = 0x6 @@ -429,6 +454,7 @@ const ( DLT_IPV4 = 0xe4 DLT_IPV6 = 0xe5 DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 DLT_JUNIPER_ATM1 = 0x89 DLT_JUNIPER_ATM2 = 0x87 DLT_JUNIPER_ATM_CEMIC = 0xee @@ -461,8 +487,9 @@ const ( DLT_LINUX_PPP_WITHDIRECTION = 0xa6 DLT_LINUX_SLL = 0x71 DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e DLT_LTALK = 0x72 - DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MAX = 0x113 DLT_MATCHING_MIN = 0x68 DLT_MFR = 0xb6 DLT_MOST = 0xd3 @@ -478,14 +505,16 @@ const ( DLT_NFC_LLCP = 0xf5 DLT_NFLOG = 0xef DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PCI_EXP = 0x7d DLT_PFLOG = 0x75 DLT_PFSYNC = 0x79 DLT_PKTAP = 0x102 DLT_PPI = 0xc0 DLT_PPP = 0x9 - DLT_PPP_BSDOS = 0x10 + DLT_PPP_BSDOS = 0xe DLT_PPP_ETHER = 0x33 DLT_PPP_PPPD = 0xa6 DLT_PPP_SERIAL = 0x32 @@ -496,19 +525,25 @@ const ( DLT_PRONET = 0x4 DLT_RAIF1 = 0xc6 DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 DLT_RIO = 0x7c DLT_RTAC_SERIAL = 0xfa DLT_SCCP = 0x8e DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c DLT_SITA = 0xc4 DLT_SLIP = 0x8 - DLT_SLIP_BSDOS = 0xf + DLT_SLIP_BSDOS = 0xd DLT_STANAG_5066_D_PDU = 0xed DLT_SUNATM = 0x7b DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d DLT_TZSP = 0x80 DLT_USB = 0xba DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba DLT_USB_LINUX = 0xbd DLT_USB_LINUX_MMAPPED = 0xdc DLT_USER0 = 0x93 @@ -527,10 +562,14 @@ const ( DLT_USER7 = 0x9a DLT_USER8 = 0x9b DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 DLT_WIHART = 0xdf DLT_WIRESHARK_UPPER_PDU = 0xfc DLT_X2E_SERIAL = 0xd5 DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -548,6 +587,7 @@ const ( ECHONL = 0x10 ECHOPRT = 0x20 EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd EVFILT_FS = -0x9 EVFILT_LIO = -0xa EVFILT_PROC = -0x5 @@ -555,11 +595,12 @@ const ( EVFILT_READ = -0x1 EVFILT_SENDFILE = -0xc EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0xc + EVFILT_SYSCOUNT = 0xd EVFILT_TIMER = -0x7 EVFILT_USER = -0xb EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 @@ -576,6 +617,7 @@ const ( EV_RECEIPT = 0x40 EV_SYSFLAGS = 0xf000 EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff EXTATTR_NAMESPACE_EMPTY = 0x0 EXTATTR_NAMESPACE_SYSTEM = 0x2 EXTATTR_NAMESPACE_USER = 0x1 @@ -617,6 +659,7 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 IFF_ALLMULTI = 0x200 IFF_ALTPHYS = 0x4000 IFF_BROADCAST = 0x2 @@ -633,6 +676,7 @@ const ( IFF_MONITOR = 0x40000 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PPROMISC = 0x20000 @@ -807,6 +851,7 @@ const ( IPV6_DSTOPTS = 0x32 IPV6_FLOWID = 0x43 IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWTYPE = 0x44 IPV6_FRAGTTL = 0x78 @@ -827,13 +872,13 @@ const ( IPV6_MAX_GROUP_SRC_FILTER = 0x200 IPV6_MAX_MEMBERSHIPS = 0xfff IPV6_MAX_SOCK_SRC_FILTER = 0x80 - IPV6_MIN_MEMBERSHIPS = 0x1f IPV6_MMTU = 0x500 IPV6_MSFILTER = 0x4a IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 IPV6_MULTICAST_LOOP = 0xb IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 IPV6_PATHMTU = 0x2c IPV6_PKTINFO = 0x2e IPV6_PORTRANGE = 0xe @@ -845,6 +890,7 @@ const ( IPV6_RECVFLOWID = 0x46 IPV6_RECVHOPLIMIT = 0x25 IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 IPV6_RECVPATHMTU = 0x2b IPV6_RECVPKTINFO = 0x24 IPV6_RECVRSSBUCKETID = 0x47 @@ -905,10 +951,8 @@ const ( IP_MAX_MEMBERSHIPS = 0xfff IP_MAX_SOCK_MUTE_FILTER = 0x80 IP_MAX_SOCK_SRC_FILTER = 0x80 - IP_MAX_SOURCE_FILTER = 0x400 IP_MF = 0x2000 IP_MINTTL = 0x42 - IP_MIN_MEMBERSHIPS = 0x1f IP_MSFILTER = 0x4a IP_MSS = 0x240 IP_MULTICAST_IF = 0x9 @@ -918,6 +962,7 @@ const ( IP_OFFMASK = 0x1fff IP_ONESBCAST = 0x17 IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b IP_PORTRANGE = 0x13 IP_PORTRANGE_DEFAULT = 0x0 IP_PORTRANGE_HIGH = 0x1 @@ -926,6 +971,7 @@ const ( IP_RECVFLOWID = 0x5d IP_RECVIF = 0x14 IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b IP_RECVRETOPTS = 0x6 IP_RECVRSSBUCKETID = 0x5e IP_RECVTOS = 0x44 @@ -976,6 +1022,7 @@ const ( MAP_EXCL = 0x4000 MAP_FILE = 0x0 MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 MAP_HASSEMAPHORE = 0x200 MAP_NOCORE = 0x20000 MAP_NOSYNC = 0x800 @@ -987,6 +1034,15 @@ const ( MAP_RESERVED0100 = 0x100 MAP_SHARED = 0x1 MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 MCL_CURRENT = 0x1 MCL_FUTURE = 0x2 MNT_ACLS = 0x8000000 @@ -1027,10 +1083,12 @@ const ( MNT_SUSPEND = 0x4 MNT_SYNCHRONOUS = 0x2 MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 MNT_UPDATE = 0x10000 - MNT_UPDATEMASK = 0x2d8d0807e + MNT_UPDATEMASK = 0xad8d0807e MNT_USER = 0x8000 - MNT_VISFLAGMASK = 0x3fef0ffff + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff MNT_WAIT = 0x1 MSG_CMSG_CLOEXEC = 0x40000 MSG_COMPAT = 0x8000 @@ -1059,6 +1117,7 @@ const ( NFDBITS = 0x40 NOFLSH = 0x80000000 NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 NOTE_ATTRIB = 0x8 NOTE_CHILD = 0x4 NOTE_CLOSE = 0x100 @@ -1213,7 +1272,6 @@ const ( RTV_WEIGHT = 0x100 RT_ALL_FIBS = -0x1 RT_BLACKHOLE = 0x40 - RT_CACHING_CONTEXT = 0x1 RT_DEFAULT_FIB = 0x0 RT_HAS_GW = 0x80 RT_HAS_HEADER = 0x10 @@ -1223,15 +1281,17 @@ const ( RT_LLE_CACHE = 0x100 RT_MAY_LOOP = 0x8 RT_MAY_LOOP_BIT = 0x3 - RT_NORTREF = 0x2 RT_REJECT = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_BINTIME = 0x4 SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1247,6 +1307,7 @@ const ( SIOCGETSGCNT = 0xc0207210 SIOCGETVIFCNT = 0xc028720f SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e SIOCGI2C = 0xc020693d SIOCGIFADDR = 0xc0206921 SIOCGIFBRDADDR = 0xc0206923 @@ -1268,8 +1329,11 @@ const ( SIOCGIFPDSTADDR = 0xc0206948 SIOCGIFPHYS = 0xc0206935 SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 SIOCGIFSTATUS = 0xc331693b SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 SIOCGPRIVATE_0 = 0xc0206950 @@ -1300,6 +1364,7 @@ const ( SIOCSIFPHYS = 0x80206936 SIOCSIFRVNET = 0xc020695b SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 SIOCSTUNFIB = 0x8020695f @@ -1318,6 +1383,7 @@ const ( SO_BINTIME = 0x2000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1326,6 +1392,7 @@ const ( SO_LISTENINCQLEN = 0x1013 SO_LISTENQLEN = 0x1012 SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 SO_NOSIGPIPE = 0x800 SO_NO_DDP = 0x8000 SO_NO_OFFLOAD = 0x4000 @@ -1338,11 +1405,19 @@ const ( SO_RCVTIMEO = 0x1006 SO_REUSEADDR = 0x4 SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 SO_SETFIB = 0x1014 SO_SNDBUF = 0x1001 SO_SNDLOWAT = 0x1003 SO_SNDTIMEO = 0x1005 SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 SO_USER_COOKIE = 0x1015 @@ -1386,10 +1461,45 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 TCP_CA_NAME_MAX = 0x10 TCP_CCALGOOPT = 0x41 TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 TCP_FUNCTION_BLK = 0x2000 TCP_FUNCTION_NAME_LEN_MAX = 0x20 TCP_INFO = 0x20 @@ -1397,6 +1507,12 @@ const ( TCP_KEEPIDLE = 0x100 TCP_KEEPINIT = 0x80 TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 TCP_MAXBURST = 0x4 TCP_MAXHLEN = 0x3c TCP_MAXOLEN = 0x28 @@ -1412,8 +1528,30 @@ const ( TCP_NOPUSH = 0x4 TCP_PCAP_IN = 0x1000 TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_SESS_CWV = 0x42a + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 TCP_VENDOR = 0x80000000 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCONS = 0x80047462 @@ -1477,6 +1615,8 @@ const ( TIOCTIMESTAMP = 0x40107459 TIOCUCNTL = 0x80047466 TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1488,6 +1628,7 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x19000000 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go new file mode 100644 index 0000000..e80d4e9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -0,0 +1,2476 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +import "syscall" + +const ( + AAFS_MAGIC = 0x5a3c69f0 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_FS_MAGIC = 0x6b414653 + AFS_SUPER_MAGIC = 0x5346414f + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2d + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ALG_OP_DECRYPT = 0x0 + ALG_OP_ENCRYPT = 0x1 + ALG_SET_AEAD_ASSOCLEN = 0x4 + ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_IV = 0x2 + ALG_SET_KEY = 0x1 + ALG_SET_OP = 0x3 + ANON_INODE_FS_MAGIC = 0x9041934 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + AUTOFS_SUPER_MAGIC = 0x187 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BALLOON_KVM_MAGIC = 0x13661366 + BDEVFS_MAGIC = 0x62646576 + BINDERFS_SUPER_MAGIC = 0x6c6f6f70 + BINFMTFS_MAGIC = 0x42494e4d + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_ALU64 = 0x7 + BPF_AND = 0x50 + BPF_ARSH = 0xc0 + BPF_B = 0x10 + BPF_BUILD_ID_SIZE = 0x14 + BPF_CALL = 0x80 + BPF_DIV = 0x30 + BPF_DW = 0x18 + BPF_END = 0xd0 + BPF_EXIT = 0x90 + BPF_FROM_BE = 0x8 + BPF_FROM_LE = 0x0 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_F_ALLOW_MULTI = 0x2 + BPF_F_ALLOW_OVERRIDE = 0x1 + BPF_F_ANY_ALIGNMENT = 0x2 + BPF_F_QUERY_EFFECTIVE = 0x1 + BPF_F_REPLACE = 0x4 + BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JLE = 0xb0 + BPF_JLT = 0xa0 + BPF_JMP = 0x5 + BPF_JMP32 = 0x6 + BPF_JNE = 0x50 + BPF_JSET = 0x40 + BPF_JSGE = 0x70 + BPF_JSGT = 0x60 + BPF_JSLE = 0xd0 + BPF_JSLT = 0xc0 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MOV = 0xb0 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OBJ_NAME_LEN = 0x10 + BPF_OR = 0x40 + BPF_PSEUDO_CALL = 0x1 + BPF_PSEUDO_MAP_FD = 0x1 + BPF_PSEUDO_MAP_VALUE = 0x2 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAG_SIZE = 0x8 + BPF_TAX = 0x0 + BPF_TO_BE = 0x8 + BPF_TO_LE = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XADD = 0xc0 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BTRFS_SUPER_MAGIC = 0x9123683e + BTRFS_TEST_MAGIC = 0x73727279 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_J1939 = 0x7 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x8 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_BPF = 0x27 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x27 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_PERFMON = 0x26 + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_ARGS_SIZE_VER0 = 0x40 + CLONE_ARGS_SIZE_VER1 = 0x50 + CLONE_ARGS_SIZE_VER2 = 0x58 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_CLEAR_SIGHAND = 0x100000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_INTO_CGROUP = 0x200000000 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWTIME = 0x80 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PIDFD = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CODA_SUPER_MAGIC = 0x73757245 + CR0 = 0x0 + CRAMFS_MAGIC = 0x28cd3d45 + CRTSCTS = 0x80000000 + CRYPTO_MAX_NAME = 0x40 + CRYPTO_MSG_MAX = 0x15 + CRYPTO_NR_MSGTYPES = 0x6 + CRYPTO_REPORT_MAXSIZE = 0x160 + CS5 = 0x0 + CSIGNAL = 0xff + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSUSP = 0x1a + DAXFS_MAGIC = 0x64646178 + DEBUGFS_MAGIC = 0x64626720 + DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d + DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e + DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" + DEVLINK_GENL_NAME = "devlink" + DEVLINK_GENL_VERSION = 0x1 + DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 + DEVMEM_MAGIC = 0x454d444d + DEVPTS_SUPER_MAGIC = 0x1cd1 + DMA_BUF_MAGIC = 0x444d4142 + DM_ACTIVE_PRESENT_FLAG = 0x20 + DM_BUFFER_FULL_FLAG = 0x100 + DM_CONTROL_NODE = "control" + DM_DATA_OUT_FLAG = 0x10000 + DM_DEFERRED_REMOVE = 0x20000 + DM_DEV_ARM_POLL = 0xc138fd10 + DM_DEV_CREATE = 0xc138fd03 + DM_DEV_REMOVE = 0xc138fd04 + DM_DEV_RENAME = 0xc138fd05 + DM_DEV_SET_GEOMETRY = 0xc138fd0f + DM_DEV_STATUS = 0xc138fd07 + DM_DEV_SUSPEND = 0xc138fd06 + DM_DEV_WAIT = 0xc138fd08 + DM_DIR = "mapper" + DM_GET_TARGET_VERSION = 0xc138fd11 + DM_INACTIVE_PRESENT_FLAG = 0x40 + DM_INTERNAL_SUSPEND_FLAG = 0x40000 + DM_IOCTL = 0xfd + DM_LIST_DEVICES = 0xc138fd02 + DM_LIST_VERSIONS = 0xc138fd0d + DM_MAX_TYPE_NAME = 0x10 + DM_NAME_LEN = 0x80 + DM_NOFLUSH_FLAG = 0x800 + DM_PERSISTENT_DEV_FLAG = 0x8 + DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 + DM_READONLY_FLAG = 0x1 + DM_REMOVE_ALL = 0xc138fd01 + DM_SECURE_DATA_FLAG = 0x8000 + DM_SKIP_BDGET_FLAG = 0x200 + DM_SKIP_LOCKFS_FLAG = 0x400 + DM_STATUS_TABLE_FLAG = 0x10 + DM_SUSPEND_FLAG = 0x2 + DM_TABLE_CLEAR = 0xc138fd0a + DM_TABLE_DEPS = 0xc138fd0b + DM_TABLE_LOAD = 0xc138fd09 + DM_TABLE_STATUS = 0xc138fd0c + DM_TARGET_MSG = 0xc138fd0e + DM_UEVENT_GENERATED_FLAG = 0x2000 + DM_UUID_FLAG = 0x4000 + DM_UUID_LEN = 0x81 + DM_VERSION = 0xc138fd00 + DM_VERSION_EXTRA = "-ioctl (2020-02-27)" + DM_VERSION_MAJOR = 0x4 + DM_VERSION_MINOR = 0x2a + DM_VERSION_PATCHLEVEL = 0x0 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFD_SEMAPHORE = 0x1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x414a53 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_DSA_8021Q = 0xdadb + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LLDP = 0x88cc + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MRP = 0x88e3 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXABYTE_ENABLE_NEST = 0xf0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 + FALLOC_FL_COLLAPSE_RANGE = 0x8 + FALLOC_FL_INSERT_RANGE = 0x20 + FALLOC_FL_KEEP_SIZE = 0x1 + FALLOC_FL_NO_HIDE_STALE = 0x4 + FALLOC_FL_PUNCH_HOLE = 0x2 + FALLOC_FL_UNSHARE_RANGE = 0x40 + FALLOC_FL_ZERO_RANGE = 0x10 + FANOTIFY_METADATA_VERSION = 0x3 + FAN_ACCESS = 0x1 + FAN_ACCESS_PERM = 0x20000 + FAN_ALLOW = 0x1 + FAN_ALL_CLASS_BITS = 0xc + FAN_ALL_EVENTS = 0x3b + FAN_ALL_INIT_FLAGS = 0x3f + FAN_ALL_MARK_FLAGS = 0xff + FAN_ALL_OUTGOING_EVENTS = 0x3403b + FAN_ALL_PERM_EVENTS = 0x30000 + FAN_ATTRIB = 0x4 + FAN_AUDIT = 0x10 + FAN_CLASS_CONTENT = 0x4 + FAN_CLASS_NOTIF = 0x0 + FAN_CLASS_PRE_CONTENT = 0x8 + FAN_CLOEXEC = 0x1 + FAN_CLOSE = 0x18 + FAN_CLOSE_NOWRITE = 0x10 + FAN_CLOSE_WRITE = 0x8 + FAN_CREATE = 0x100 + FAN_DELETE = 0x200 + FAN_DELETE_SELF = 0x400 + FAN_DENY = 0x2 + FAN_DIR_MODIFY = 0x80000 + FAN_ENABLE_AUDIT = 0x40 + FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 + FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_METADATA_LEN = 0x18 + FAN_EVENT_ON_CHILD = 0x8000000 + FAN_MARK_ADD = 0x1 + FAN_MARK_DONT_FOLLOW = 0x4 + FAN_MARK_FILESYSTEM = 0x100 + FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORED_MASK = 0x20 + FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_INODE = 0x0 + FAN_MARK_MOUNT = 0x10 + FAN_MARK_ONLYDIR = 0x8 + FAN_MARK_REMOVE = 0x2 + FAN_MODIFY = 0x2 + FAN_MOVE = 0xc0 + FAN_MOVED_FROM = 0x40 + FAN_MOVED_TO = 0x80 + FAN_MOVE_SELF = 0x800 + FAN_NOFD = -0x1 + FAN_NONBLOCK = 0x2 + FAN_ONDIR = 0x40000000 + FAN_OPEN = 0x20 + FAN_OPEN_EXEC = 0x1000 + FAN_OPEN_EXEC_PERM = 0x40000 + FAN_OPEN_PERM = 0x10000 + FAN_Q_OVERFLOW = 0x4000 + FAN_REPORT_FID = 0x200 + FAN_REPORT_TID = 0x100 + FAN_UNLIMITED_MARKS = 0x20 + FAN_UNLIMITED_QUEUE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 + FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" + FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 + FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 + FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 + FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 + FSCRYPT_KEY_STATUS_ABSENT = 0x1 + FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 + FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 + FSCRYPT_KEY_STATUS_PRESENT = 0x2 + FSCRYPT_MAX_KEY_SIZE = 0x40 + FSCRYPT_MODE_ADIANTUM = 0x9 + FSCRYPT_MODE_AES_128_CBC = 0x5 + FSCRYPT_MODE_AES_128_CTS = 0x6 + FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_XTS = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 + FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 + FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 + FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 + FSCRYPT_POLICY_FLAGS_VALID = 0x1f + FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 + FSCRYPT_POLICY_V1 = 0x0 + FSCRYPT_POLICY_V2 = 0x2 + FS_ENCRYPTION_MODE_ADIANTUM = 0x9 + FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 + FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 + FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 + FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 + FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 + FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 + FS_ENCRYPTION_MODE_INVALID = 0x0 + FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 + FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 + FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 + FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a + FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 + FS_IOC_MEASURE_VERITY = 0xc0046686 + FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 + FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 + FS_KEY_DESCRIPTOR_SIZE = 0x8 + FS_KEY_DESC_PREFIX = "fscrypt:" + FS_KEY_DESC_PREFIX_SIZE = 0x8 + FS_MAX_KEY_SIZE = 0x40 + FS_POLICY_FLAGS_PAD_16 = 0x2 + FS_POLICY_FLAGS_PAD_32 = 0x3 + FS_POLICY_FLAGS_PAD_4 = 0x0 + FS_POLICY_FLAGS_PAD_8 = 0x1 + FS_POLICY_FLAGS_PAD_MASK = 0x3 + FS_POLICY_FLAGS_VALID = 0x1f + FS_VERITY_FL = 0x100000 + FS_VERITY_HASH_ALG_SHA256 = 0x1 + FS_VERITY_HASH_ALG_SHA512 = 0x2 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + GENL_ADMIN_PERM = 0x1 + GENL_CMD_CAP_DO = 0x2 + GENL_CMD_CAP_DUMP = 0x4 + GENL_CMD_CAP_HASPOL = 0x8 + GENL_HDRLEN = 0x4 + GENL_ID_CTRL = 0x10 + GENL_ID_PMCRAID = 0x12 + GENL_ID_VFS_DQUOT = 0x11 + GENL_MAX_ID = 0x3ff + GENL_MIN_ID = 0x10 + GENL_NAMSIZ = 0x10 + GENL_START_ALLOC = 0x13 + GENL_UNS_ADMIN_PERM = 0x10 + GRND_INSECURE = 0x4 + GRND_NONBLOCK = 0x1 + GRND_RANDOM = 0x2 + HDIO_DRIVE_CMD = 0x31f + HDIO_DRIVE_CMD_AEB = 0x31e + HDIO_DRIVE_CMD_HDR_SIZE = 0x4 + HDIO_DRIVE_HOB_HDR_SIZE = 0x8 + HDIO_DRIVE_RESET = 0x31c + HDIO_DRIVE_TASK = 0x31e + HDIO_DRIVE_TASKFILE = 0x31d + HDIO_DRIVE_TASK_HDR_SIZE = 0x8 + HDIO_GETGEO = 0x301 + HDIO_GET_32BIT = 0x309 + HDIO_GET_ACOUSTIC = 0x30f + HDIO_GET_ADDRESS = 0x310 + HDIO_GET_BUSSTATE = 0x31a + HDIO_GET_DMA = 0x30b + HDIO_GET_IDENTITY = 0x30d + HDIO_GET_KEEPSETTINGS = 0x308 + HDIO_GET_MULTCOUNT = 0x304 + HDIO_GET_NICE = 0x30c + HDIO_GET_NOWERR = 0x30a + HDIO_GET_QDMA = 0x305 + HDIO_GET_UNMASKINTR = 0x302 + HDIO_GET_WCACHE = 0x30e + HDIO_OBSOLETE_IDENTITY = 0x307 + HDIO_SCAN_HWIF = 0x328 + HDIO_SET_32BIT = 0x324 + HDIO_SET_ACOUSTIC = 0x32c + HDIO_SET_ADDRESS = 0x32f + HDIO_SET_BUSSTATE = 0x32d + HDIO_SET_DMA = 0x326 + HDIO_SET_KEEPSETTINGS = 0x323 + HDIO_SET_MULTCOUNT = 0x321 + HDIO_SET_NICE = 0x329 + HDIO_SET_NOWERR = 0x325 + HDIO_SET_PIO_MODE = 0x327 + HDIO_SET_QDMA = 0x32e + HDIO_SET_UNMASKINTR = 0x322 + HDIO_SET_WCACHE = 0x32b + HDIO_SET_XFER = 0x306 + HDIO_TRISTATE_HWIF = 0x31b + HDIO_UNREGISTER_HWIF = 0x32a + HOSTFS_SUPER_MAGIC = 0xc0ffee + HPFS_SUPER_MAGIC = 0xf995e849 + HUGETLBFS_MAGIC = 0x958458f6 + IBSHIFT = 0x10 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xa + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MASK_CREATE = 0x10000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERNET = 0x8f + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_L2TP = 0x73 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MPTCP = 0x106 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_ALL = 0x1d + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_ROUTER_ALERT_ISOLATE = 0x1e + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISOFS_SUPER_MAGIC = 0x9660 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + JFFS2_SUPER_MAGIC = 0x72b6 + KEXEC_ARCH_386 = 0x30000 + KEXEC_ARCH_68K = 0x40000 + KEXEC_ARCH_AARCH64 = 0xb70000 + KEXEC_ARCH_ARM = 0x280000 + KEXEC_ARCH_DEFAULT = 0x0 + KEXEC_ARCH_IA_64 = 0x320000 + KEXEC_ARCH_MASK = 0xffff0000 + KEXEC_ARCH_MIPS = 0x80000 + KEXEC_ARCH_MIPS_LE = 0xa0000 + KEXEC_ARCH_PARISC = 0xf0000 + KEXEC_ARCH_PPC = 0x140000 + KEXEC_ARCH_PPC64 = 0x150000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 + KEXEC_ON_CRASH = 0x1 + KEXEC_PRESERVE_CONTEXT = 0x2 + KEXEC_SEGMENT_MAX = 0x10 + KEYCTL_ASSUME_AUTHORITY = 0x10 + KEYCTL_CAPABILITIES = 0x1f + KEYCTL_CAPS0_BIG_KEY = 0x10 + KEYCTL_CAPS0_CAPABILITIES = 0x1 + KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 + KEYCTL_CAPS0_INVALIDATE = 0x20 + KEYCTL_CAPS0_MOVE = 0x80 + KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 + KEYCTL_CAPS0_PUBLIC_KEY = 0x8 + KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 + KEYCTL_CAPS1_NOTIFICATIONS = 0x4 + KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 + KEYCTL_CAPS1_NS_KEY_TAG = 0x2 + KEYCTL_CHOWN = 0x4 + KEYCTL_CLEAR = 0x7 + KEYCTL_DESCRIBE = 0x6 + KEYCTL_DH_COMPUTE = 0x17 + KEYCTL_GET_KEYRING_ID = 0x0 + KEYCTL_GET_PERSISTENT = 0x16 + KEYCTL_GET_SECURITY = 0x11 + KEYCTL_INSTANTIATE = 0xc + KEYCTL_INSTANTIATE_IOV = 0x14 + KEYCTL_INVALIDATE = 0x15 + KEYCTL_JOIN_SESSION_KEYRING = 0x1 + KEYCTL_LINK = 0x8 + KEYCTL_MOVE = 0x1e + KEYCTL_MOVE_EXCL = 0x1 + KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c + KEYCTL_READ = 0xb + KEYCTL_REJECT = 0x13 + KEYCTL_RESTRICT_KEYRING = 0x1d + KEYCTL_REVOKE = 0x3 + KEYCTL_SEARCH = 0xa + KEYCTL_SESSION_TO_PARENT = 0x12 + KEYCTL_SETPERM = 0x5 + KEYCTL_SET_REQKEY_KEYRING = 0xe + KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 + KEYCTL_UNLINK = 0x9 + KEYCTL_UPDATE = 0x2 + KEYCTL_WATCH_KEY = 0x20 + KEY_REQKEY_DEFL_DEFAULT = 0x0 + KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 + KEY_REQKEY_DEFL_NO_CHANGE = -0x1 + KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 + KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 + KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 + KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 + KEY_REQKEY_DEFL_USER_KEYRING = 0x4 + KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 + KEY_SPEC_GROUP_KEYRING = -0x6 + KEY_SPEC_PROCESS_KEYRING = -0x2 + KEY_SPEC_REQKEY_AUTH_KEY = -0x7 + KEY_SPEC_REQUESTOR_KEYRING = -0x8 + KEY_SPEC_SESSION_KEYRING = -0x3 + KEY_SPEC_THREAD_KEYRING = -0x1 + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + LOOP_CLR_FD = 0x4c01 + LOOP_CTL_ADD = 0x4c80 + LOOP_CTL_GET_FREE = 0x4c82 + LOOP_CTL_REMOVE = 0x4c81 + LOOP_GET_STATUS = 0x4c03 + LOOP_GET_STATUS64 = 0x4c05 + LOOP_SET_BLOCK_SIZE = 0x4c09 + LOOP_SET_CAPACITY = 0x4c07 + LOOP_SET_DIRECT_IO = 0x4c08 + LOOP_SET_FD = 0x4c00 + LOOP_SET_STATUS = 0x4c02 + LOOP_SET_STATUS64 = 0x4c04 + LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 + LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc + LO_KEY_SIZE = 0x20 + LO_NAME_SIZE = 0x40 + MADV_COLD = 0x14 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0x15 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x0 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x2a + MCAST_JOIN_SOURCE_GROUP = 0x2e + MCAST_LEAVE_GROUP = 0x2d + MCAST_LEAVE_SOURCE_GROUP = 0x2f + MCAST_MSFILTER = 0x30 + MCAST_UNBLOCK_SOURCE = 0x2c + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0x3f + MFD_HUGE_SHIFT = 0x1a + MINIX2_SUPER_MAGIC = 0x2468 + MINIX2_SUPER_MAGIC2 = 0x2478 + MINIX3_SUPER_MAGIC = 0x4d5a + MINIX_SUPER_MAGIC = 0x137f + MINIX_SUPER_MAGIC2 = 0x138f + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MSDOS_SUPER_MAGIC = 0x4d44 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_BORN = 0x20000000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOREMOTELOCK = 0x8000000 + MS_NOSEC = 0x10000000 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SUBMOUNT = 0x4000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + MS_VERBOSE = 0x8000 + MTD_INODE_FS_MAGIC = 0x11307854 + NAME_MAX = 0xff + NCP_SUPER_MAGIC = 0x564c + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NETNSA_MAX = 0x5 + NETNSA_NSID_NOT_ASSIGNED = -0x1 + NFNETLINK_V0 = 0x0 + NFNLGRP_ACCT_QUOTA = 0x8 + NFNLGRP_CONNTRACK_DESTROY = 0x3 + NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 + NFNLGRP_CONNTRACK_EXP_NEW = 0x4 + NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 + NFNLGRP_CONNTRACK_NEW = 0x1 + NFNLGRP_CONNTRACK_UPDATE = 0x2 + NFNLGRP_MAX = 0x9 + NFNLGRP_NFTABLES = 0x7 + NFNLGRP_NFTRACE = 0x9 + NFNLGRP_NONE = 0x0 + NFNL_BATCH_MAX = 0x1 + NFNL_MSG_BATCH_BEGIN = 0x10 + NFNL_MSG_BATCH_END = 0x11 + NFNL_NFA_NEST = 0x8000 + NFNL_SUBSYS_ACCT = 0x7 + NFNL_SUBSYS_COUNT = 0xc + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_IPSET = 0x6 + NFNL_SUBSYS_NFTABLES = 0xa + NFNL_SUBSYS_NFT_COMPAT = 0xb + NFNL_SUBSYS_NONE = 0x0 + NFNL_SUBSYS_OSF = 0x5 + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CAPPED = 0x100 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NSFS_MAGIC = 0x6e736673 + OCFS2_SUPER_MAGIC = 0x7461636f + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLRET = 0x20 + ONOCR = 0x10 + OPENPROM_SUPER_MAGIC = 0x9fa1 + OPOST = 0x1 + OVERLAYFS_SUPER_MAGIC = 0x794c7630 + O_ACCMODE = 0x3 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PIPEFS_MAGIC = 0x50495045 + PPC_CMM_MAGIC = 0xc7571590 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_IO_FLUSHER = 0x3a + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_PAC_APDAKEY = 0x4 + PR_PAC_APDBKEY = 0x8 + PR_PAC_APGAKEY = 0x10 + PR_PAC_APIAKEY = 0x1 + PR_PAC_APIBKEY = 0x2 + PR_PAC_RESET_KEYS = 0x36 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_IO_FLUSHER = 0x39 + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_TAGGED_ADDR_CTRL = 0x37 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SPEC_DISABLE = 0x4 + PR_SPEC_DISABLE_NOEXEC = 0x10 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_TAGGED_ADDR_ENABLE = 0x1 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 + PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSCALL_INFO_ENTRY = 0x1 + PTRACE_SYSCALL_INFO_EXIT = 0x2 + PTRACE_SYSCALL_INFO_NONE = 0x0 + PTRACE_SYSCALL_INFO_SECCOMP = 0x3 + PTRACE_TRACEME = 0x0 + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RDTGROUP_SUPER_MAGIC = 0x7655821 + REISERFS_SUPER_MAGIC = 0x52654973 + RENAME_EXCHANGE = 0x2 + RENAME_NOREPLACE = 0x1 + RENAME_WHITEOUT = 0x4 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_LOCKS = 0xa + RLIMIT_MSGQUEUE = 0xc + RLIMIT_NICE = 0xd + RLIMIT_RTPRIO = 0xe + RLIMIT_RTTIME = 0xf + RLIMIT_SIGPENDING = 0xb + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1e + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_IRQF = 0x80 + RTC_MAX_FREQ = 0x2000 + RTC_PF = 0x40 + RTC_UF = 0x10 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELVLAN = 0x71 + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_OFFLOAD = 0x4000 + RTM_F_PREFIX = 0x800 + RTM_F_TRAP = 0x8000 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETLINKPROP = 0x6e + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNEXTHOP = 0x6a + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETVLAN = 0x72 + RTM_MAX = 0x73 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNSID = 0x58 + RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x19 + RTM_NR_MSGTYPES = 0x64 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x19 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + RWF_APPEND = 0x10 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 + RWF_NOWAIT = 0x8 + RWF_SUPPORTED = 0x1f + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECURITYFS_MAGIC = 0x73636673 + SELINUX_MAGIC = 0xf97cff8c + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGETLINKNAME = 0x89e0 + SIOCGETNODEID = 0x89e1 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPPPCSTATS = 0x89f2 + SIOCGPPPSTATS = 0x89f0 + SIOCGPPPVER = 0x89f1 + SIOCGRARP = 0x8961 + SIOCGSKNS = 0x894c + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCGSTAMPNS_OLD = 0x8907 + SIOCGSTAMP_OLD = 0x8906 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb + SMART_DISABLE = 0xd9 + SMART_ENABLE = 0xd8 + SMART_HCYL_PASS = 0xc2 + SMART_IMMEDIATE_OFFLINE = 0xd4 + SMART_LCYL_PASS = 0x4f + SMART_READ_LOG_SECTOR = 0xd5 + SMART_READ_THRESHOLDS = 0xd1 + SMART_READ_VALUES = 0xd0 + SMART_SAVE = 0xd3 + SMART_STATUS = 0xda + SMART_WRITE_LOG_SECTOR = 0xd6 + SMART_WRITE_THRESHOLDS = 0xd7 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_DCCP = 0x6 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x1000 + SO_ATTACH_FILTER = 0x1a + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 + SO_EE_CODE_TXTIME_MISSED = 0x2 + SO_EE_CODE_ZEROCOPY_COPIED = 0x1 + SO_EE_ORIGIN_ICMP = 0x2 + SO_EE_ORIGIN_ICMP6 = 0x3 + SO_EE_ORIGIN_LOCAL = 0x1 + SO_EE_ORIGIN_NONE = 0x0 + SO_EE_ORIGIN_TIMESTAMPING = 0x4 + SO_EE_ORIGIN_TXSTATUS = 0x4 + SO_EE_ORIGIN_TXTIME = 0x6 + SO_EE_ORIGIN_ZEROCOPY = 0x5 + SO_GET_FILTER = 0x1a + SO_NO_CHECK = 0xb + SO_PEERNAME = 0x1c + SO_PRIORITY = 0xc + SO_TIMESTAMP = 0x1d + SO_TIMESTAMP_OLD = 0x1d + SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 + SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 + SO_VM_SOCKETS_BUFFER_SIZE = 0x0 + SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 + SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 + SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 + SO_VM_SOCKETS_TRUSTED = 0x5 + SPLICE_F_GIFT = 0x8 + SPLICE_F_MORE = 0x4 + SPLICE_F_MOVE = 0x1 + SPLICE_F_NONBLOCK = 0x2 + SQUASHFS_MAGIC = 0x73717368 + STACK_END_MAGIC = 0x57ac6e9d + STATX_ALL = 0xfff + STATX_ATIME = 0x20 + STATX_ATTR_APPEND = 0x20 + STATX_ATTR_AUTOMOUNT = 0x1000 + STATX_ATTR_COMPRESSED = 0x4 + STATX_ATTR_DAX = 0x2000 + STATX_ATTR_ENCRYPTED = 0x800 + STATX_ATTR_IMMUTABLE = 0x10 + STATX_ATTR_MOUNT_ROOT = 0x2000 + STATX_ATTR_NODUMP = 0x40 + STATX_ATTR_VERITY = 0x100000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 + SYNC_FILE_RANGE_WRITE = 0x2 + SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 + SYSFS_MAGIC = 0x62656572 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TASKSTATS_CMD_ATTR_MAX = 0x4 + TASKSTATS_CMD_MAX = 0x2 + TASKSTATS_GENL_NAME = "TASKSTATS" + TASKSTATS_GENL_VERSION = 0x1 + TASKSTATS_TYPE_MAX = 0x6 + TASKSTATS_VERSION = 0xa + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CM_INQ = 0x24 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_INQ = 0x24 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OFF = 0x0 + TCP_REPAIR_OFF_NO_WP = -0x1 + TCP_REPAIR_ON = 0x1 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_TX_DELAY = 0x25 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCP_ZEROCOPY_RECEIVE = 0x23 + TFD_TIMER_ABSTIME = 0x1 + TFD_TIMER_CANCEL_ON_SET = 0x2 + TIMER_ABSTIME = 0x1 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RTS = 0x4 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIPC_ADDR_ID = 0x3 + TIPC_ADDR_MCAST = 0x1 + TIPC_ADDR_NAME = 0x2 + TIPC_ADDR_NAMESEQ = 0x1 + TIPC_AEAD_ALG_NAME = 0x20 + TIPC_AEAD_KEYLEN_MAX = 0x24 + TIPC_AEAD_KEYLEN_MIN = 0x14 + TIPC_AEAD_KEY_SIZE_MAX = 0x48 + TIPC_CFG_SRV = 0x0 + TIPC_CLUSTER_BITS = 0xc + TIPC_CLUSTER_MASK = 0xfff000 + TIPC_CLUSTER_OFFSET = 0xc + TIPC_CLUSTER_SIZE = 0xfff + TIPC_CONN_SHUTDOWN = 0x5 + TIPC_CONN_TIMEOUT = 0x82 + TIPC_CRITICAL_IMPORTANCE = 0x3 + TIPC_DESTNAME = 0x3 + TIPC_DEST_DROPPABLE = 0x81 + TIPC_ERRINFO = 0x1 + TIPC_ERR_NO_NAME = 0x1 + TIPC_ERR_NO_NODE = 0x3 + TIPC_ERR_NO_PORT = 0x2 + TIPC_ERR_OVERLOAD = 0x4 + TIPC_GROUP_JOIN = 0x87 + TIPC_GROUP_LEAVE = 0x88 + TIPC_GROUP_LOOPBACK = 0x1 + TIPC_GROUP_MEMBER_EVTS = 0x2 + TIPC_HIGH_IMPORTANCE = 0x2 + TIPC_IMPORTANCE = 0x7f + TIPC_LINK_STATE = 0x2 + TIPC_LOW_IMPORTANCE = 0x0 + TIPC_MAX_BEARER_NAME = 0x20 + TIPC_MAX_IF_NAME = 0x10 + TIPC_MAX_LINK_NAME = 0x44 + TIPC_MAX_MEDIA_NAME = 0x10 + TIPC_MAX_USER_MSG_SIZE = 0x101d0 + TIPC_MCAST_BROADCAST = 0x85 + TIPC_MCAST_REPLICAST = 0x86 + TIPC_MEDIUM_IMPORTANCE = 0x1 + TIPC_NODEID_LEN = 0x10 + TIPC_NODELAY = 0x8a + TIPC_NODE_BITS = 0xc + TIPC_NODE_MASK = 0xfff + TIPC_NODE_OFFSET = 0x0 + TIPC_NODE_RECVQ_DEPTH = 0x83 + TIPC_NODE_SIZE = 0xfff + TIPC_NODE_STATE = 0x0 + TIPC_OK = 0x0 + TIPC_PUBLISHED = 0x1 + TIPC_RESERVED_TYPES = 0x40 + TIPC_RETDATA = 0x2 + TIPC_SERVICE_ADDR = 0x2 + TIPC_SERVICE_RANGE = 0x1 + TIPC_SOCKET_ADDR = 0x3 + TIPC_SOCK_RECVQ_DEPTH = 0x84 + TIPC_SOCK_RECVQ_USED = 0x89 + TIPC_SRC_DROPPABLE = 0x80 + TIPC_SUBSCR_TIMEOUT = 0x3 + TIPC_SUB_CANCEL = 0x4 + TIPC_SUB_PORTS = 0x1 + TIPC_SUB_SERVICE = 0x2 + TIPC_TOP_SRV = 0x1 + TIPC_WAIT_FOREVER = 0xffffffff + TIPC_WITHDRAWN = 0x2 + TIPC_ZONE_BITS = 0x8 + TIPC_ZONE_CLUSTER_MASK = 0xfffff000 + TIPC_ZONE_MASK = 0xff000000 + TIPC_ZONE_OFFSET = 0x18 + TIPC_ZONE_SCOPE = 0x1 + TIPC_ZONE_SIZE = 0xff + TMPFS_MAGIC = 0x1021994 + TPACKET_ALIGNMENT = 0x10 + TPACKET_HDRLEN = 0x34 + TP_STATUS_AVAILABLE = 0x0 + TP_STATUS_BLK_TMO = 0x20 + TP_STATUS_COPY = 0x2 + TP_STATUS_CSUMNOTREADY = 0x8 + TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_KERNEL = 0x0 + TP_STATUS_LOSING = 0x4 + TP_STATUS_SENDING = 0x2 + TP_STATUS_SEND_REQUEST = 0x1 + TP_STATUS_TS_RAW_HARDWARE = 0x80000000 + TP_STATUS_TS_SOFTWARE = 0x20000000 + TP_STATUS_TS_SYS_HARDWARE = 0x40000000 + TP_STATUS_USER = 0x1 + TP_STATUS_VLAN_TPID_VALID = 0x40 + TP_STATUS_VLAN_VALID = 0x10 + TP_STATUS_WRONG_FORMAT = 0x4 + TRACEFS_MAGIC = 0x74726163 + TS_COMM_LEN = 0x20 + UDF_SUPER_MAGIC = 0x15013346 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_LOCAL = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VM_SOCKETS_INVALID_VERSION = 0xffffffff + VQUIT = 0x1 + VT0 = 0x0 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WDIOC_SETPRETIMEOUT = 0xc0045708 + WDIOC_SETTIMEOUT = 0xc0045706 + WEXITED = 0x4 + WIN_ACKMEDIACHANGE = 0xdb + WIN_CHECKPOWERMODE1 = 0xe5 + WIN_CHECKPOWERMODE2 = 0x98 + WIN_DEVICE_RESET = 0x8 + WIN_DIAGNOSE = 0x90 + WIN_DOORLOCK = 0xde + WIN_DOORUNLOCK = 0xdf + WIN_DOWNLOAD_MICROCODE = 0x92 + WIN_FLUSH_CACHE = 0xe7 + WIN_FLUSH_CACHE_EXT = 0xea + WIN_FORMAT = 0x50 + WIN_GETMEDIASTATUS = 0xda + WIN_IDENTIFY = 0xec + WIN_IDENTIFY_DMA = 0xee + WIN_IDLEIMMEDIATE = 0xe1 + WIN_INIT = 0x60 + WIN_MEDIAEJECT = 0xed + WIN_MULTREAD = 0xc4 + WIN_MULTREAD_EXT = 0x29 + WIN_MULTWRITE = 0xc5 + WIN_MULTWRITE_EXT = 0x39 + WIN_NOP = 0x0 + WIN_PACKETCMD = 0xa0 + WIN_PIDENTIFY = 0xa1 + WIN_POSTBOOT = 0xdc + WIN_PREBOOT = 0xdd + WIN_QUEUED_SERVICE = 0xa2 + WIN_READ = 0x20 + WIN_READDMA = 0xc8 + WIN_READDMA_EXT = 0x25 + WIN_READDMA_ONCE = 0xc9 + WIN_READDMA_QUEUED = 0xc7 + WIN_READDMA_QUEUED_EXT = 0x26 + WIN_READ_BUFFER = 0xe4 + WIN_READ_EXT = 0x24 + WIN_READ_LONG = 0x22 + WIN_READ_LONG_ONCE = 0x23 + WIN_READ_NATIVE_MAX = 0xf8 + WIN_READ_NATIVE_MAX_EXT = 0x27 + WIN_READ_ONCE = 0x21 + WIN_RECAL = 0x10 + WIN_RESTORE = 0x10 + WIN_SECURITY_DISABLE = 0xf6 + WIN_SECURITY_ERASE_PREPARE = 0xf3 + WIN_SECURITY_ERASE_UNIT = 0xf4 + WIN_SECURITY_FREEZE_LOCK = 0xf5 + WIN_SECURITY_SET_PASS = 0xf1 + WIN_SECURITY_UNLOCK = 0xf2 + WIN_SEEK = 0x70 + WIN_SETFEATURES = 0xef + WIN_SETIDLE1 = 0xe3 + WIN_SETIDLE2 = 0x97 + WIN_SETMULT = 0xc6 + WIN_SET_MAX = 0xf9 + WIN_SET_MAX_EXT = 0x37 + WIN_SLEEPNOW1 = 0xe6 + WIN_SLEEPNOW2 = 0x99 + WIN_SMART = 0xb0 + WIN_SPECIFY = 0x91 + WIN_SRST = 0x8 + WIN_STANDBY = 0xe2 + WIN_STANDBY2 = 0x96 + WIN_STANDBYNOW1 = 0xe0 + WIN_STANDBYNOW2 = 0x94 + WIN_VERIFY = 0x40 + WIN_VERIFY_EXT = 0x42 + WIN_VERIFY_ONCE = 0x41 + WIN_WRITE = 0x30 + WIN_WRITEDMA = 0xca + WIN_WRITEDMA_EXT = 0x35 + WIN_WRITEDMA_ONCE = 0xcb + WIN_WRITEDMA_QUEUED = 0xcc + WIN_WRITEDMA_QUEUED_EXT = 0x36 + WIN_WRITE_BUFFER = 0xe8 + WIN_WRITE_EXT = 0x34 + WIN_WRITE_LONG = 0x32 + WIN_WRITE_LONG_ONCE = 0x33 + WIN_WRITE_ONCE = 0x31 + WIN_WRITE_SAME = 0xe9 + WIN_WRITE_VERIFY = 0x3c + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + XDP_COPY = 0x2 + XDP_FLAGS_DRV_MODE = 0x4 + XDP_FLAGS_HW_MODE = 0x8 + XDP_FLAGS_MASK = 0x1f + XDP_FLAGS_MODES = 0xe + XDP_FLAGS_REPLACE = 0x10 + XDP_FLAGS_SKB_MODE = 0x2 + XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 + XDP_MMAP_OFFSETS = 0x1 + XDP_OPTIONS = 0x8 + XDP_OPTIONS_ZEROCOPY = 0x1 + XDP_PACKET_HEADROOM = 0x100 + XDP_PGOFF_RX_RING = 0x0 + XDP_PGOFF_TX_RING = 0x80000000 + XDP_RING_NEED_WAKEUP = 0x1 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + XDP_TX_RING = 0x3 + XDP_UMEM_COMPLETION_RING = 0x6 + XDP_UMEM_FILL_RING = 0x5 + XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 + XDP_UMEM_PGOFF_FILL_RING = 0x100000000 + XDP_UMEM_REG = 0x4 + XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + Z3FOLD_MAGIC = 0x33 + ZONEFS_MAGIC = 0x5a4f4653 + ZSMALLOC_MAGIC = 0x58295829 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EAGAIN = syscall.Errno(0xb) + EBADF = syscall.Errno(0x9) + EBUSY = syscall.Errno(0x10) + ECHILD = syscall.Errno(0xa) + EDOM = syscall.Errno(0x21) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISDIR = syscall.Errno(0x15) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + ENFILE = syscall.Errno(0x17) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOMEM = syscall.Errno(0xc) + ENOSPC = syscall.Errno(0x1c) + ENOTBLK = syscall.Errno(0xf) + ENOTDIR = syscall.Errno(0x14) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EPERM = syscall.Errno(0x1) + EPIPE = syscall.Errno(0x20) + ERANGE = syscall.Errno(0x22) + EROFS = syscall.Errno(0x1e) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ETXTBSY = syscall.Errno(0x1a) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) +) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index fcf5796..11b25f6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -11,2784 +11,491 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x20 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x8000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - X86_FXSR_MAGIC = 0x0 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x8000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + X86_FXSR_MAGIC = 0x0 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2797,23 +504,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2830,8 +529,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2839,99 +536,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 5bcf3db..f92cff6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -11,2784 +11,491 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FP_XSTATE_MAGIC2 = 0x46505845 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_32BIT = 0x40 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ARCH_PRCTL = 0x1e - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPXREGS = 0x12 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPXREGS = 0x13 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SINGLEBLOCK = 0x21 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2797,23 +504,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2830,8 +529,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2839,99 +536,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 3e02dcf..12bcbf8 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -11,2790 +11,497 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xc - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0xd - F_SETLK64 = 0xd - F_SETLKW = 0xe - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x20 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x20000 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8008743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40087446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x400c744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40087447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETCRUNCHREGS = 0x19 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFDPIC = 0x1f - PTRACE_GETFDPIC_EXEC = 0x0 - PTRACE_GETFDPIC_INTERP = 0x1 - PTRACE_GETFPREGS = 0xe - PTRACE_GETHBPREGS = 0x1d - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVFPREGS = 0x1b - PTRACE_GETWMMXREGS = 0x12 - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x16 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETCRUNCHREGS = 0x1a - PTRACE_SETFPREGS = 0xf - PTRACE_SETHBPREGS = 0x1e - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVFPREGS = 0x1c - PTRACE_SETWMMXREGS = 0x13 - PTRACE_SET_SYSCALL = 0x17 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - PT_DATA_ADDR = 0x10004 - PT_TEXT_ADDR = 0x10000 - PT_TEXT_END_ADDR = 0x10008 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8004700d - RTC_EPOCH_SET = 0x4004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8004700b - RTC_IRQP_SET = 0x4004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x801c7011 - RTC_PLL_SET = 0x401c7012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x400854d5 - TUNDETACHFILTER = 0x400854d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x800854db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x20000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETFDPIC = 0x1f + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 + PTRACE_GETFPREGS = 0xe + PTRACE_GETHBPREGS = 0x1d + PTRACE_GETVFPREGS = 0x1b + PTRACE_GETWMMXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x16 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETCRUNCHREGS = 0x1a + PTRACE_SETFPREGS = 0xf + PTRACE_SETHBPREGS = 0x1e + PTRACE_SETVFPREGS = 0x1c + PTRACE_SETWMMXREGS = 0x13 + PTRACE_SET_SYSCALL = 0x17 + PT_DATA_ADDR = 0x10004 + PT_TEXT_ADDR = 0x10000 + PT_TEXT_END_ADDR = 0x10008 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2803,23 +510,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2836,8 +535,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2845,99 +542,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 2293f8b..84f71e9 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -11,2777 +11,485 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ESR_MAGIC = 0x45535201 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - EXTRA_MAGIC = 0x45585401 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FPSIMD_MAGIC = 0x46508001 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x10000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_SYSEMU = 0x1f - PTRACE_SYSEMU_SINGLESTEP = 0x20 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SVE_MAGIC = 0x53564501 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 + EXTRA_MAGIC = 0x45585401 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FPSIMD_MAGIC = 0x46508001 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PROT_BTI = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + SVE_MAGIC = 0x53564501 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2790,23 +498,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2823,8 +523,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2832,99 +530,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 57742ea..eeadea9 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -11,2786 +11,493 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x20 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2799,12 +506,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2812,11 +515,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2833,8 +532,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2842,100 +539,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 33bfa6c..0be6c4c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -11,2786 +11,493 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2799,12 +506,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2812,11 +515,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2833,8 +532,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2842,100 +539,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 89fd414..0880b74 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -11,2786 +11,493 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0xe - F_GETLK64 = 0xe - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x0 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2799,12 +506,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2812,11 +515,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2833,8 +532,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2842,100 +539,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index aabe5e4..c8a6662 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -11,2786 +11,493 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x80 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x21 - F_GETLK64 = 0x21 - F_GETOWN = 0x17 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x22 - F_SETLK64 = 0x22 - F_SETLKW = 0x23 - F_SETLKW64 = 0x23 - F_SETOWN = 0x18 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x100 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x80 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x800 - MAP_ANONYMOUS = 0x800 - MAP_DENYWRITE = 0x2000 - MAP_EXECUTABLE = 0x4000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x1000 - MAP_HUGETLB = 0x80000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x8000 - MAP_NONBLOCK = 0x20000 - MAP_NORESERVE = 0x400 - MAP_POPULATE = 0x10000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x800 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x40000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x20 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x1000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x100 - O_DIRECT = 0x8000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x10 - O_EXCL = 0x400 - O_FSYNC = 0x4010 - O_LARGEFILE = 0x2000 - O_NDELAY = 0x80 - O_NOATIME = 0x40000 - O_NOCTTY = 0x800 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x80 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x4010 - O_SYNC = 0x4010 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40042407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc004240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80042406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4008743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80087446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x800c744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80087447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_GET_THREAD_AREA = 0x19 - PTRACE_GET_THREAD_AREA_3264 = 0xc4 - PTRACE_GET_WATCH_REGS = 0xd0 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_3264 = 0xc1 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_3264 = 0xc0 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_3264 = 0xc3 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_3264 = 0xc2 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SET_THREAD_AREA = 0x1a - PTRACE_SET_WATCH_REGS = 0xd1 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x6 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x9 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x5 - RLIMIT_NPROC = 0x8 - RLIMIT_RSS = 0x7 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4004700d - RTC_EPOCH_SET = 0x8004700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4004700b - RTC_IRQP_SET = 0x8004700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x401c7011 - RTC_PLL_SET = 0x801c7012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x40047307 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x40047309 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x467f - SIOCOUTQ = 0x7472 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x80047308 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x1 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x80 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x2 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1009 - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x1004 - SO_RCVTIMEO = 0x1006 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x1006 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x1f - SO_SNDLOWAT = 0x1003 - SO_SNDTIMEO = 0x1005 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x1005 - SO_STYLE = 0x1008 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x5407 - TCGETA = 0x5401 - TCGETS = 0x540d - TCGETS2 = 0x4030542a - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x5410 - TCSBRK = 0x5405 - TCSBRKP = 0x5486 - TCSETA = 0x5402 - TCSETAF = 0x5404 - TCSETAW = 0x5403 - TCSETS = 0x540e - TCSETS2 = 0x8030542b - TCSETSF = 0x5410 - TCSETSF2 = 0x8030542d - TCSETSW = 0x540f - TCSETSW2 = 0x8030542c - TCXONC = 0x5406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x80047478 - TIOCEXCL = 0x740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x7400 - TIOCGETP = 0x7408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x5492 - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x548b - TIOCGLTC = 0x7474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x4020542e - TIOCGSERIAL = 0x5484 - TIOCGSID = 0x7416 - TIOCGSOFTCAR = 0x5481 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x467f - TIOCLINUX = 0x5483 - TIOCMBIC = 0x741c - TIOCMBIS = 0x741b - TIOCMGET = 0x741d - TIOCMIWAIT = 0x5491 - TIOCMSET = 0x741a - TIOCM_CAR = 0x100 - TIOCM_CD = 0x100 - TIOCM_CTS = 0x40 - TIOCM_DSR = 0x400 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x200 - TIOCM_RNG = 0x200 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x20 - TIOCM_ST = 0x10 - TIOCNOTTY = 0x5471 - TIOCNXCL = 0x740e - TIOCOUTQ = 0x7472 - TIOCPKT = 0x5470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x5480 - TIOCSERCONFIG = 0x5488 - TIOCSERGETLSR = 0x548e - TIOCSERGETMULTI = 0x548f - TIOCSERGSTRUCT = 0x548d - TIOCSERGWILD = 0x5489 - TIOCSERSETMULTI = 0x5490 - TIOCSERSWILD = 0x548a - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x7401 - TIOCSETN = 0x740a - TIOCSETP = 0x7409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x548c - TIOCSLTC = 0x7475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0xc020542f - TIOCSSERIAL = 0x5485 - TIOCSSOFTCAR = 0x5482 - TIOCSTI = 0x5472 - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x8000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x800854d5 - TUNDETACHFILTER = 0x800854d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x400854db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x10 - VEOL = 0x11 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VSWTCH = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x20 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x7d) EADDRNOTAVAIL = syscall.Errno(0x7e) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x7c) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x95) EBADE = syscall.Errno(0x32) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x51) EBADMSG = syscall.Errno(0x4d) EBADR = syscall.Errno(0x33) EBADRQC = syscall.Errno(0x36) EBADSLT = syscall.Errno(0x37) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x9e) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x25) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x82) @@ -2799,12 +506,8 @@ const ( EDEADLK = syscall.Errno(0x2d) EDEADLOCK = syscall.Errno(0x38) EDESTADDRREQ = syscall.Errno(0x60) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x46d) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x93) EHOSTUNREACH = syscall.Errno(0x94) EHWPOISON = syscall.Errno(0xa8) @@ -2812,11 +515,7 @@ const ( EILSEQ = syscall.Errno(0x58) EINIT = syscall.Errno(0x8d) EINPROGRESS = syscall.Errno(0x96) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x85) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x8b) EKEYEXPIRED = syscall.Errno(0xa2) EKEYREJECTED = syscall.Errno(0xa4) @@ -2833,8 +532,6 @@ const ( ELNRNG = syscall.Errno(0x29) ELOOP = syscall.Errno(0x5a) EMEDIUMTYPE = syscall.Errno(0xa0) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x61) EMULTIHOP = syscall.Errno(0x4a) ENAMETOOLONG = syscall.Errno(0x4e) @@ -2842,100 +539,68 @@ const ( ENETDOWN = syscall.Errno(0x7f) ENETRESET = syscall.Errno(0x81) ENETUNREACH = syscall.Errno(0x80) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x35) ENOBUFS = syscall.Errno(0x84) ENOCSI = syscall.Errno(0x2b) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0xa1) ENOLCK = syscall.Errno(0x2e) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x9f) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x23) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x63) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x59) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x86) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x5d) ENOTNAM = syscall.Errno(0x89) ENOTRECOVERABLE = syscall.Errno(0xa6) ENOTSOCK = syscall.Errno(0x5f) ENOTSUP = syscall.Errno(0x7a) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x50) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x7a) EOVERFLOW = syscall.Errno(0x4f) EOWNERDEAD = syscall.Errno(0xa5) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x7b) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x78) EPROTOTYPE = syscall.Errno(0x62) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x52) EREMDEV = syscall.Errno(0x8e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x8c) ERESTART = syscall.Errno(0x5b) ERFKILL = syscall.Errno(0xa7) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x8f) ESOCKTNOSUPPORT = syscall.Errno(0x79) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x97) ESTRPIPE = syscall.Errno(0x5c) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x91) ETOOMANYREFS = syscall.Errno(0x90) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x87) EUNATCH = syscall.Errno(0x2a) EUSERS = syscall.Errno(0x5e) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x34) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x12) SIGCLD = syscall.Signal(0x12) SIGCONT = syscall.Signal(0x19) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x16) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x16) SIGPROF = syscall.Signal(0x1d) SIGPWR = syscall.Signal(0x13) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x17) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x18) SIGTTIN = syscall.Signal(0x1a) SIGTTOU = syscall.Signal(0x1b) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 2722791..97aae63 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -11,2845 +11,553 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x400000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x5 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0xc00 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2858,23 +566,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x3a) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2891,8 +591,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2900,99 +598,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index e33be41..b0c3b06 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -11,2845 +11,553 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x17 - B110 = 0x3 - B115200 = 0x11 - B1152000 = 0x18 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x19 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x1a - B230400 = 0x12 - B2400 = 0xb - B2500000 = 0x1b - B300 = 0x7 - B3000000 = 0x1c - B3500000 = 0x1d - B38400 = 0xf - B4000000 = 0x1e - B460800 = 0x13 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x14 - B57600 = 0x10 - B576000 = 0x15 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x16 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1f - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x8000 - BSDLY = 0x8000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0xff - CBAUDEX = 0x0 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0xff0000 - CLOCAL = 0x8000 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x1000 - CR2 = 0x2000 - CR3 = 0x3000 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x3000 - CREAD = 0x800 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x100 - CS7 = 0x200 - CS8 = 0x300 - CSIGNAL = 0xff - CSIZE = 0x300 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x400 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x40 - ECHOE = 0x2 - ECHOK = 0x4 - ECHOKE = 0x1 - ECHONL = 0x10 - ECHOPRT = 0x20 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x4000 - FFDLY = 0x4000 - FLUSHO = 0x800000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0xc - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0xd - F_SETLKW = 0x7 - F_SETLKW64 = 0xe - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x4000 - IBSHIFT = 0x10 - ICANON = 0x100 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x400 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x80 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x1000 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x400 - IXON = 0x200 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x80 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NL2 = 0x200 - NL3 = 0x300 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x300 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80000000 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x4 - ONLCR = 0x2 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x20000 - O_DIRECTORY = 0x4000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x8000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x404000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x1000 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x2000 - PENDIN = 0x20000000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_SAO = 0x10 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETEVRREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GETVRREGS = 0x12 - PTRACE_GETVSRREGS = 0x1b - PTRACE_GET_DEBUGREG = 0x19 - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETEVRREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SETVRREGS = 0x13 - PTRACE_SETVSRREGS = 0x1c - PTRACE_SET_DEBUGREG = 0x1a - PTRACE_SINGLEBLOCK = 0x100 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_SYSEMU = 0x1d - PTRACE_SYSEMU_SINGLESTEP = 0x1e - PTRACE_TRACEME = 0x0 - PT_CCR = 0x26 - PT_CTR = 0x23 - PT_DAR = 0x29 - PT_DSCR = 0x2c - PT_DSISR = 0x2a - PT_FPR0 = 0x30 - PT_FPSCR = 0x50 - PT_LNK = 0x24 - PT_MSR = 0x21 - PT_NIP = 0x20 - PT_ORIG_R3 = 0x22 - PT_R0 = 0x0 - PT_R1 = 0x1 - PT_R10 = 0xa - PT_R11 = 0xb - PT_R12 = 0xc - PT_R13 = 0xd - PT_R14 = 0xe - PT_R15 = 0xf - PT_R16 = 0x10 - PT_R17 = 0x11 - PT_R18 = 0x12 - PT_R19 = 0x13 - PT_R2 = 0x2 - PT_R20 = 0x14 - PT_R21 = 0x15 - PT_R22 = 0x16 - PT_R23 = 0x17 - PT_R24 = 0x18 - PT_R25 = 0x19 - PT_R26 = 0x1a - PT_R27 = 0x1b - PT_R28 = 0x1c - PT_R29 = 0x1d - PT_R3 = 0x3 - PT_R30 = 0x1e - PT_R31 = 0x1f - PT_R4 = 0x4 - PT_R5 = 0x5 - PT_R6 = 0x6 - PT_R7 = 0x7 - PT_R8 = 0x8 - PT_R9 = 0x9 - PT_REGS_COUNT = 0x2c - PT_RESULT = 0x2b - PT_SOFTE = 0x27 - PT_TRAP = 0x28 - PT_VR0 = 0x52 - PT_VRSAVE = 0x94 - PT_VSCR = 0x93 - PT_VSR0 = 0x96 - PT_VSR31 = 0xd4 - PT_XER = 0x25 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x10 - SO_RCVTIMEO = 0x12 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x12 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x11 - SO_SNDTIMEO = 0x13 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x13 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x400 - TAB2 = 0x800 - TAB3 = 0xc00 - TABDLY = 0xc00 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x2000741f - TCGETA = 0x40147417 - TCGETS = 0x402c7413 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x2000741d - TCSBRKP = 0x5425 - TCSETA = 0x80147418 - TCSETAF = 0x8014741c - TCSETAW = 0x80147419 - TCSETS = 0x802c7414 - TCSETSF = 0x802c7416 - TCSETSW = 0x802c7415 - TCXONC = 0x2000741e - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x40045432 - TIOCGETC = 0x40067412 - TIOCGETD = 0x5424 - TIOCGETP = 0x40067408 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGLTC = 0x40067474 - TIOCGPGRP = 0x40047477 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40045430 - TIOCGPTPEER = 0x20005441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETC = 0x80067411 - TIOCSETD = 0x5423 - TIOCSETN = 0x8006740a - TIOCSETP = 0x80067409 - TIOCSIG = 0x80045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSLTC = 0x80067475 - TIOCSPGRP = 0x80047476 - TIOCSPTLCK = 0x80045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTART = 0x2000746e - TIOCSTI = 0x5412 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x400000 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0x10 - VEOF = 0x4 - VEOL = 0x6 - VEOL2 = 0x8 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x5 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xb - VSTART = 0xd - VSTOP = 0xe - VSUSP = 0xc - VSWTC = 0x9 - VT0 = 0x0 - VT1 = 0x10000 - VTDLY = 0x10000 - VTIME = 0x7 - VWERASE = 0xa - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4000 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0xc00 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2858,23 +566,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x3a) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2891,8 +591,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2900,99 +598,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index b9908d3..0c05181 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -11,2771 +11,478 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2784,23 +491,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2817,8 +516,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2826,99 +523,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 85647f4..0b96bd4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -11,2844 +11,551 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x80000 - EFD_NONBLOCK = 0x800 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x80000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x5 - F_GETLK64 = 0x5 - F_GETOWN = 0x9 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x0 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x6 - F_SETLK64 = 0x6 - F_SETLKW = 0x7 - F_SETLKW64 = 0x7 - F_SETOWN = 0x8 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x2 - F_WRLCK = 0x1 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x80000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x800 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x100 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x2000 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x4000 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_SYNC = 0x80000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x1 - MCL_FUTURE = 0x2 - MCL_ONFAULT = 0x4 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0xb703 - NS_GET_OWNER_UID = 0xb704 - NS_GET_PARENT = 0xb702 - NS_GET_USERNS = 0xb701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x400 - O_ASYNC = 0x2000 - O_CLOEXEC = 0x80000 - O_CREAT = 0x40 - O_DIRECT = 0x4000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x1000 - O_EXCL = 0x80 - O_FSYNC = 0x101000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x800 - O_NOATIME = 0x40000 - O_NOCTTY = 0x100 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x800 - O_PATH = 0x200000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x101000 - O_SYNC = 0x101000 - O_TMPFILE = 0x410000 - O_TRUNC = 0x200 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x2401 - PERF_EVENT_IOC_ENABLE = 0x2400 - PERF_EVENT_IOC_ID = 0x80082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 - PERF_EVENT_IOC_PERIOD = 0x40082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x2402 - PERF_EVENT_IOC_RESET = 0x2403 - PERF_EVENT_IOC_SET_BPF = 0x40042408 - PERF_EVENT_IOC_SET_FILTER = 0x40082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x2405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x4004743d - PPPIOCATTCHAN = 0x40047438 - PPPIOCCONNECT = 0x4004743a - PPPIOCDETACH = 0x4004743c - PPPIOCDISCONN = 0x7439 - PPPIOCGASYNCMAP = 0x80047458 - PPPIOCGCHAN = 0x80047437 - PPPIOCGDEBUG = 0x80047441 - PPPIOCGFLAGS = 0x8004745a - PPPIOCGIDLE = 0x8010743f - PPPIOCGL2TPSTATS = 0x80487436 - PPPIOCGMRU = 0x80047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x80047455 - PPPIOCGUNIT = 0x80047456 - PPPIOCGXASYNCMAP = 0x80207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x40107446 - PPPIOCSASYNCMAP = 0x40047457 - PPPIOCSCOMPRESS = 0x4010744d - PPPIOCSDEBUG = 0x40047440 - PPPIOCSFLAGS = 0x40047459 - PPPIOCSMAXCID = 0x40047451 - PPPIOCSMRRU = 0x4004743b - PPPIOCSMRU = 0x40047452 - PPPIOCSNPMODE = 0x4008744b - PPPIOCSPASS = 0x40107447 - PPPIOCSRASYNCMAP = 0x40047454 - PPPIOCSXASYNCMAP = 0x4020744f - PPPIOCXFERUNIT = 0x744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_DISABLE_TE = 0x5010 - PTRACE_ENABLE_TE = 0x5009 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETREGS = 0xc - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_LAST_BREAK = 0x5006 - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_OLDSETOPTIONS = 0x15 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKDATA_AREA = 0x5003 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKTEXT_AREA = 0x5002 - PTRACE_PEEKUSR = 0x3 - PTRACE_PEEKUSR_AREA = 0x5000 - PTRACE_PEEK_SYSTEM_CALL = 0x5007 - PTRACE_POKEDATA = 0x5 - PTRACE_POKEDATA_AREA = 0x5005 - PTRACE_POKETEXT = 0x4 - PTRACE_POKETEXT_AREA = 0x5004 - PTRACE_POKEUSR = 0x6 - PTRACE_POKEUSR_AREA = 0x5001 - PTRACE_POKE_SYSTEM_CALL = 0x5008 - PTRACE_PROT = 0x15 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLEBLOCK = 0xc - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TE_ABORT_RAND = 0x5011 - PTRACE_TRACEME = 0x0 - PT_ACR0 = 0x90 - PT_ACR1 = 0x94 - PT_ACR10 = 0xb8 - PT_ACR11 = 0xbc - PT_ACR12 = 0xc0 - PT_ACR13 = 0xc4 - PT_ACR14 = 0xc8 - PT_ACR15 = 0xcc - PT_ACR2 = 0x98 - PT_ACR3 = 0x9c - PT_ACR4 = 0xa0 - PT_ACR5 = 0xa4 - PT_ACR6 = 0xa8 - PT_ACR7 = 0xac - PT_ACR8 = 0xb0 - PT_ACR9 = 0xb4 - PT_CR_10 = 0x168 - PT_CR_11 = 0x170 - PT_CR_9 = 0x160 - PT_ENDREGS = 0x1af - PT_FPC = 0xd8 - PT_FPR0 = 0xe0 - PT_FPR1 = 0xe8 - PT_FPR10 = 0x130 - PT_FPR11 = 0x138 - PT_FPR12 = 0x140 - PT_FPR13 = 0x148 - PT_FPR14 = 0x150 - PT_FPR15 = 0x158 - PT_FPR2 = 0xf0 - PT_FPR3 = 0xf8 - PT_FPR4 = 0x100 - PT_FPR5 = 0x108 - PT_FPR6 = 0x110 - PT_FPR7 = 0x118 - PT_FPR8 = 0x120 - PT_FPR9 = 0x128 - PT_GPR0 = 0x10 - PT_GPR1 = 0x18 - PT_GPR10 = 0x60 - PT_GPR11 = 0x68 - PT_GPR12 = 0x70 - PT_GPR13 = 0x78 - PT_GPR14 = 0x80 - PT_GPR15 = 0x88 - PT_GPR2 = 0x20 - PT_GPR3 = 0x28 - PT_GPR4 = 0x30 - PT_GPR5 = 0x38 - PT_GPR6 = 0x40 - PT_GPR7 = 0x48 - PT_GPR8 = 0x50 - PT_GPR9 = 0x58 - PT_IEEE_IP = 0x1a8 - PT_LASTOFF = 0x1a8 - PT_ORIGGPR2 = 0xd0 - PT_PSWADDR = 0x8 - PT_PSWMASK = 0x0 - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x7 - RLIMIT_NPROC = 0x6 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x40085203 - RNDADDTOENTCNT = 0x40045201 - RNDCLEARPOOL = 0x5206 - RNDGETENTCNT = 0x80045200 - RNDGETPOOL = 0x80085202 - RNDRESEEDCRNG = 0x5207 - RNDZAPENTCNT = 0x5204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x7002 - RTC_AIE_ON = 0x7001 - RTC_ALM_READ = 0x80247008 - RTC_ALM_SET = 0x40247007 - RTC_EPOCH_READ = 0x8008700d - RTC_EPOCH_SET = 0x4008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x8008700b - RTC_IRQP_SET = 0x4008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x7006 - RTC_PIE_ON = 0x7005 - RTC_PLL_GET = 0x80207011 - RTC_PLL_SET = 0x40207012 - RTC_RD_TIME = 0x80247009 - RTC_SET_TIME = 0x4024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x7004 - RTC_UIE_ON = 0x7003 - RTC_VL_CLR = 0x7014 - RTC_VL_READ = 0x80047013 - RTC_WIE_OFF = 0x7010 - RTC_WIE_ON = 0x700f - RTC_WKALM_RD = 0x80287010 - RTC_WKALM_SET = 0x4028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x25 - SCM_TIMESTAMPING_OPT_STATS = 0x36 - SCM_TIMESTAMPING_PKTINFO = 0x3a - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x80108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x80108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x541b - SIOCOUTQ = 0x5411 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x80000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x800 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0x1 - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x1e - SO_ATTACH_BPF = 0x32 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x33 - SO_ATTACH_REUSEPORT_EBPF = 0x34 - SO_BINDTODEVICE = 0x19 - SO_BINDTOIFINDEX = 0x3e - SO_BPF_EXTENSIONS = 0x30 - SO_BROADCAST = 0x6 - SO_BSDCOMPAT = 0xe - SO_BUSY_POLL = 0x2e - SO_CNX_ADVICE = 0x35 - SO_COOKIE = 0x39 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x44 - SO_DOMAIN = 0x27 - SO_DONTROUTE = 0x5 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x4 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x31 - SO_INCOMING_NAPI_ID = 0x38 - SO_KEEPALIVE = 0x9 - SO_LINGER = 0xd - SO_LOCK_FILTER = 0x2c - SO_MARK = 0x24 - SO_MAX_PACING_RATE = 0x2f - SO_MEMINFO = 0x37 - SO_NOFCS = 0x2b - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1f - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x26 - SO_RCVBUF = 0x8 - SO_RCVBUFFORCE = 0x21 - SO_RCVLOWAT = 0x12 - SO_RCVTIMEO = 0x14 - SO_RCVTIMEO_NEW = 0x42 - SO_RCVTIMEO_OLD = 0x14 - SO_REUSEADDR = 0x2 - SO_REUSEPORT = 0xf - SO_RXQ_OVFL = 0x28 - SO_SECURITY_AUTHENTICATION = 0x16 - SO_SECURITY_ENCRYPTION_NETWORK = 0x18 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 - SO_SELECT_ERR_QUEUE = 0x2d - SO_SNDBUF = 0x7 - SO_SNDBUFFORCE = 0x20 - SO_SNDLOWAT = 0x13 - SO_SNDTIMEO = 0x15 - SO_SNDTIMEO_NEW = 0x43 - SO_SNDTIMEO_OLD = 0x15 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x25 - SO_TIMESTAMPING_NEW = 0x41 - SO_TIMESTAMPING_OLD = 0x25 - SO_TIMESTAMPNS = 0x23 - SO_TIMESTAMPNS_NEW = 0x40 - SO_TIMESTAMPNS_OLD = 0x23 - SO_TIMESTAMP_NEW = 0x3f - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3d - SO_TYPE = 0x3 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x29 - SO_ZEROCOPY = 0x3c - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x540b - TCGETA = 0x5405 - TCGETS = 0x5401 - TCGETS2 = 0x802c542a - TCGETX = 0x5432 - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x5409 - TCSBRKP = 0x5425 - TCSETA = 0x5406 - TCSETAF = 0x5408 - TCSETAW = 0x5407 - TCSETS = 0x5402 - TCSETS2 = 0x402c542b - TCSETSF = 0x5404 - TCSETSF2 = 0x402c542d - TCSETSW = 0x5403 - TCSETSW2 = 0x402c542c - TCSETX = 0x5433 - TCSETXF = 0x5434 - TCSETXW = 0x5435 - TCXONC = 0x540a - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x5428 - TIOCCONS = 0x541d - TIOCEXCL = 0x540c - TIOCGDEV = 0x80045432 - TIOCGETD = 0x5424 - TIOCGEXCL = 0x80045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x80285442 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x540f - TIOCGPKT = 0x80045438 - TIOCGPTLCK = 0x80045439 - TIOCGPTN = 0x80045430 - TIOCGPTPEER = 0x5441 - TIOCGRS485 = 0x542e - TIOCGSERIAL = 0x541e - TIOCGSID = 0x5429 - TIOCGSOFTCAR = 0x5419 - TIOCGWINSZ = 0x5413 - TIOCINQ = 0x541b - TIOCLINUX = 0x541c - TIOCMBIC = 0x5417 - TIOCMBIS = 0x5416 - TIOCMGET = 0x5415 - TIOCMIWAIT = 0x545c - TIOCMSET = 0x5418 - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x5422 - TIOCNXCL = 0x540d - TIOCOUTQ = 0x5411 - TIOCPKT = 0x5420 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x5427 - TIOCSCTTY = 0x540e - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x5423 - TIOCSIG = 0x40045436 - TIOCSISO7816 = 0xc0285443 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x5410 - TIOCSPTLCK = 0x40045431 - TIOCSRS485 = 0x542f - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x541a - TIOCSTI = 0x5412 - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 - TUNGETFEATURES = 0x800454cf - TUNGETFILTER = 0x801054db - TUNGETIFF = 0x800454d2 - TUNGETSNDBUF = 0x800454d3 - TUNGETVNETBE = 0x800454df - TUNGETVNETHDRSZ = 0x800454d7 - TUNGETVNETLE = 0x800454dd - TUNSETCARRIER = 0x400454e2 - TUNSETDEBUG = 0x400454c9 - TUNSETFILTEREBPF = 0x800454e1 - TUNSETGROUP = 0x400454ce - TUNSETIFF = 0x400454ca - TUNSETIFINDEX = 0x400454da - TUNSETLINK = 0x400454cd - TUNSETNOCSUM = 0x400454c8 - TUNSETOFFLOAD = 0x400454d0 - TUNSETOWNER = 0x400454cc - TUNSETPERSIST = 0x400454cb - TUNSETQUEUE = 0x400454d9 - TUNSETSNDBUF = 0x400454d4 - TUNSETSTEERINGEBPF = 0x800454e0 - TUNSETTXFILTER = 0x400454d1 - TUNSETVNETBE = 0x400454de - TUNSETVNETHDRSZ = 0x400454d8 - TUNSETVNETLE = 0x400454dc - UBI_IOCATT = 0x40186f40 - UBI_IOCDET = 0x40046f41 - UBI_IOCEBCH = 0x40044f02 - UBI_IOCEBER = 0x40044f01 - UBI_IOCEBISMAP = 0x80044f05 - UBI_IOCEBMAP = 0x40084f03 - UBI_IOCEBUNMAP = 0x40044f04 - UBI_IOCMKVOL = 0x40986f00 - UBI_IOCRMVOL = 0x40046f01 - UBI_IOCRNVOL = 0x51106f03 - UBI_IOCRPEB = 0x40046f04 - UBI_IOCRSVOL = 0x400c6f02 - UBI_IOCSETVOLPROP = 0x40104f06 - UBI_IOCSPEB = 0x40046f05 - UBI_IOCVOLCRBLK = 0x40804f07 - UBI_IOCVOLRMBLK = 0x4f08 - UBI_IOCVOLUP = 0x40084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x80045702 - WDIOC_GETPRETIMEOUT = 0x80045709 - WDIOC_GETSTATUS = 0x80045701 - WDIOC_GETSUPPORT = 0x80285700 - WDIOC_GETTEMP = 0x80045703 - WDIOC_GETTIMELEFT = 0x8004570a - WDIOC_GETTIMEOUT = 0x80045707 - WDIOC_KEEPALIVE = 0x80045705 - WDIOC_SETOPTIONS = 0x80045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_GET_LAST_BREAK = 0x5006 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_AREA = 0x5003 + PTRACE_PEEKTEXT_AREA = 0x5002 + PTRACE_PEEKUSR_AREA = 0x5000 + PTRACE_PEEK_SYSTEM_CALL = 0x5007 + PTRACE_POKEDATA_AREA = 0x5005 + PTRACE_POKETEXT_AREA = 0x5004 + PTRACE_POKEUSR_AREA = 0x5001 + PTRACE_POKE_SYSTEM_CALL = 0x5008 + PTRACE_PROT = 0x15 + PTRACE_SINGLEBLOCK = 0xc + PTRACE_TE_ABORT_RAND = 0x5011 + PT_ACR0 = 0x90 + PT_ACR1 = 0x94 + PT_ACR10 = 0xb8 + PT_ACR11 = 0xbc + PT_ACR12 = 0xc0 + PT_ACR13 = 0xc4 + PT_ACR14 = 0xc8 + PT_ACR15 = 0xcc + PT_ACR2 = 0x98 + PT_ACR3 = 0x9c + PT_ACR4 = 0xa0 + PT_ACR5 = 0xa4 + PT_ACR6 = 0xa8 + PT_ACR7 = 0xac + PT_ACR8 = 0xb0 + PT_ACR9 = 0xb4 + PT_CR_10 = 0x168 + PT_CR_11 = 0x170 + PT_CR_9 = 0x160 + PT_ENDREGS = 0x1af + PT_FPC = 0xd8 + PT_FPR0 = 0xe0 + PT_FPR1 = 0xe8 + PT_FPR10 = 0x130 + PT_FPR11 = 0x138 + PT_FPR12 = 0x140 + PT_FPR13 = 0x148 + PT_FPR14 = 0x150 + PT_FPR15 = 0x158 + PT_FPR2 = 0xf0 + PT_FPR3 = 0xf8 + PT_FPR4 = 0x100 + PT_FPR5 = 0x108 + PT_FPR6 = 0x110 + PT_FPR7 = 0x118 + PT_FPR8 = 0x120 + PT_FPR9 = 0x128 + PT_GPR0 = 0x10 + PT_GPR1 = 0x18 + PT_GPR10 = 0x60 + PT_GPR11 = 0x68 + PT_GPR12 = 0x70 + PT_GPR13 = 0x78 + PT_GPR14 = 0x80 + PT_GPR15 = 0x88 + PT_GPR2 = 0x20 + PT_GPR3 = 0x28 + PT_GPR4 = 0x30 + PT_GPR5 = 0x38 + PT_GPR6 = 0x40 + PT_GPR7 = 0x48 + PT_GPR8 = 0x50 + PT_GPR9 = 0x58 + PT_IEEE_IP = 0x1a8 + PT_LASTOFF = 0x1a8 + PT_ORIGGPR2 = 0xd0 + PT_PSWADDR = 0x8 + PT_PSWMASK = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x62) EADDRNOTAVAIL = syscall.Errno(0x63) EADV = syscall.Errno(0x44) EAFNOSUPPORT = syscall.Errno(0x61) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x72) EBADE = syscall.Errno(0x34) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x4d) EBADMSG = syscall.Errno(0x4a) EBADR = syscall.Errno(0x35) EBADRQC = syscall.Errno(0x38) EBADSLT = syscall.Errno(0x39) EBFONT = syscall.Errno(0x3b) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7d) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x2c) ECOMM = syscall.Errno(0x46) ECONNABORTED = syscall.Errno(0x67) @@ -2857,23 +564,15 @@ const ( EDEADLK = syscall.Errno(0x23) EDEADLOCK = syscall.Errno(0x23) EDESTADDRREQ = syscall.Errno(0x59) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x49) EDQUOT = syscall.Errno(0x7a) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x70) EHOSTUNREACH = syscall.Errno(0x71) EHWPOISON = syscall.Errno(0x85) EIDRM = syscall.Errno(0x2b) EILSEQ = syscall.Errno(0x54) EINPROGRESS = syscall.Errno(0x73) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x6a) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x7f) EKEYREJECTED = syscall.Errno(0x81) @@ -2890,8 +589,6 @@ const ( ELNRNG = syscall.Errno(0x30) ELOOP = syscall.Errno(0x28) EMEDIUMTYPE = syscall.Errno(0x7c) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x5a) EMULTIHOP = syscall.Errno(0x48) ENAMETOOLONG = syscall.Errno(0x24) @@ -2899,99 +596,67 @@ const ( ENETDOWN = syscall.Errno(0x64) ENETRESET = syscall.Errno(0x66) ENETUNREACH = syscall.Errno(0x65) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x37) ENOBUFS = syscall.Errno(0x69) ENOCSI = syscall.Errno(0x32) ENODATA = syscall.Errno(0x3d) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x7e) ENOLCK = syscall.Errno(0x25) ENOLINK = syscall.Errno(0x43) ENOMEDIUM = syscall.Errno(0x7b) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x2a) ENONET = syscall.Errno(0x40) ENOPKG = syscall.Errno(0x41) ENOPROTOOPT = syscall.Errno(0x5c) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x3f) ENOSTR = syscall.Errno(0x3c) ENOSYS = syscall.Errno(0x26) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x6b) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x27) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x83) ENOTSOCK = syscall.Errno(0x58) ENOTSUP = syscall.Errno(0x5f) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x4c) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x5f) EOVERFLOW = syscall.Errno(0x4b) EOWNERDEAD = syscall.Errno(0x82) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x60) - EPIPE = syscall.Errno(0x20) EPROTO = syscall.Errno(0x47) EPROTONOSUPPORT = syscall.Errno(0x5d) EPROTOTYPE = syscall.Errno(0x5b) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x4e) EREMOTE = syscall.Errno(0x42) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x55) ERFKILL = syscall.Errno(0x84) - EROFS = syscall.Errno(0x1e) ESHUTDOWN = syscall.Errno(0x6c) ESOCKTNOSUPPORT = syscall.Errno(0x5e) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x45) ESTALE = syscall.Errno(0x74) ESTRPIPE = syscall.Errno(0x56) ETIME = syscall.Errno(0x3e) ETIMEDOUT = syscall.Errno(0x6e) ETOOMANYREFS = syscall.Errno(0x6d) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x31) EUSERS = syscall.Errno(0x57) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x36) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0x7) SIGCHLD = syscall.Signal(0x11) SIGCLD = syscall.Signal(0x11) SIGCONT = syscall.Signal(0x12) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x1d) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x1d) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1e) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTKFLT = syscall.Signal(0x10) SIGSTOP = syscall.Signal(0x13) SIGSYS = syscall.Signal(0x1f) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x14) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index c0095a5..bd5c305 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -11,2834 +11,542 @@ package unix import "syscall" const ( - AAFS_MAGIC = 0x5a3c69f0 - ADFS_SUPER_MAGIC = 0xadf5 - AFFS_SUPER_MAGIC = 0xadff - AFS_FS_MAGIC = 0x6b414653 - AFS_SUPER_MAGIC = 0x5346414f - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2d - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_QIPCRTR = 0x2a - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SMC = 0x2b - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - AF_XDP = 0x2c - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ANON_INODE_FS_MAGIC = 0x9041934 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_RAWIP = 0x207 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_VSOCKMON = 0x33a - ARPHRD_X25 = 0x10f - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - AUTOFS_SUPER_MAGIC = 0x187 - B0 = 0x0 - B1000000 = 0x1008 - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x1009 - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100a - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100b - B230400 = 0x1003 - B2400 = 0xb - B2500000 = 0x100c - B300 = 0x7 - B3000000 = 0x100d - B3500000 = 0x100e - B38400 = 0xf - B4000000 = 0x100f - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x1005 - B57600 = 0x1001 - B576000 = 0x1006 - B600 = 0x8 - B75 = 0x2 - B921600 = 0x1007 - B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 - BDEVFS_MAGIC = 0x62646576 - BINDERFS_SUPER_MAGIC = 0x6c6f6f70 - BINFMTFS_MAGIC = 0x42494e4d - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d - BLKRRPART = 0x2000125f - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_ALU = 0x4 - BPF_ALU64 = 0x7 - BPF_AND = 0x50 - BPF_ANY = 0x0 - BPF_ARSH = 0xc0 - BPF_B = 0x10 - BPF_BUILD_ID_SIZE = 0x14 - BPF_CALL = 0x80 - BPF_DEVCG_ACC_MKNOD = 0x1 - BPF_DEVCG_ACC_READ = 0x2 - BPF_DEVCG_ACC_WRITE = 0x4 - BPF_DEVCG_DEV_BLOCK = 0x1 - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_DIV = 0x30 - BPF_DW = 0x18 - BPF_END = 0xd0 - BPF_EXIST = 0x2 - BPF_EXIT = 0x90 - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 - BPF_F_CTXLEN_MASK = 0xfffff00000000 - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CURRENT_NETNS = -0x1 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_FAST_STACK_CMP = 0x200 - BPF_F_HDR_FIELD_MASK = 0xf - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_INGRESS = 0x1 - BPF_F_INVALIDATE_HASH = 0x2 - BPF_F_LOCK = 0x4 - BPF_F_MARK_ENFORCE = 0x40 - BPF_F_MARK_MANGLED_0 = 0x20 - BPF_F_NO_COMMON_LRU = 0x2 - BPF_F_NO_PREALLOC = 0x1 - BPF_F_NUMA_NODE = 0x4 - BPF_F_PSEUDO_HDR = 0x10 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_RDONLY = 0x8 - BPF_F_RDONLY_PROG = 0x80 - BPF_F_RECOMPUTE_CSUM = 0x1 - BPF_F_REUSE_STACKID = 0x400 - BPF_F_SEQ_NUMBER = 0x8 - BPF_F_SKIP_FIELD_MASK = 0xff - BPF_F_STACK_BUILD_ID = 0x20 - BPF_F_STRICT_ALIGNMENT = 0x1 - BPF_F_SYSCTL_BASE_NAME = 0x1 - BPF_F_TEST_RND_HI32 = 0x4 - BPF_F_TUNINFO_IPV6 = 0x1 - BPF_F_USER_BUILD_ID = 0x800 - BPF_F_USER_STACK = 0x100 - BPF_F_WRONLY = 0x10 - BPF_F_WRONLY_PROG = 0x100 - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_ZERO_SEED = 0x40 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JLE = 0xb0 - BPF_JLT = 0xa0 - BPF_JMP = 0x5 - BPF_JMP32 = 0x6 - BPF_JNE = 0x50 - BPF_JSET = 0x40 - BPF_JSGE = 0x70 - BPF_JSGT = 0x60 - BPF_JSLE = 0xd0 - BPF_JSLT = 0xc0 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MOV = 0xb0 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_NOEXIST = 0x1 - BPF_OBJ_NAME_LEN = 0x10 - BPF_OR = 0x40 - BPF_PSEUDO_CALL = 0x1 - BPF_PSEUDO_MAP_FD = 0x1 - BPF_PSEUDO_MAP_VALUE = 0x2 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_SK_STORAGE_GET_F_CREATE = 0x1 - BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAG_SIZE = 0x8 - BPF_TAX = 0x0 - BPF_TO_BE = 0x8 - BPF_TO_LE = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XADD = 0xc0 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - BTRFS_SUPER_MAGIC = 0x9123683e - BTRFS_TEST_MAGIC = 0x73727279 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RAW_FILTER_MAX = 0x200 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CAP_AUDIT_CONTROL = 0x1e - CAP_AUDIT_READ = 0x25 - CAP_AUDIT_WRITE = 0x1d - CAP_BLOCK_SUSPEND = 0x24 - CAP_CHOWN = 0x0 - CAP_DAC_OVERRIDE = 0x1 - CAP_DAC_READ_SEARCH = 0x2 - CAP_FOWNER = 0x3 - CAP_FSETID = 0x4 - CAP_IPC_LOCK = 0xe - CAP_IPC_OWNER = 0xf - CAP_KILL = 0x5 - CAP_LAST_CAP = 0x25 - CAP_LEASE = 0x1c - CAP_LINUX_IMMUTABLE = 0x9 - CAP_MAC_ADMIN = 0x21 - CAP_MAC_OVERRIDE = 0x20 - CAP_MKNOD = 0x1b - CAP_NET_ADMIN = 0xc - CAP_NET_BIND_SERVICE = 0xa - CAP_NET_BROADCAST = 0xb - CAP_NET_RAW = 0xd - CAP_SETFCAP = 0x1f - CAP_SETGID = 0x6 - CAP_SETPCAP = 0x8 - CAP_SETUID = 0x7 - CAP_SYSLOG = 0x22 - CAP_SYS_ADMIN = 0x15 - CAP_SYS_BOOT = 0x16 - CAP_SYS_CHROOT = 0x12 - CAP_SYS_MODULE = 0x10 - CAP_SYS_NICE = 0x17 - CAP_SYS_PACCT = 0x14 - CAP_SYS_PTRACE = 0x13 - CAP_SYS_RAWIO = 0x11 - CAP_SYS_RESOURCE = 0x18 - CAP_SYS_TIME = 0x19 - CAP_SYS_TTY_CONFIG = 0x1a - CAP_WAKE_ALARM = 0x23 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CGROUP2_SUPER_MAGIC = 0x63677270 - CGROUP_SUPER_MAGIC = 0x27e0eb - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PIDFD = 0x1000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CODA_SUPER_MAGIC = 0x73757245 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRAMFS_MAGIC = 0x28cd3d45 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CRYPTO_MAX_NAME = 0x40 - CRYPTO_MSG_MAX = 0x15 - CRYPTO_NR_MSGTYPES = 0x6 - CRYPTO_REPORT_MAXSIZE = 0x160 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DAXFS_MAGIC = 0x64646178 - DEBUGFS_MAGIC = 0x64626720 - DEVPTS_SUPER_MAGIC = 0x1cd1 - DMA_BUF_MAGIC = 0x444d4142 - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - ECRYPTFS_SUPER_MAGIC = 0xf15f - EFD_CLOEXEC = 0x400000 - EFD_NONBLOCK = 0x4000 - EFD_SEMAPHORE = 0x1 - EFIVARFS_MAGIC = 0xde5e81e4 - EFS_SUPER_MAGIC = 0x414a53 - EMT_TAGOVF = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x400000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_DSA_8021Q = 0xdadb - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_ERSPAN = 0x88be - ETH_P_ERSPAN2 = 0x22eb - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IBOE = 0x8915 - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IFE = 0xed3e - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LLDP = 0x88cc - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MAP = 0xf9 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_NCSI = 0x88f8 - ETH_P_NSH = 0x894f - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PREAUTH = 0x88c7 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXABYTE_ENABLE_NEST = 0xf0 - EXT2_SUPER_MAGIC = 0xef53 - EXT3_SUPER_MAGIC = 0xef53 - EXT4_SUPER_MAGIC = 0xef53 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - F2FS_SUPER_MAGIC = 0xf2f52010 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_UNSHARE_RANGE = 0x40 - FALLOC_FL_ZERO_RANGE = 0x10 - FANOTIFY_METADATA_VERSION = 0x3 - FAN_ACCESS = 0x1 - FAN_ACCESS_PERM = 0x20000 - FAN_ALLOW = 0x1 - FAN_ALL_CLASS_BITS = 0xc - FAN_ALL_EVENTS = 0x3b - FAN_ALL_INIT_FLAGS = 0x3f - FAN_ALL_MARK_FLAGS = 0xff - FAN_ALL_OUTGOING_EVENTS = 0x3403b - FAN_ALL_PERM_EVENTS = 0x30000 - FAN_ATTRIB = 0x4 - FAN_AUDIT = 0x10 - FAN_CLASS_CONTENT = 0x4 - FAN_CLASS_NOTIF = 0x0 - FAN_CLASS_PRE_CONTENT = 0x8 - FAN_CLOEXEC = 0x1 - FAN_CLOSE = 0x18 - FAN_CLOSE_NOWRITE = 0x10 - FAN_CLOSE_WRITE = 0x8 - FAN_CREATE = 0x100 - FAN_DELETE = 0x200 - FAN_DELETE_SELF = 0x400 - FAN_DENY = 0x2 - FAN_ENABLE_AUDIT = 0x40 - FAN_EVENT_INFO_TYPE_FID = 0x1 - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_FILESYSTEM = 0x100 - FAN_MARK_FLUSH = 0x80 - FAN_MARK_IGNORED_MASK = 0x20 - FAN_MARK_IGNORED_SURV_MODIFY = 0x40 - FAN_MARK_INODE = 0x0 - FAN_MARK_MOUNT = 0x10 - FAN_MARK_ONLYDIR = 0x8 - FAN_MARK_REMOVE = 0x2 - FAN_MODIFY = 0x2 - FAN_MOVE = 0xc0 - FAN_MOVED_FROM = 0x40 - FAN_MOVED_TO = 0x80 - FAN_MOVE_SELF = 0x800 - FAN_NOFD = -0x1 - FAN_NONBLOCK = 0x2 - FAN_ONDIR = 0x40000000 - FAN_OPEN = 0x20 - FAN_OPEN_EXEC = 0x1000 - FAN_OPEN_EXEC_PERM = 0x40000 - FAN_OPEN_PERM = 0x10000 - FAN_Q_OVERFLOW = 0x4000 - FAN_REPORT_FID = 0x200 - FAN_REPORT_TID = 0x100 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x1000 - FS_ENCRYPTION_MODE_ADIANTUM = 0x9 - FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 - FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 - FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 - FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 - FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 - FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 - FS_ENCRYPTION_MODE_INVALID = 0x0 - FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 - FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 - FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 - FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 - FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 - FS_KEY_DESCRIPTOR_SIZE = 0x8 - FS_KEY_DESC_PREFIX = "fscrypt:" - FS_KEY_DESC_PREFIX_SIZE = 0x8 - FS_MAX_KEY_SIZE = 0x40 - FS_POLICY_FLAGS_PAD_16 = 0x2 - FS_POLICY_FLAGS_PAD_32 = 0x3 - FS_POLICY_FLAGS_PAD_4 = 0x0 - FS_POLICY_FLAGS_PAD_8 = 0x1 - FS_POLICY_FLAGS_PAD_MASK = 0x3 - FS_POLICY_FLAGS_VALID = 0x7 - FUTEXFS_SUPER_MAGIC = 0xbad1dea - F_ADD_SEALS = 0x409 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_GET_FILE_RW_HINT = 0x40d - F_GET_RW_HINT = 0x40b - F_GET_SEALS = 0x40a - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SEAL_FUTURE_WRITE = 0x10 - F_SEAL_GROW = 0x4 - F_SEAL_SEAL = 0x1 - F_SEAL_SHRINK = 0x2 - F_SEAL_WRITE = 0x8 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SET_FILE_RW_HINT = 0x40e - F_SET_RW_HINT = 0x40c - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - GENL_ADMIN_PERM = 0x1 - GENL_CMD_CAP_DO = 0x2 - GENL_CMD_CAP_DUMP = 0x4 - GENL_CMD_CAP_HASPOL = 0x8 - GENL_HDRLEN = 0x4 - GENL_ID_CTRL = 0x10 - GENL_ID_PMCRAID = 0x12 - GENL_ID_VFS_DQUOT = 0x11 - GENL_MAX_ID = 0x3ff - GENL_MIN_ID = 0x10 - GENL_NAMSIZ = 0x10 - GENL_START_ALLOC = 0x13 - GENL_UNS_ADMIN_PERM = 0x10 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HDIO_DRIVE_CMD = 0x31f - HDIO_DRIVE_CMD_AEB = 0x31e - HDIO_DRIVE_CMD_HDR_SIZE = 0x4 - HDIO_DRIVE_HOB_HDR_SIZE = 0x8 - HDIO_DRIVE_RESET = 0x31c - HDIO_DRIVE_TASK = 0x31e - HDIO_DRIVE_TASKFILE = 0x31d - HDIO_DRIVE_TASK_HDR_SIZE = 0x8 - HDIO_GETGEO = 0x301 - HDIO_GET_32BIT = 0x309 - HDIO_GET_ACOUSTIC = 0x30f - HDIO_GET_ADDRESS = 0x310 - HDIO_GET_BUSSTATE = 0x31a - HDIO_GET_DMA = 0x30b - HDIO_GET_IDENTITY = 0x30d - HDIO_GET_KEEPSETTINGS = 0x308 - HDIO_GET_MULTCOUNT = 0x304 - HDIO_GET_NICE = 0x30c - HDIO_GET_NOWERR = 0x30a - HDIO_GET_QDMA = 0x305 - HDIO_GET_UNMASKINTR = 0x302 - HDIO_GET_WCACHE = 0x30e - HDIO_OBSOLETE_IDENTITY = 0x307 - HDIO_SCAN_HWIF = 0x328 - HDIO_SET_32BIT = 0x324 - HDIO_SET_ACOUSTIC = 0x32c - HDIO_SET_ADDRESS = 0x32f - HDIO_SET_BUSSTATE = 0x32d - HDIO_SET_DMA = 0x326 - HDIO_SET_KEEPSETTINGS = 0x323 - HDIO_SET_MULTCOUNT = 0x321 - HDIO_SET_NICE = 0x329 - HDIO_SET_NOWERR = 0x325 - HDIO_SET_PIO_MODE = 0x327 - HDIO_SET_QDMA = 0x32e - HDIO_SET_UNMASKINTR = 0x322 - HDIO_SET_WCACHE = 0x32b - HDIO_SET_XFER = 0x306 - HDIO_TRISTATE_HWIF = 0x31b - HDIO_UNREGISTER_HWIF = 0x32a - HOSTFS_SUPER_MAGIC = 0xc0ffee - HPFS_SUPER_MAGIC = 0xf995e849 - HUGETLBFS_MAGIC = 0x958458f6 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0xa - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NAPI = 0x10 - IFF_NAPI_FRAGS = 0x20 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x400000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MASK_CREATE = 0x10000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x4000 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADDR_PREFERENCES = 0x48 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_AUTOFLOWLABEL = 0x46 - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_FREEBIND = 0x4e - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MINHOPCOUNT = 0x49 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_ALL = 0x1d - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_ORIGDSTADDR = 0x4a - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVFRAGSIZE = 0x4d - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVORIGDSTADDR = 0x4a - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_ROUTER_ALERT_ISOLATE = 0x1e - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_TRANSPARENT = 0x4b - IPV6_UNICAST_HOPS = 0x10 - IPV6_UNICAST_IF = 0x4c - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVFRAGSIZE = 0x19 - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISOFS_SUPER_MAGIC = 0x9660 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - JFFS2_SUPER_MAGIC = 0x72b6 - KEXEC_ARCH_386 = 0x30000 - KEXEC_ARCH_68K = 0x40000 - KEXEC_ARCH_AARCH64 = 0xb70000 - KEXEC_ARCH_ARM = 0x280000 - KEXEC_ARCH_DEFAULT = 0x0 - KEXEC_ARCH_IA_64 = 0x320000 - KEXEC_ARCH_MASK = 0xffff0000 - KEXEC_ARCH_MIPS = 0x80000 - KEXEC_ARCH_MIPS_LE = 0xa0000 - KEXEC_ARCH_PPC = 0x140000 - KEXEC_ARCH_PPC64 = 0x150000 - KEXEC_ARCH_S390 = 0x160000 - KEXEC_ARCH_SH = 0x2a0000 - KEXEC_ARCH_X86_64 = 0x3e0000 - KEXEC_FILE_NO_INITRAMFS = 0x4 - KEXEC_FILE_ON_CRASH = 0x2 - KEXEC_FILE_UNLOAD = 0x1 - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 - KEYCTL_CAPS0_CAPABILITIES = 0x1 - KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 - KEYCTL_CAPS0_INVALIDATE = 0x20 - KEYCTL_CAPS0_MOVE = 0x80 - KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 - KEYCTL_CAPS0_PUBLIC_KEY = 0x8 - KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 - KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 - KEYCTL_CAPS1_NS_KEY_TAG = 0x2 - KEYCTL_CHOWN = 0x4 - KEYCTL_CLEAR = 0x7 - KEYCTL_DESCRIBE = 0x6 - KEYCTL_DH_COMPUTE = 0x17 - KEYCTL_GET_KEYRING_ID = 0x0 - KEYCTL_GET_PERSISTENT = 0x16 - KEYCTL_GET_SECURITY = 0x11 - KEYCTL_INSTANTIATE = 0xc - KEYCTL_INSTANTIATE_IOV = 0x14 - KEYCTL_INVALIDATE = 0x15 - KEYCTL_JOIN_SESSION_KEYRING = 0x1 - KEYCTL_LINK = 0x8 - KEYCTL_MOVE = 0x1e - KEYCTL_MOVE_EXCL = 0x1 - KEYCTL_NEGATE = 0xd - KEYCTL_PKEY_DECRYPT = 0x1a - KEYCTL_PKEY_ENCRYPT = 0x19 - KEYCTL_PKEY_QUERY = 0x18 - KEYCTL_PKEY_SIGN = 0x1b - KEYCTL_PKEY_VERIFY = 0x1c - KEYCTL_READ = 0xb - KEYCTL_REJECT = 0x13 - KEYCTL_RESTRICT_KEYRING = 0x1d - KEYCTL_REVOKE = 0x3 - KEYCTL_SEARCH = 0xa - KEYCTL_SESSION_TO_PARENT = 0x12 - KEYCTL_SETPERM = 0x5 - KEYCTL_SET_REQKEY_KEYRING = 0xe - KEYCTL_SET_TIMEOUT = 0xf - KEYCTL_SUPPORTS_DECRYPT = 0x2 - KEYCTL_SUPPORTS_ENCRYPT = 0x1 - KEYCTL_SUPPORTS_SIGN = 0x4 - KEYCTL_SUPPORTS_VERIFY = 0x8 - KEYCTL_UNLINK = 0x9 - KEYCTL_UPDATE = 0x2 - KEY_REQKEY_DEFL_DEFAULT = 0x0 - KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 - KEY_REQKEY_DEFL_NO_CHANGE = -0x1 - KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 - KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 - KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 - KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 - KEY_REQKEY_DEFL_USER_KEYRING = 0x4 - KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 - KEY_SPEC_GROUP_KEYRING = -0x6 - KEY_SPEC_PROCESS_KEYRING = -0x2 - KEY_SPEC_REQKEY_AUTH_KEY = -0x7 - KEY_SPEC_REQUESTOR_KEYRING = -0x8 - KEY_SPEC_SESSION_KEYRING = -0x3 - KEY_SPEC_THREAD_KEYRING = -0x1 - KEY_SPEC_USER_KEYRING = -0x4 - KEY_SPEC_USER_SESSION_KEYRING = -0x5 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 - LOOP_GET_STATUS = 0x4c03 - LOOP_GET_STATUS64 = 0x4c05 - LOOP_SET_BLOCK_SIZE = 0x4c09 - LOOP_SET_CAPACITY = 0x4c07 - LOOP_SET_DIRECT_IO = 0x4c08 - LOOP_SET_FD = 0x4c00 - LOOP_SET_STATUS = 0x4c02 - LOOP_SET_STATUS64 = 0x4c04 - LO_KEY_SIZE = 0x20 - LO_NAME_SIZE = 0x40 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_KEEPONFORK = 0x13 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MADV_WIPEONFORK = 0x12 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_FIXED_NOREPLACE = 0x100000 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_SHARED_VALIDATE = 0x3 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCAST_BLOCK_SOURCE = 0x2b - MCAST_EXCLUDE = 0x0 - MCAST_INCLUDE = 0x1 - MCAST_JOIN_GROUP = 0x2a - MCAST_JOIN_SOURCE_GROUP = 0x2e - MCAST_LEAVE_GROUP = 0x2d - MCAST_LEAVE_SOURCE_GROUP = 0x2f - MCAST_MSFILTER = 0x30 - MCAST_UNBLOCK_SOURCE = 0x2c - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 - MFD_HUGE_16MB = 0x60000000 - MFD_HUGE_1GB = 0x78000000 - MFD_HUGE_1MB = 0x50000000 - MFD_HUGE_256MB = 0x70000000 - MFD_HUGE_2GB = 0x7c000000 - MFD_HUGE_2MB = 0x54000000 - MFD_HUGE_32MB = 0x64000000 - MFD_HUGE_512KB = 0x4c000000 - MFD_HUGE_512MB = 0x74000000 - MFD_HUGE_64KB = 0x40000000 - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a - MINIX_SUPER_MAGIC = 0x137f - MINIX_SUPER_MAGIC2 = 0x138f - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MODULE_INIT_IGNORE_MODVERSIONS = 0x1 - MODULE_INIT_IGNORE_VERMAGIC = 0x2 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MSG_ZEROCOPY = 0x4000000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_BORN = 0x20000000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOREMOTELOCK = 0x8000000 - MS_NOSEC = 0x10000000 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SUBMOUNT = 0x4000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - MS_VERBOSE = 0x8000 - MTD_INODE_FS_MAGIC = 0x11307854 - NAME_MAX = 0xff - NCP_SUPER_MAGIC = 0x564c - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_EXT_ACK = 0xb - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_GET_STRICT_CHK = 0xc - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SMC = 0x16 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NETNSA_MAX = 0x5 - NETNSA_NSID_NOT_ASSIGNED = -0x1 - NFDBITS = 0x40 - NFNETLINK_V0 = 0x0 - NFNLGRP_ACCT_QUOTA = 0x8 - NFNLGRP_CONNTRACK_DESTROY = 0x3 - NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 - NFNLGRP_CONNTRACK_EXP_NEW = 0x4 - NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 - NFNLGRP_CONNTRACK_NEW = 0x1 - NFNLGRP_CONNTRACK_UPDATE = 0x2 - NFNLGRP_MAX = 0x9 - NFNLGRP_NFTABLES = 0x7 - NFNLGRP_NFTRACE = 0x9 - NFNLGRP_NONE = 0x0 - NFNL_BATCH_MAX = 0x1 - NFNL_MSG_BATCH_BEGIN = 0x10 - NFNL_MSG_BATCH_END = 0x11 - NFNL_NFA_NEST = 0x8000 - NFNL_SUBSYS_ACCT = 0x7 - NFNL_SUBSYS_COUNT = 0xc - NFNL_SUBSYS_CTHELPER = 0x9 - NFNL_SUBSYS_CTNETLINK = 0x1 - NFNL_SUBSYS_CTNETLINK_EXP = 0x2 - NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 - NFNL_SUBSYS_IPSET = 0x6 - NFNL_SUBSYS_NFTABLES = 0xa - NFNL_SUBSYS_NFT_COMPAT = 0xb - NFNL_SUBSYS_NONE = 0x0 - NFNL_SUBSYS_OSF = 0x5 - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_ACK_TLVS = 0x200 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CAPPED = 0x100 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_NONREC = 0x100 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - NSFS_MAGIC = 0x6e736673 - NS_GET_NSTYPE = 0x2000b703 - NS_GET_OWNER_UID = 0x2000b704 - NS_GET_PARENT = 0x2000b702 - NS_GET_USERNS = 0x2000b701 - OCFS2_SUPER_MAGIC = 0x7461636f - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPENPROM_SUPER_MAGIC = 0x9fa1 - OPOST = 0x1 - OVERLAYFS_SUPER_MAGIC = 0x794c7630 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_IGNORE_OUTGOING = 0x17 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PERF_EVENT_IOC_DISABLE = 0x20002401 - PERF_EVENT_IOC_ENABLE = 0x20002400 - PERF_EVENT_IOC_ID = 0x40082407 - PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b - PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 - PERF_EVENT_IOC_PERIOD = 0x80082404 - PERF_EVENT_IOC_QUERY_BPF = 0xc008240a - PERF_EVENT_IOC_REFRESH = 0x20002402 - PERF_EVENT_IOC_RESET = 0x20002403 - PERF_EVENT_IOC_SET_BPF = 0x80042408 - PERF_EVENT_IOC_SET_FILTER = 0x80082406 - PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 - PIPEFS_MAGIC = 0x50495045 - PPPIOCATTACH = 0x8004743d - PPPIOCATTCHAN = 0x80047438 - PPPIOCCONNECT = 0x8004743a - PPPIOCDETACH = 0x8004743c - PPPIOCDISCONN = 0x20007439 - PPPIOCGASYNCMAP = 0x40047458 - PPPIOCGCHAN = 0x40047437 - PPPIOCGDEBUG = 0x40047441 - PPPIOCGFLAGS = 0x4004745a - PPPIOCGIDLE = 0x4010743f - PPPIOCGL2TPSTATS = 0x40487436 - PPPIOCGMRU = 0x40047453 - PPPIOCGNPMODE = 0xc008744c - PPPIOCGRASYNCMAP = 0x40047455 - PPPIOCGUNIT = 0x40047456 - PPPIOCGXASYNCMAP = 0x40207450 - PPPIOCNEWUNIT = 0xc004743e - PPPIOCSACTIVE = 0x80107446 - PPPIOCSASYNCMAP = 0x80047457 - PPPIOCSCOMPRESS = 0x8010744d - PPPIOCSDEBUG = 0x80047440 - PPPIOCSFLAGS = 0x80047459 - PPPIOCSMAXCID = 0x80047451 - PPPIOCSMRRU = 0x8004743b - PPPIOCSMRU = 0x80047452 - PPPIOCSNPMODE = 0x8008744b - PPPIOCSPASS = 0x80107447 - PPPIOCSRASYNCMAP = 0x80047454 - PPPIOCSXASYNCMAP = 0x8020744f - PPPIOCXFERUNIT = 0x2000744e - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROC_SUPER_MAGIC = 0x9fa0 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_SPECULATION_CTRL = 0x34 - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_PAC_APDAKEY = 0x4 - PR_PAC_APDBKEY = 0x8 - PR_PAC_APGAKEY = 0x10 - PR_PAC_APIAKEY = 0x1 - PR_PAC_APIBKEY = 0x2 - PR_PAC_RESET_KEYS = 0x36 - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = 0xffffffffffffffff - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_SPECULATION_CTRL = 0x35 - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_SPEC_DISABLE = 0x4 - PR_SPEC_DISABLE_NOEXEC = 0x10 - PR_SPEC_ENABLE = 0x2 - PR_SPEC_FORCE_DISABLE = 0x8 - PR_SPEC_INDIRECT_BRANCH = 0x1 - PR_SPEC_NOT_AFFECTED = 0x0 - PR_SPEC_PRCTL = 0x1 - PR_SPEC_STORE_BYPASS = 0x0 - PR_SVE_GET_VL = 0x33 - PR_SVE_SET_VL = 0x32 - PR_SVE_SET_VL_ONEXEC = 0x40000 - PR_SVE_VL_INHERIT = 0x20000 - PR_SVE_VL_LEN_MASK = 0xffff - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PSTOREFS_MAGIC = 0x6165676c - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 - PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_SYSCALL_INFO = 0x420e - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SECCOMP_GET_METADATA = 0x420d - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SPARC_DETACH = 0xb - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 - PTRACE_SYSCALL_INFO_EXIT = 0x2 - PTRACE_SYSCALL_INFO_NONE = 0x0 - PTRACE_SYSCALL_INFO_SECCOMP = 0x3 - PTRACE_TRACEME = 0x0 - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - QNX4_SUPER_MAGIC = 0x2f - QNX6_SUPER_MAGIC = 0x68191122 - RAMFS_MAGIC = 0x858458f6 - RDTGROUP_SUPER_MAGIC = 0x7655821 - REISERFS_SUPER_MAGIC = 0x52654973 - RENAME_EXCHANGE = 0x2 - RENAME_NOREPLACE = 0x1 - RENAME_WHITEOUT = 0x4 - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_LOCKS = 0xa - RLIMIT_MEMLOCK = 0x8 - RLIMIT_MSGQUEUE = 0xc - RLIMIT_NICE = 0xd - RLIMIT_NOFILE = 0x6 - RLIMIT_NPROC = 0x7 - RLIMIT_RSS = 0x5 - RLIMIT_RTPRIO = 0xe - RLIMIT_RTTIME = 0xf - RLIMIT_SIGPENDING = 0xb - RLIMIT_STACK = 0x3 - RLIM_INFINITY = 0xffffffffffffffff - RNDADDENTROPY = 0x80085203 - RNDADDTOENTCNT = 0x80045201 - RNDCLEARPOOL = 0x20005206 - RNDGETENTCNT = 0x40045200 - RNDGETPOOL = 0x40085202 - RNDRESEEDCRNG = 0x20005207 - RNDZAPENTCNT = 0x20005204 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FASTOPEN_NO_COOKIE = 0x11 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x11 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x1e - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTC_AF = 0x20 - RTC_AIE_OFF = 0x20007002 - RTC_AIE_ON = 0x20007001 - RTC_ALM_READ = 0x40247008 - RTC_ALM_SET = 0x80247007 - RTC_EPOCH_READ = 0x4008700d - RTC_EPOCH_SET = 0x8008700e - RTC_IRQF = 0x80 - RTC_IRQP_READ = 0x4008700b - RTC_IRQP_SET = 0x8008700c - RTC_MAX_FREQ = 0x2000 - RTC_PF = 0x40 - RTC_PIE_OFF = 0x20007006 - RTC_PIE_ON = 0x20007005 - RTC_PLL_GET = 0x40207011 - RTC_PLL_SET = 0x80207012 - RTC_RD_TIME = 0x40247009 - RTC_SET_TIME = 0x8024700a - RTC_UF = 0x10 - RTC_UIE_OFF = 0x20007004 - RTC_UIE_ON = 0x20007003 - RTC_VL_CLR = 0x20007014 - RTC_VL_READ = 0x40047013 - RTC_WIE_OFF = 0x20007010 - RTC_WIE_ON = 0x2000700f - RTC_WKALM_RD = 0x40287010 - RTC_WKALM_SET = 0x8028700f - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELCHAIN = 0x65 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNETCONF = 0x51 - RTM_DELNEXTHOP = 0x69 - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_FIB_MATCH = 0x2000 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETCHAIN = 0x66 - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNEXTHOP = 0x6a - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x6b - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWCACHEREPORT = 0x60 - RTM_NEWCHAIN = 0x64 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNEXTHOP = 0x68 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x17 - RTM_NR_MSGTYPES = 0x5c - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x19 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTNH_F_UNRESOLVED = 0x20 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BGP = 0xba - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_EIGRP = 0xc0 - RTPROT_GATED = 0x8 - RTPROT_ISIS = 0xbb - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_OSPF = 0xbc - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_RIP = 0xbd - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPING_OPT_STATS = 0x38 - SCM_TIMESTAMPING_PKTINFO = 0x3c - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 - SC_LOG_FLUSH = 0x100000 - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 - SECURITYFS_MAGIC = 0x73636673 - SELINUX_MAGIC = 0xf97cff8c - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGETLINKNAME = 0x89e0 - SIOCGETNODEID = 0x89e1 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGPPPCSTATS = 0x89f2 - SIOCGPPPSTATS = 0x89f0 - SIOCGPPPVER = 0x89f1 - SIOCGRARP = 0x8961 - SIOCGSKNS = 0x894c - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCGSTAMPNS_NEW = 0x40108907 - SIOCGSTAMPNS_OLD = 0x8907 - SIOCGSTAMP_NEW = 0x40108906 - SIOCGSTAMP_OLD = 0x8906 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SMACK_MAGIC = 0x43415d53 - SMART_AUTOSAVE = 0xd2 - SMART_AUTO_OFFLINE = 0xdb - SMART_DISABLE = 0xd9 - SMART_ENABLE = 0xd8 - SMART_HCYL_PASS = 0xc2 - SMART_IMMEDIATE_OFFLINE = 0xd4 - SMART_LCYL_PASS = 0x4f - SMART_READ_LOG_SECTOR = 0xd5 - SMART_READ_THRESHOLDS = 0xd1 - SMART_READ_VALUES = 0xd0 - SMART_SAVE = 0xd3 - SMART_STATUS = 0xda - SMART_WRITE_LOG_SECTOR = 0xd6 - SMART_WRITE_THRESHOLDS = 0xd7 - SMB_SUPER_MAGIC = 0x517b - SOCKFS_MAGIC = 0x534f434b - SOCK_CLOEXEC = 0x400000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_IOC_TYPE = 0x89 - SOCK_NONBLOCK = 0x4000 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_CAN_BASE = 0x64 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x35 - SO_ATTACH_REUSEPORT_EBPF = 0x36 - SO_BINDTODEVICE = 0xd - SO_BINDTOIFINDEX = 0x41 - SO_BPF_EXTENSIONS = 0x32 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0x400 - SO_BUSY_POLL = 0x30 - SO_CNX_ADVICE = 0x37 - SO_COOKIE = 0x3b - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DETACH_REUSEPORT_BPF = 0x47 - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 - SO_EE_CODE_TXTIME_MISSED = 0x2 - SO_EE_CODE_ZEROCOPY_COPIED = 0x1 - SO_EE_ORIGIN_ICMP = 0x2 - SO_EE_ORIGIN_ICMP6 = 0x3 - SO_EE_ORIGIN_LOCAL = 0x1 - SO_EE_ORIGIN_NONE = 0x0 - SO_EE_ORIGIN_TIMESTAMPING = 0x4 - SO_EE_ORIGIN_TXSTATUS = 0x4 - SO_EE_ORIGIN_TXTIME = 0x6 - SO_EE_ORIGIN_ZEROCOPY = 0x5 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x33 - SO_INCOMING_NAPI_ID = 0x3a - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_MEMINFO = 0x39 - SO_NOFCS = 0x27 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVTIMEO = 0x2000 - SO_RCVTIMEO_NEW = 0x44 - SO_RCVTIMEO_OLD = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_SNDTIMEO_NEW = 0x45 - SO_SNDTIMEO_OLD = 0x4000 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPING_NEW = 0x43 - SO_TIMESTAMPING_OLD = 0x23 - SO_TIMESTAMPNS = 0x21 - SO_TIMESTAMPNS_NEW = 0x42 - SO_TIMESTAMPNS_OLD = 0x21 - SO_TIMESTAMP_NEW = 0x46 - SO_TIMESTAMP_OLD = 0x1d - SO_TXTIME = 0x3f - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x25 - SO_ZEROCOPY = 0x3e - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - SQUASHFS_MAGIC = 0x73717368 - STACK_END_MAGIC = 0x57ac6e9d - STATX_ALL = 0xfff - STATX_ATIME = 0x20 - STATX_ATTR_APPEND = 0x20 - STATX_ATTR_AUTOMOUNT = 0x1000 - STATX_ATTR_COMPRESSED = 0x4 - STATX_ATTR_ENCRYPTED = 0x800 - STATX_ATTR_IMMUTABLE = 0x10 - STATX_ATTR_NODUMP = 0x40 - STATX_BASIC_STATS = 0x7ff - STATX_BLOCKS = 0x400 - STATX_BTIME = 0x800 - STATX_CTIME = 0x80 - STATX_GID = 0x10 - STATX_INO = 0x100 - STATX_MODE = 0x2 - STATX_MTIME = 0x40 - STATX_NLINK = 0x4 - STATX_SIZE = 0x200 - STATX_TYPE = 0x1 - STATX_UID = 0x8 - STATX__RESERVED = 0x80000000 - SYNC_FILE_RANGE_WAIT_AFTER = 0x4 - SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 - SYNC_FILE_RANGE_WRITE = 0x2 - SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 - SYSFS_MAGIC = 0x62656572 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TASKSTATS_CMD_ATTR_MAX = 0x4 - TASKSTATS_CMD_MAX = 0x2 - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x9 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_BPF_IW = 0x3e9 - TCP_BPF_SNDCWND_CLAMP = 0x3ea - TCP_CC_INFO = 0x1a - TCP_CM_INQ = 0x24 - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_FASTOPEN_CONNECT = 0x1e - TCP_FASTOPEN_KEY = 0x21 - TCP_FASTOPEN_NO_COOKIE = 0x22 - TCP_INFO = 0xb - TCP_INQ = 0x24 - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_EXT = 0x20 - TCP_MD5SIG_FLAG_PREFIX = 0x1 - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OFF = 0x0 - TCP_REPAIR_OFF_NO_WP = -0x1 - TCP_REPAIR_ON = 0x1 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_REPAIR_WINDOW = 0x1d - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_ULP = 0x1f - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCP_ZEROCOPY_RECEIVE = 0x23 - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TIMER_ABSTIME = 0x1 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGISO7816 = 0x40285443 - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGPTPEER = 0x20007489 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSISO7816 = 0xc0285444 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TIPC_ADDR_ID = 0x3 - TIPC_ADDR_MCAST = 0x1 - TIPC_ADDR_NAME = 0x2 - TIPC_ADDR_NAMESEQ = 0x1 - TIPC_CFG_SRV = 0x0 - TIPC_CLUSTER_BITS = 0xc - TIPC_CLUSTER_MASK = 0xfff000 - TIPC_CLUSTER_OFFSET = 0xc - TIPC_CLUSTER_SIZE = 0xfff - TIPC_CONN_SHUTDOWN = 0x5 - TIPC_CONN_TIMEOUT = 0x82 - TIPC_CRITICAL_IMPORTANCE = 0x3 - TIPC_DESTNAME = 0x3 - TIPC_DEST_DROPPABLE = 0x81 - TIPC_ERRINFO = 0x1 - TIPC_ERR_NO_NAME = 0x1 - TIPC_ERR_NO_NODE = 0x3 - TIPC_ERR_NO_PORT = 0x2 - TIPC_ERR_OVERLOAD = 0x4 - TIPC_GROUP_JOIN = 0x87 - TIPC_GROUP_LEAVE = 0x88 - TIPC_GROUP_LOOPBACK = 0x1 - TIPC_GROUP_MEMBER_EVTS = 0x2 - TIPC_HIGH_IMPORTANCE = 0x2 - TIPC_IMPORTANCE = 0x7f - TIPC_LINK_STATE = 0x2 - TIPC_LOW_IMPORTANCE = 0x0 - TIPC_MAX_BEARER_NAME = 0x20 - TIPC_MAX_IF_NAME = 0x10 - TIPC_MAX_LINK_NAME = 0x44 - TIPC_MAX_MEDIA_NAME = 0x10 - TIPC_MAX_USER_MSG_SIZE = 0x101d0 - TIPC_MCAST_BROADCAST = 0x85 - TIPC_MCAST_REPLICAST = 0x86 - TIPC_MEDIUM_IMPORTANCE = 0x1 - TIPC_NODEID_LEN = 0x10 - TIPC_NODE_BITS = 0xc - TIPC_NODE_MASK = 0xfff - TIPC_NODE_OFFSET = 0x0 - TIPC_NODE_RECVQ_DEPTH = 0x83 - TIPC_NODE_SIZE = 0xfff - TIPC_NODE_STATE = 0x0 - TIPC_OK = 0x0 - TIPC_PUBLISHED = 0x1 - TIPC_RESERVED_TYPES = 0x40 - TIPC_RETDATA = 0x2 - TIPC_SERVICE_ADDR = 0x2 - TIPC_SERVICE_RANGE = 0x1 - TIPC_SOCKET_ADDR = 0x3 - TIPC_SOCK_RECVQ_DEPTH = 0x84 - TIPC_SOCK_RECVQ_USED = 0x89 - TIPC_SRC_DROPPABLE = 0x80 - TIPC_SUBSCR_TIMEOUT = 0x3 - TIPC_SUB_CANCEL = 0x4 - TIPC_SUB_PORTS = 0x1 - TIPC_SUB_SERVICE = 0x2 - TIPC_TOP_SRV = 0x1 - TIPC_WAIT_FOREVER = 0xffffffff - TIPC_WITHDRAWN = 0x2 - TIPC_ZONE_BITS = 0x8 - TIPC_ZONE_CLUSTER_MASK = 0xfffff000 - TIPC_ZONE_MASK = 0xff000000 - TIPC_ZONE_OFFSET = 0x18 - TIPC_ZONE_SCOPE = 0x1 - TIPC_ZONE_SIZE = 0xff - TMPFS_MAGIC = 0x1021994 - TOSTOP = 0x100 - TPACKET_ALIGNMENT = 0x10 - TPACKET_HDRLEN = 0x34 - TP_STATUS_AVAILABLE = 0x0 - TP_STATUS_BLK_TMO = 0x20 - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 - TP_STATUS_SEND_REQUEST = 0x1 - TP_STATUS_TS_RAW_HARDWARE = 0x80000000 - TP_STATUS_TS_SOFTWARE = 0x20000000 - TP_STATUS_TS_SYS_HARDWARE = 0x40000000 - TP_STATUS_USER = 0x1 - TP_STATUS_VLAN_TPID_VALID = 0x40 - TP_STATUS_VLAN_VALID = 0x10 - TP_STATUS_WRONG_FORMAT = 0x4 - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETDEVNETNS = 0x200054e3 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETCARRIER = 0x800454e2 - TUNSETDEBUG = 0x800454c9 - TUNSETFILTEREBPF = 0x400454e1 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETSTEERINGEBPF = 0x400454e0 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - UBI_IOCATT = 0x80186f40 - UBI_IOCDET = 0x80046f41 - UBI_IOCEBCH = 0x80044f02 - UBI_IOCEBER = 0x80044f01 - UBI_IOCEBISMAP = 0x40044f05 - UBI_IOCEBMAP = 0x80084f03 - UBI_IOCEBUNMAP = 0x80044f04 - UBI_IOCMKVOL = 0x80986f00 - UBI_IOCRMVOL = 0x80046f01 - UBI_IOCRNVOL = 0x91106f03 - UBI_IOCRPEB = 0x80046f04 - UBI_IOCRSVOL = 0x800c6f02 - UBI_IOCSETVOLPROP = 0x80104f06 - UBI_IOCSPEB = 0x80046f05 - UBI_IOCVOLCRBLK = 0x80804f07 - UBI_IOCVOLRMBLK = 0x20004f08 - UBI_IOCVOLUP = 0x80084f00 - UDF_SUPER_MAGIC = 0x15013346 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff - UTIME_OMIT = 0x3ffffffe - V9FS_MAGIC = 0x1021997 - VDISCARD = 0xd - VEOF = 0x4 - VEOL = 0xb - VEOL2 = 0x10 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x6 - VM_SOCKETS_INVALID_VERSION = 0xffffffff - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WDIOC_GETBOOTSTATUS = 0x40045702 - WDIOC_GETPRETIMEOUT = 0x40045709 - WDIOC_GETSTATUS = 0x40045701 - WDIOC_GETSUPPORT = 0x40285700 - WDIOC_GETTEMP = 0x40045703 - WDIOC_GETTIMELEFT = 0x4004570a - WDIOC_GETTIMEOUT = 0x40045707 - WDIOC_KEEPALIVE = 0x40045705 - WDIOC_SETOPTIONS = 0x40045704 - WDIOC_SETPRETIMEOUT = 0xc0045708 - WDIOC_SETTIMEOUT = 0xc0045706 - WEXITED = 0x4 - WIN_ACKMEDIACHANGE = 0xdb - WIN_CHECKPOWERMODE1 = 0xe5 - WIN_CHECKPOWERMODE2 = 0x98 - WIN_DEVICE_RESET = 0x8 - WIN_DIAGNOSE = 0x90 - WIN_DOORLOCK = 0xde - WIN_DOORUNLOCK = 0xdf - WIN_DOWNLOAD_MICROCODE = 0x92 - WIN_FLUSH_CACHE = 0xe7 - WIN_FLUSH_CACHE_EXT = 0xea - WIN_FORMAT = 0x50 - WIN_GETMEDIASTATUS = 0xda - WIN_IDENTIFY = 0xec - WIN_IDENTIFY_DMA = 0xee - WIN_IDLEIMMEDIATE = 0xe1 - WIN_INIT = 0x60 - WIN_MEDIAEJECT = 0xed - WIN_MULTREAD = 0xc4 - WIN_MULTREAD_EXT = 0x29 - WIN_MULTWRITE = 0xc5 - WIN_MULTWRITE_EXT = 0x39 - WIN_NOP = 0x0 - WIN_PACKETCMD = 0xa0 - WIN_PIDENTIFY = 0xa1 - WIN_POSTBOOT = 0xdc - WIN_PREBOOT = 0xdd - WIN_QUEUED_SERVICE = 0xa2 - WIN_READ = 0x20 - WIN_READDMA = 0xc8 - WIN_READDMA_EXT = 0x25 - WIN_READDMA_ONCE = 0xc9 - WIN_READDMA_QUEUED = 0xc7 - WIN_READDMA_QUEUED_EXT = 0x26 - WIN_READ_BUFFER = 0xe4 - WIN_READ_EXT = 0x24 - WIN_READ_LONG = 0x22 - WIN_READ_LONG_ONCE = 0x23 - WIN_READ_NATIVE_MAX = 0xf8 - WIN_READ_NATIVE_MAX_EXT = 0x27 - WIN_READ_ONCE = 0x21 - WIN_RECAL = 0x10 - WIN_RESTORE = 0x10 - WIN_SECURITY_DISABLE = 0xf6 - WIN_SECURITY_ERASE_PREPARE = 0xf3 - WIN_SECURITY_ERASE_UNIT = 0xf4 - WIN_SECURITY_FREEZE_LOCK = 0xf5 - WIN_SECURITY_SET_PASS = 0xf1 - WIN_SECURITY_UNLOCK = 0xf2 - WIN_SEEK = 0x70 - WIN_SETFEATURES = 0xef - WIN_SETIDLE1 = 0xe3 - WIN_SETIDLE2 = 0x97 - WIN_SETMULT = 0xc6 - WIN_SET_MAX = 0xf9 - WIN_SET_MAX_EXT = 0x37 - WIN_SLEEPNOW1 = 0xe6 - WIN_SLEEPNOW2 = 0x99 - WIN_SMART = 0xb0 - WIN_SPECIFY = 0x91 - WIN_SRST = 0x8 - WIN_STANDBY = 0xe2 - WIN_STANDBY2 = 0x96 - WIN_STANDBYNOW1 = 0xe0 - WIN_STANDBYNOW2 = 0x94 - WIN_VERIFY = 0x40 - WIN_VERIFY_EXT = 0x42 - WIN_VERIFY_ONCE = 0x41 - WIN_WRITE = 0x30 - WIN_WRITEDMA = 0xca - WIN_WRITEDMA_EXT = 0x35 - WIN_WRITEDMA_ONCE = 0xcb - WIN_WRITEDMA_QUEUED = 0xcc - WIN_WRITEDMA_QUEUED_EXT = 0x36 - WIN_WRITE_BUFFER = 0xe8 - WIN_WRITE_EXT = 0x34 - WIN_WRITE_LONG = 0x32 - WIN_WRITE_LONG_ONCE = 0x33 - WIN_WRITE_ONCE = 0x31 - WIN_WRITE_SAME = 0xe9 - WIN_WRITE_VERIFY = 0x3c - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XATTR_CREATE = 0x1 - XATTR_REPLACE = 0x2 - XCASE = 0x4 - XDP_COPY = 0x2 - XDP_FLAGS_DRV_MODE = 0x4 - XDP_FLAGS_HW_MODE = 0x8 - XDP_FLAGS_MASK = 0xf - XDP_FLAGS_MODES = 0xe - XDP_FLAGS_SKB_MODE = 0x2 - XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 - XDP_MMAP_OFFSETS = 0x1 - XDP_OPTIONS = 0x8 - XDP_OPTIONS_ZEROCOPY = 0x1 - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 - XDP_STATISTICS = 0x7 - XDP_TX_RING = 0x3 - XDP_UMEM_COMPLETION_RING = 0x6 - XDP_UMEM_FILL_RING = 0x5 - XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 - XDP_UMEM_PGOFF_FILL_RING = 0x100000000 - XDP_UMEM_REG = 0x4 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 - XTABS = 0x1800 - Z3FOLD_MAGIC = 0x33 - ZSMALLOC_MAGIC = 0x58295829 - __TIOCFLUSH = 0x80047410 + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 + EPOLL_CLOEXEC = 0x400000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_RENAME = 0x20 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS64 = 0x16 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETREGS64 = 0x17 + PTRACE_SPARC_DETACH = 0xb + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x6 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x400000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BINDTOIFINDEX = 0x41 + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUSY_POLL = 0x30 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x33 + SO_INCOMING_NAPI_ID = 0x3a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_MEMINFO = 0x39 + SO_NOFCS = 0x27 + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERSEC = 0x1e + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVTIMEO = 0x2000 + SO_RCVTIMEO_NEW = 0x44 + SO_RCVTIMEO_OLD = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_SNDTIMEO_NEW = 0x45 + SO_SNDTIMEO_OLD = 0x4000 + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPING_NEW = 0x43 + SO_TIMESTAMPING_OLD = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TIMESTAMPNS_NEW = 0x42 + SO_TIMESTAMPNS_OLD = 0x21 + SO_TIMESTAMP_NEW = 0x46 + SO_TXTIME = 0x3f + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x25 + SO_ZEROCOPY = 0x3e + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TFD_CLOEXEC = 0x400000 + TFD_NONBLOCK = 0x4000 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285443 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGPTPEER = 0x20007489 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSISO7816 = 0xc0285444 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + __TIOCFLUSH = 0x80047410 ) // Errors const ( - E2BIG = syscall.Errno(0x7) - EACCES = syscall.Errno(0xd) EADDRINUSE = syscall.Errno(0x30) EADDRNOTAVAIL = syscall.Errno(0x31) EADV = syscall.Errno(0x53) EAFNOSUPPORT = syscall.Errno(0x2f) - EAGAIN = syscall.Errno(0xb) EALREADY = syscall.Errno(0x25) EBADE = syscall.Errno(0x66) - EBADF = syscall.Errno(0x9) EBADFD = syscall.Errno(0x5d) EBADMSG = syscall.Errno(0x4c) EBADR = syscall.Errno(0x67) EBADRQC = syscall.Errno(0x6a) EBADSLT = syscall.Errno(0x6b) EBFONT = syscall.Errno(0x6d) - EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x7f) - ECHILD = syscall.Errno(0xa) ECHRNG = syscall.Errno(0x5e) ECOMM = syscall.Errno(0x55) ECONNABORTED = syscall.Errno(0x35) @@ -2847,23 +555,15 @@ const ( EDEADLK = syscall.Errno(0x4e) EDEADLOCK = syscall.Errno(0x6c) EDESTADDRREQ = syscall.Errno(0x27) - EDOM = syscall.Errno(0x21) EDOTDOT = syscall.Errno(0x58) EDQUOT = syscall.Errno(0x45) - EEXIST = syscall.Errno(0x11) - EFAULT = syscall.Errno(0xe) - EFBIG = syscall.Errno(0x1b) EHOSTDOWN = syscall.Errno(0x40) EHOSTUNREACH = syscall.Errno(0x41) EHWPOISON = syscall.Errno(0x87) EIDRM = syscall.Errno(0x4d) EILSEQ = syscall.Errno(0x7a) EINPROGRESS = syscall.Errno(0x24) - EINTR = syscall.Errno(0x4) - EINVAL = syscall.Errno(0x16) - EIO = syscall.Errno(0x5) EISCONN = syscall.Errno(0x38) - EISDIR = syscall.Errno(0x15) EISNAM = syscall.Errno(0x78) EKEYEXPIRED = syscall.Errno(0x81) EKEYREJECTED = syscall.Errno(0x83) @@ -2880,8 +580,6 @@ const ( ELNRNG = syscall.Errno(0x62) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x7e) - EMFILE = syscall.Errno(0x18) - EMLINK = syscall.Errno(0x1f) EMSGSIZE = syscall.Errno(0x28) EMULTIHOP = syscall.Errno(0x57) ENAMETOOLONG = syscall.Errno(0x3f) @@ -2889,102 +587,70 @@ const ( ENETDOWN = syscall.Errno(0x32) ENETRESET = syscall.Errno(0x34) ENETUNREACH = syscall.Errno(0x33) - ENFILE = syscall.Errno(0x17) ENOANO = syscall.Errno(0x69) ENOBUFS = syscall.Errno(0x37) ENOCSI = syscall.Errno(0x64) ENODATA = syscall.Errno(0x6f) - ENODEV = syscall.Errno(0x13) - ENOENT = syscall.Errno(0x2) - ENOEXEC = syscall.Errno(0x8) ENOKEY = syscall.Errno(0x80) ENOLCK = syscall.Errno(0x4f) ENOLINK = syscall.Errno(0x52) ENOMEDIUM = syscall.Errno(0x7d) - ENOMEM = syscall.Errno(0xc) ENOMSG = syscall.Errno(0x4b) ENONET = syscall.Errno(0x50) ENOPKG = syscall.Errno(0x71) ENOPROTOOPT = syscall.Errno(0x2a) - ENOSPC = syscall.Errno(0x1c) ENOSR = syscall.Errno(0x4a) ENOSTR = syscall.Errno(0x48) ENOSYS = syscall.Errno(0x5a) - ENOTBLK = syscall.Errno(0xf) ENOTCONN = syscall.Errno(0x39) - ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) ENOTNAM = syscall.Errno(0x76) ENOTRECOVERABLE = syscall.Errno(0x85) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x2d) - ENOTTY = syscall.Errno(0x19) ENOTUNIQ = syscall.Errno(0x73) - ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x5c) EOWNERDEAD = syscall.Errno(0x84) - EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) - EPIPE = syscall.Errno(0x20) EPROCLIM = syscall.Errno(0x43) EPROTO = syscall.Errno(0x56) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) - ERANGE = syscall.Errno(0x22) EREMCHG = syscall.Errno(0x59) EREMOTE = syscall.Errno(0x47) EREMOTEIO = syscall.Errno(0x79) ERESTART = syscall.Errno(0x74) ERFKILL = syscall.Errno(0x86) - EROFS = syscall.Errno(0x1e) ERREMOTE = syscall.Errno(0x51) ESHUTDOWN = syscall.Errno(0x3a) ESOCKTNOSUPPORT = syscall.Errno(0x2c) - ESPIPE = syscall.Errno(0x1d) - ESRCH = syscall.Errno(0x3) ESRMNT = syscall.Errno(0x54) ESTALE = syscall.Errno(0x46) ESTRPIPE = syscall.Errno(0x5b) ETIME = syscall.Errno(0x49) ETIMEDOUT = syscall.Errno(0x3c) ETOOMANYREFS = syscall.Errno(0x3b) - ETXTBSY = syscall.Errno(0x1a) EUCLEAN = syscall.Errno(0x75) EUNATCH = syscall.Errno(0x63) EUSERS = syscall.Errno(0x44) - EWOULDBLOCK = syscall.Errno(0xb) - EXDEV = syscall.Errno(0x12) EXFULL = syscall.Errno(0x68) ) // Signals const ( - SIGABRT = syscall.Signal(0x6) - SIGALRM = syscall.Signal(0xe) SIGBUS = syscall.Signal(0xa) SIGCHLD = syscall.Signal(0x14) SIGCLD = syscall.Signal(0x14) SIGCONT = syscall.Signal(0x13) SIGEMT = syscall.Signal(0x7) - SIGFPE = syscall.Signal(0x8) - SIGHUP = syscall.Signal(0x1) - SIGILL = syscall.Signal(0x4) - SIGINT = syscall.Signal(0x2) SIGIO = syscall.Signal(0x17) - SIGIOT = syscall.Signal(0x6) - SIGKILL = syscall.Signal(0x9) SIGLOST = syscall.Signal(0x1d) - SIGPIPE = syscall.Signal(0xd) SIGPOLL = syscall.Signal(0x17) SIGPROF = syscall.Signal(0x1b) SIGPWR = syscall.Signal(0x1d) - SIGQUIT = syscall.Signal(0x3) - SIGSEGV = syscall.Signal(0xb) SIGSTOP = syscall.Signal(0x11) SIGSYS = syscall.Signal(0xc) - SIGTERM = syscall.Signal(0xf) - SIGTRAP = syscall.Signal(0x5) SIGTSTP = syscall.Signal(0x12) SIGTTIN = syscall.Signal(0x15) SIGTTOU = syscall.Signal(0x16) diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go index 96b9b8a..20f3a57 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -158,6 +158,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go index ed522a8..90b8fcd 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -158,6 +158,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go index c8d36fe..c5c0399 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -150,6 +150,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go index f1c146a..14dd3c1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -158,6 +158,12 @@ const ( CLONE_SIGHAND = 0x800 CLONE_VFORK = 0x4000 CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go index 5402bd5..c865a10 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -146,6 +146,13 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go index ffaf2d2..9db6b2f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -153,6 +153,13 @@ const ( CLOCK_REALTIME = 0x0 CLOCK_THREAD_CPUTIME_ID = 0x4 CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go index 7aa796a..7072526 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -146,6 +146,13 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go index 1792d3f..ac5efbe 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -156,6 +156,13 @@ const ( CLOCK_REALTIME = 0x0 CLOCK_THREAD_CPUTIME_ID = 0x4 CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 CREAD = 0x800 CRTSCTS = 0x10000 CS5 = 0x0 diff --git a/vendor/golang.org/x/sys/unix/zptracearm_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go similarity index 93% rename from vendor/golang.org/x/sys/unix/zptracearm_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go index faf23bb..89c5920 100644 --- a/vendor/golang.org/x/sys/unix/zptracearm_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -1,4 +1,4 @@ -// Code generated by linux/mkall.go generatePtracePair(arm, arm64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. // +build linux // +build arm arm64 diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go new file mode 100644 index 0000000..6cb6d68 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go @@ -0,0 +1,17 @@ +// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. + +package unix + +import "unsafe" + +// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} + return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} + +// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. +func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} + return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec))) +} diff --git a/vendor/golang.org/x/sys/unix/zptracemips_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go similarity index 93% rename from vendor/golang.org/x/sys/unix/zptracemips_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go index c431131..24b841e 100644 --- a/vendor/golang.org/x/sys/unix/zptracemips_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -1,4 +1,4 @@ -// Code generated by linux/mkall.go generatePtracePair(mips, mips64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. // +build linux // +build mips mips64 diff --git a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go similarity index 93% rename from vendor/golang.org/x/sys/unix/zptracemipsle_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go index dc3d6d3..47b0489 100644 --- a/vendor/golang.org/x/sys/unix/zptracemipsle_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -1,4 +1,4 @@ -// Code generated by linux/mkall.go generatePtracePair(mipsle, mips64le). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. // +build linux // +build mipsle mips64le diff --git a/vendor/golang.org/x/sys/unix/zptrace386_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go similarity index 95% rename from vendor/golang.org/x/sys/unix/zptrace386_linux.go rename to vendor/golang.org/x/sys/unix/zptrace_x86_linux.go index 2d21c49..ea5d9cb 100644 --- a/vendor/golang.org/x/sys/unix/zptrace386_linux.go +++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -1,4 +1,4 @@ -// Code generated by linux/mkall.go generatePtracePair(386, amd64). DO NOT EDIT. +// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. // +build linux // +build 386 amd64 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go index b42c1cb..23e94d3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -527,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -547,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -950,6 +966,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -1683,22 +1709,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { @@ -1709,18 +1719,6 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go index 603c9f6..e2ffb3b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go @@ -339,22 +339,6 @@ func libc_futimes_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -727,6 +711,22 @@ func libc_setattrlist_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -757,6 +757,27 @@ func libc_ioctl_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:linkname libc_sysctl libc_sysctl +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -1355,6 +1376,21 @@ func libc_getsid_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -2321,27 +2357,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { @@ -2357,23 +2372,6 @@ func libc_ptrace_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s index ece6f67..6836a41 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s @@ -44,8 +44,6 @@ TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -84,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -262,8 +264,6 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 JMP libc_ptrace(SB) TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go index 38b7cba..1025617 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -527,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -547,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -950,6 +966,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -1683,22 +1709,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { @@ -1709,18 +1719,6 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go index fda478e..c67e336 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -339,22 +339,6 @@ func libc_futimes_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -727,6 +711,22 @@ func libc_setattrlist_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -757,6 +757,27 @@ func libc_ioctl_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:linkname libc_sysctl libc_sysctl +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -1355,6 +1376,21 @@ func libc_getsid_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -2321,27 +2357,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc___sysctl_trampoline() - -//go:linkname libc___sysctl libc___sysctl -//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { @@ -2357,23 +2372,6 @@ func libc_ptrace_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s index 7c4d590..a3fdf09 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -44,8 +44,6 @@ TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -84,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 @@ -262,8 +264,6 @@ TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) -TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 - JMP libc___sysctl(SB) TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 JMP libc_ptrace(SB) TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go index abb6918..d34e6df 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -527,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -547,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -950,6 +966,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -1666,18 +1692,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go index 163b391..b759757 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go @@ -339,22 +339,6 @@ func libc_futimes_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -727,6 +711,22 @@ func libc_setattrlist_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -757,6 +757,27 @@ func libc_ioctl_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:linkname libc_sysctl libc_sysctl +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) if e1 != 0 { @@ -1355,6 +1376,21 @@ func libc_getsid_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -2321,23 +2357,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int32(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s index 5bebb1b..b67f518 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s @@ -44,8 +44,6 @@ TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -84,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go index b75c11d..8d39a09 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -527,6 +516,17 @@ func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintp // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -547,6 +547,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -950,6 +966,16 @@ func Getsid(pid int) (sid int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) uid = int(r0) @@ -1666,18 +1692,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go index 7c5bd51..b288612 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -339,22 +339,6 @@ func libc_futimes_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_fcntl_trampoline() - -//go:linkname libc_fcntl libc_fcntl -//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -727,6 +711,22 @@ func libc_setattrlist_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func kill(pid int, signum int, posix int) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) if e1 != 0 { @@ -757,6 +757,27 @@ func libc_ioctl_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sysctl_trampoline() + +//go:linkname libc_sysctl libc_sysctl +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { @@ -1355,6 +1376,21 @@ func libc_getsid_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Getuid() (uid int) { r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) @@ -2321,23 +2357,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) - sec = int64(r0) - usec = int32(r1) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -func libc_gettimeofday_trampoline() - -//go:linkname libc_gettimeofday libc_gettimeofday -//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstat(fd int, stat *Stat_t) (err error) { _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s index 96ab987..40cce1b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -44,8 +44,6 @@ TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) -TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 JMP libc_poll(SB) TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 @@ -84,10 +82,14 @@ TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 JMP libc_flistxattr(SB) TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 JMP libc_setattrlist(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 JMP libc_kill(SB) TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) +TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go index df199b3..fe1fdd7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -255,17 +255,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index e68185f..600f1d2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func utimes(path string, timeval *[2]Timeval) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -255,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -387,16 +360,6 @@ func pipe2(p *[2]_C_int, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func ptrace(request int, pid int, addr uintptr, data int) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Getcwd(buf []byte) (n int, err error) { var _p0 unsafe.Pointer if len(buf) > 0 { @@ -424,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1363,7 +1352,7 @@ func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index 2f77f93..064934b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe2(p *[2]_C_int, flags int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { @@ -414,6 +387,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ptrace(request int, pid int, addr uintptr, data int) (err error) { _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index e9a12c9..31d2c46 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index 27ab0fb..4adaaa5 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -tags freebsd,arm64 -- syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go +// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. // +build freebsd,arm64 @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe2(p *[2]_C_int, flags int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { @@ -414,6 +387,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ptrace(request int, pid int, addr uintptr, data int) (err error) { _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go new file mode 100644 index 0000000..92efa1d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -0,0 +1,87 @@ +// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build illumos,amd64 + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_readv readv "libc.so" +//go:cgo_import_dynamic libc_preadv preadv "libc.so" +//go:cgo_import_dynamic libc_writev writev "libc.so" +//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" + +//go:linkname procreadv libc_readv +//go:linkname procpreadv libc_preadv +//go:linkname procwritev libc_writev +//go:linkname procpwritev libc_pwritev + +var ( + procreadv, + procpreadv, + procwritev, + procpwritev syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go new file mode 100644 index 0000000..4eec7a7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -0,0 +1,1917 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +import ( + "syscall" + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { + r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fchmodat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlJoin(cmd int, arg2 string) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg2) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg3) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(arg4) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { + var _p0 unsafe.Pointer + if len(payload) > 0 { + _p0 = unsafe.Pointer(&payload[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(restriction) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { + _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(payload) > 0 { + _p2 = unsafe.Pointer(&payload[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGetres(clockid int32, res *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func DeleteModule(name string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Eventfd(initval uint, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FinitModule(fd int, params string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + var _p0 unsafe.Pointer + if len(dest) > 0 { + _p0 = unsafe.Pointer(&dest[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrandom(buf []byte, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InitModule(moduleImage []byte, params string) (err error) { + var _p0 unsafe.Pointer + if len(moduleImage) > 0 { + _p0 = unsafe.Pointer(&moduleImage[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 *byte + _p1, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Llistxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lremovexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdCreate(name string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(callback) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { + r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) + newfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + SyscallNoError(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Syncfs(fd int) (err error) { + _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdCreate(clockid int, flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func faccessat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index fe5d462..19ebd3f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(int64(r1)<<32 | int64(r0)) @@ -1495,270 +45,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe(p *[2]_C_int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { @@ -1769,17 +55,7 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2030,8 +306,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2040,8 +317,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 536abce..5c56218 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2046,8 +332,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2056,8 +343,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2432,16 +720,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 37823cd..dc69d99 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(int64(r1)<<32 | int64(r0)) @@ -1495,270 +45,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe(p *[2]_C_int) (err error) { _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { @@ -1769,16 +55,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) @@ -1958,7 +234,7 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2166,8 +442,9 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2176,8 +453,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 794f612..1b897de 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,270 +45,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1865,7 +151,7 @@ func Getgid() (gid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Getrlimit(resource int, rlim *Rlimit) (err error) { +func getrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { err = errnoErr(e1) @@ -1969,8 +255,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1979,8 +266,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2019,7 +307,7 @@ func Setresuid(ruid int, euid int, suid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setrlimit(resource int, rlim *Rlimit) (err error) { +func setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { err = errnoErr(e1) @@ -2300,16 +588,6 @@ func Gettimeofday(tv *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(cmdline) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index 1b34b55..4918684 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(int64(r0)<<32 | int64(r1)) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1960,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1970,8 +257,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2417,16 +705,6 @@ func Pause() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (p1 int, p2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) p1 = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 5714e25..9171d3b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1990,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2000,8 +287,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2376,16 +664,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fstat(fd int, st *stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 88a6b33..82286f0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1990,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2000,8 +287,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2376,16 +664,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fstat(fd int, st *stat_t) (err error) { _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index c09dbe3..1592062 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(int64(r1)<<32 | int64(r0)) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -1960,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1970,8 +257,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2417,16 +705,6 @@ func Pause() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (p1 int, p2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) p1 = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 42f6c21..73a42e2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2072,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2082,8 +369,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2484,16 +772,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index de2cd8d..6b85595 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2072,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2082,8 +369,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2484,16 +772,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index d51bf07..b761334 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,270 +45,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1949,8 +235,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -1959,8 +246,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2280,16 +568,6 @@ func Gettimeofday(tv *Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { var _p0 *byte _p0, err = BytePtrFromString(cmdline) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index 1e3a3cb..d7032ab 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,271 +45,7 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2042,8 +328,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2052,8 +339,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2264,16 +552,6 @@ func utimes(path string, times *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index 3c97008..bcbbdd9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -14,17 +14,6 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { - r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) if e1 != 0 { @@ -35,585 +24,6 @@ func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fchmodat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(buf) > 0 { - _p1 = unsafe.Pointer(&buf[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unlinkat(dirfd int, path string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getcwd(buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlJoin(cmd int, arg2 string) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg2) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg3) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(arg4) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { - var _p0 unsafe.Pointer - if len(payload) > 0 { - _p0 = unsafe.Pointer(&payload[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) - ret = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(restriction) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { - _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(arg) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(source) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(target) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(fstype) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Acct(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(payload) > 0 { - _p2 = unsafe.Pointer(&payload[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Adjtimex(buf *Timex) (state int, err error) { - r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) - state = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { - _, _, e1 := Syscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chdir(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Chroot(path string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGetres(clockid int32, res *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { - _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { - r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func DeleteModule(name string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup(oldfd int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Dup3(oldfd int, newfd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCreate1(flag int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { - _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Eventfd(initval uint, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Exit(code int) { - SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) if e1 != 0 { @@ -624,866 +34,6 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fdatasync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func FinitModule(fd int, params string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - var _p0 unsafe.Pointer - if len(dest) > 0 { - _p0 = unsafe.Pointer(&dest[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fremovexattr(fd int, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) - pgid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpid() (pid int) { - r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) - pid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getppid() (ppid int) { - r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) - ppid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) - prio = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrandom(buf []byte, flags int) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) - sid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Gettid() (tid int) { - r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) - tid = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Getxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InitModule(moduleImage []byte, params string) (err error) { - var _p0 unsafe.Pointer - if len(moduleImage) > 0 { - _p0 = unsafe.Pointer(&moduleImage[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - var _p1 *byte - _p1, err = BytePtrFromString(params) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) - watchdesc = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyInit1(flags int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { - r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) - success = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Kill(pid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Klogctl(typ int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(dest) > 0 { - _p2 = unsafe.Pointer(&dest[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Listxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Llistxattr(path string, dest []byte) (sz int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 unsafe.Pointer - if len(dest) > 0 { - _p1 = unsafe.Pointer(&dest[0]) - } else { - _p1 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) - sz = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lremovexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func MemfdCreate(name string, flags int) (fd int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(name) - if err != nil { - return - } - r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mkdirat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { - r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func PivotRoot(newroot string, putold string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(newroot) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(putold) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { - _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func read(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Removexattr(path string, attr string) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(oldpath) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(newpath) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { - var _p0 *byte - _p0, err = BytePtrFromString(keyType) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(description) - if err != nil { - return - } - var _p2 *byte - _p2, err = BytePtrFromString(callback) - if err != nil { - return - } - r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) - id = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setdomainname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sethostname(p []byte) (err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) - pid = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Settimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setns(fd int, nstype int) (err error) { - _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setxattr(path string, attr string, data []byte, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - var _p1 *byte - _p1, err = BytePtrFromString(attr) - if err != nil { - return - } - var _p2 unsafe.Pointer - if len(data) > 0 { - _p2 = unsafe.Pointer(&data[0]) - } else { - _p2 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { - r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) - newfd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sync() { - SyscallNoError(SYS_SYNC, 0, 0, 0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Syncfs(fd int) (err error) { - _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Sysinfo(info *Sysinfo_t) (err error) { - _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) n = int64(r0) @@ -1495,270 +45,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { - _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) - ticks = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Umask(mask int) (oldmask int) { - r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) - oldmask = int(r0) - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Uname(buf *Utsname) (err error) { - _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unmount(target string, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(target) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Unshare(flags int) (err error) { - _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { - _p0 = unsafe.Pointer(&p[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func exitThread(code int) (err error) { - _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readlen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func writelen(fd int, p *byte, np int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mprotect(b []byte, prot int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Msync(b []byte, flags int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlock(b []byte) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { - _p0 = unsafe.Pointer(&b[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func faccessat(dirfd int, path string, mode uint32) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(pathname) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { - r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) - fd = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { var _p0 unsafe.Pointer if len(events) > 0 { @@ -1786,7 +72,7 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Dup2(oldfd int, newfd int) (err error) { +func dup2(oldfd int, newfd int) (err error) { _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) if e1 != 0 { err = errnoErr(e1) @@ -2041,8 +327,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsgid(gid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2051,8 +338,9 @@ func Setfsgid(gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setfsuid(uid int) (err error) { - _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) if e1 != 0 { err = errnoErr(e1) } @@ -2442,16 +730,6 @@ func pipe(p *[2]_C_int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 5ade42c..3bbd9e3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (fd1 int, fd2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) fd1 = int(r0) @@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1635,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index 3e0bbc5..d8cf501 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (fd1 int, fd2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) fd1 = int(r0) @@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1635,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index cb0af13..1153fe6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (fd1 int, fd2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) fd1 = int(r0) @@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1635,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 6fd48d3..24b4ebb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,22 +350,6 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func pipe() (fd1 int, fd2 int, err error) { r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) fd1 = int(r0) @@ -433,6 +406,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Access(path string, mode uint32) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -564,6 +553,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return @@ -926,6 +925,16 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Fsync(fd int) (err error) { _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) if e1 != 0 { @@ -1635,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Symlink(path string, link string) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index 2938e41..b44b31a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,24 +350,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 22b79ab..67f93ee 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,24 +350,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index cb921f3..d7c878b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,24 +350,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index 5a74380..8facd69 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -239,17 +239,6 @@ func futimes(fd int, timeval *[2]Timeval) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) - val = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) @@ -361,24 +350,8 @@ func Munlockall() (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { - var _p0 unsafe.Pointer - if len(mib) > 0 { - _p0 = unsafe.Pointer(&mib[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func pipe(p *[2]_C_int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } @@ -431,6 +404,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) @@ -573,6 +562,16 @@ func Dup2(from int, to int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Exit(code int) { Syscall(SYS_EXIT, uintptr(code), 0, 0) return diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index 37dcc74..102f1ab 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -1,4 +1,4 @@ -// mksysctl_openbsd.pl +// go run mksysctl_openbsd.go // Code generated by the command above; DO NOT EDIT. // +build 386,openbsd @@ -30,6 +30,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.physmem", []_C_int{6, 19}}, {"hw.product", []_C_int{6, 15}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index fe6caa6..4866fce 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -31,6 +31,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index 6eb8c0b..d3801eb 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -30,6 +30,7 @@ var sysctlMib = []mibentry{ {"hw.model", []_C_int{6, 2}}, {"hw.ncpu", []_C_int{6, 3}}, {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, {"hw.physmem", []_C_int{6, 19}}, {"hw.product", []_C_int{6, 15}}, diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 7aae554..a597e06 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -431,4 +431,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 7968439..8c102e5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -353,4 +353,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 3c663c6..98f9b68 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -395,4 +395,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 753def9..4dabc33 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -297,4 +297,8 @@ const ( SYS_FSMOUNT = 432 SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index ac86bd5..d5724e5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -415,4 +415,8 @@ const ( SYS_FSMOUNT = 4432 SYS_FSPICK = 4433 SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 1f5705b..c1d824a 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -345,4 +345,8 @@ const ( SYS_FSMOUNT = 5432 SYS_FSPICK = 5433 SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index d9ed953..598dd5d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -345,4 +345,8 @@ const ( SYS_FSMOUNT = 5432 SYS_FSPICK = 5433 SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index 94266b6..c36782d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -415,4 +415,8 @@ const ( SYS_FSMOUNT = 4432 SYS_FSPICK = 4433 SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index 52e3da6..9287538 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -395,4 +395,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 6141f90..4dafad8 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -395,4 +395,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 4f7261a..6642cfc 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -297,4 +297,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index f47014a..23367b9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -360,4 +360,7 @@ const ( SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 SYS_CLONE3 = 435 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index dd78abb..083aa02 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -374,4 +374,7 @@ const ( SYS_FSMOUNT = 432 SYS_FSPICK = 433 SYS_PIDFD_OPEN = 434 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go index c206f2b..71ea1d6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -467,3 +467,13 @@ type Utsname struct { Version [32]byte Machine [32]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index 7312e95..2a3ec61 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -128,9 +128,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -153,9 +153,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -375,15 +375,15 @@ type PtraceLwpInfoStruct struct { } type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [4]byte - X_reason [32]byte + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + _ [32]byte } type Sigset_t struct { @@ -423,7 +423,7 @@ type PtraceIoDesc struct { Op int32 Offs *byte Addr *byte - Len uint + Len uint32 } type Kevent_t struct { @@ -458,7 +458,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -469,7 +469,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -536,7 +535,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -547,7 +546,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -564,7 +563,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -698,3 +697,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index 29ba2f5..e11e954 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -123,9 +123,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -148,9 +148,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -275,10 +275,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -428,7 +426,7 @@ type PtraceIoDesc struct { Op int32 Offs *byte Addr *byte - Len uint + Len uint64 } type Kevent_t struct { @@ -463,7 +461,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -474,7 +472,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -541,7 +538,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -552,7 +549,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -569,7 +566,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -623,7 +620,6 @@ type BpfZbuf struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -704,3 +700,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index b4090ef..b91c2ae 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -125,9 +125,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -150,9 +150,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -405,7 +405,7 @@ type PtraceIoDesc struct { Op int32 Offs *byte Addr *byte - Len uint + Len uint32 } type Kevent_t struct { @@ -681,3 +681,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index 1542a87..c6fe1d0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -1,4 +1,4 @@ -// cgo -godefs types_freebsd.go | go run mkpost.go +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm64,freebsd @@ -123,9 +123,9 @@ type Statfs_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [1024]int8 - Mntonname [1024]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte } type statfs_freebsd11_t struct { @@ -148,9 +148,9 @@ type statfs_freebsd11_t struct { Owner uint32 Fsid Fsid Charspare [80]int8 - Fstypename [16]int8 - Mntfromname [88]int8 - Mntonname [88]int8 + Fstypename [16]byte + Mntfromname [88]byte + Mntonname [88]byte } type Flock_t struct { @@ -275,10 +275,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen int32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -326,11 +324,9 @@ const ( PTRACE_CONT = 0x7 PTRACE_DETACH = 0xb PTRACE_GETFPREGS = 0x23 - PTRACE_GETFSBASE = 0x47 PTRACE_GETLWPLIST = 0xf PTRACE_GETNUMLWPS = 0xe PTRACE_GETREGS = 0x21 - PTRACE_GETXSTATE = 0x45 PTRACE_IO = 0xc PTRACE_KILL = 0x8 PTRACE_LWPEVENTS = 0x18 @@ -373,15 +369,15 @@ type PtraceLwpInfoStruct struct { } type __Siginfo struct { - Signo int32 - Errno int32 - Code int32 - Pid int32 - Uid uint32 - Status int32 - Addr *byte - Value [8]byte - X_reason [40]byte + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte } type Sigset_t struct { @@ -394,19 +390,21 @@ type Reg struct { Sp uint64 Elr uint64 Spsr uint32 + _ [4]byte } type FpReg struct { - Fp_q [32]uint128 - Fp_sr uint32 - Fp_cr uint32 + Q [32][16]uint8 + Sr uint32 + Cr uint32 + _ [8]byte } type PtraceIoDesc struct { Op int32 Offs *byte Addr *byte - Len uint + Len uint64 } type Kevent_t struct { @@ -441,7 +439,7 @@ type ifMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Data ifData } @@ -452,7 +450,6 @@ type IfMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte Data IfData } @@ -519,7 +516,7 @@ type IfaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 Metric int32 } @@ -530,7 +527,7 @@ type IfmaMsghdr struct { Addrs int32 Flags int32 Index uint16 - _ [2]byte + _ uint16 } type IfAnnounceMsghdr struct { @@ -547,7 +544,7 @@ type RtMsghdr struct { Version uint8 Type uint8 Index uint16 - _ [2]byte + _ uint16 Flags int32 Addrs int32 Pid int32 @@ -601,7 +598,6 @@ type BpfZbuf struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -682,3 +678,13 @@ type Utsname struct { Version [256]byte Machine [256]byte } + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go new file mode 100644 index 0000000..77449a9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -0,0 +1,2507 @@ +// Code generated by mkmerge.go; DO NOT EDIT. + +// +build linux + +package unix + +const ( + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + + _C_long_long int64 +) + +type ItimerSpec struct { + Interval Timespec + Value Timespec +} + +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type StatxTimestamp struct { + Sec int64 + Nsec uint32 + _ int32 +} + +type Statx_t struct { + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + _ uint64 + _ [12]uint64 +} + +type Fsid struct { + Val [2]int32 +} + +type FscryptPolicy struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptKey struct { + Mode uint32 + Raw [64]uint8 + Size uint32 +} + +type FscryptPolicyV1 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptPolicyV2 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + _ [4]uint8 + Master_key_identifier [16]uint8 +} + +type FscryptGetPolicyExArg struct { + Size uint64 + Policy [24]byte +} + +type FscryptKeySpecifier struct { + Type uint32 + _ uint32 + U [32]byte +} + +type FscryptAddKeyArg struct { + Key_spec FscryptKeySpecifier + Raw_size uint32 + Key_id uint32 + _ [8]uint32 +} + +type FscryptRemoveKeyArg struct { + Key_spec FscryptKeySpecifier + Removal_status_flags uint32 + _ [5]uint32 +} + +type FscryptGetKeyStatusArg struct { + Key_spec FscryptKeySpecifier + _ [6]uint32 + Status uint32 + Status_flags uint32 + User_count uint32 + _ [13]uint32 +} + +type DmIoctl struct { + Version [3]uint32 + Data_size uint32 + Data_start uint32 + Target_count uint32 + Open_count int32 + Flags uint32 + Event_nr uint32 + _ uint32 + Dev uint64 + Name [128]byte + Uuid [129]byte + Data [7]byte +} + +type DmTargetSpec struct { + Sector_start uint64 + Length uint64 + Status int32 + Next uint32 + Target_type [16]byte +} + +type DmTargetDeps struct { + Count uint32 + _ uint32 +} + +type DmTargetVersions struct { + Next uint32 + Version [3]uint32 +} + +type DmTargetMsg struct { + Sector uint64 +} + +const ( + SizeofDmIoctl = 0x138 + SizeofDmTargetSpec = 0x28 +) + +type KeyctlDHParams struct { + Private int32 + Prime int32 + Base int32 +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrL2 struct { + Family uint16 + Psm uint16 + Bdaddr [6]uint8 + Cid uint16 + Bdaddr_type uint8 + _ [1]byte +} + +type RawSockaddrRFCOMM struct { + Family uint16 + Bdaddr [6]uint8 + Channel uint8 + _ [1]byte +} + +type RawSockaddrCAN struct { + Family uint16 + Ifindex int32 + Addr [16]byte +} + +type RawSockaddrALG struct { + Family uint16 + Type [14]uint8 + Feat uint32 + Mask uint32 + Name [64]uint8 +} + +type RawSockaddrVM struct { + Family uint16 + Reserved1 uint16 + Port uint32 + Cid uint32 + Zero [4]uint8 +} + +type RawSockaddrXDP struct { + Family uint16 + Flags uint16 + Ifindex uint32 + Queue_id uint32 + Shared_umem_fd uint32 +} + +type RawSockaddrPPPoX [0x1e]byte + +type RawSockaddrTIPC struct { + Family uint16 + Addrtype uint8 + Scope int8 + Addr [12]byte +} + +type RawSockaddrL2TPIP struct { + Family uint16 + Unused uint16 + Addr [4]byte /* in_addr */ + Conn_id uint32 + _ [4]uint8 +} + +type RawSockaddrL2TPIP6 struct { + Family uint16 + Unused uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + Conn_id uint32 +} + +type RawSockaddrIUCV struct { + Family uint16 + Port uint16 + Addr uint32 + Nodeid [8]int8 + User_id [8]int8 + Name [8]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type PacketMreq struct { + Ifindex int32 + Type uint16 + Alen uint16 + Address [8]uint8 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type CanFilter struct { + Id uint32 + Mask uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrL2 = 0xe + SizeofSockaddrRFCOMM = 0xa + SizeofSockaddrCAN = 0x18 + SizeofSockaddrALG = 0x58 + SizeofSockaddrVM = 0x10 + SizeofSockaddrXDP = 0x10 + SizeofSockaddrPPPoX = 0x1e + SizeofSockaddrTIPC = 0x10 + SizeofSockaddrL2TPIP = 0x10 + SizeofSockaddrL2TPIP6 = 0x20 + SizeofSockaddrIUCV = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 + SizeofCanFilter = 0x8 +) + +const ( + NDA_UNSPEC = 0x0 + NDA_DST = 0x1 + NDA_LLADDR = 0x2 + NDA_CACHEINFO = 0x3 + NDA_PROBES = 0x4 + NDA_VLAN = 0x5 + NDA_PORT = 0x6 + NDA_VNI = 0x7 + NDA_IFINDEX = 0x8 + NDA_MASTER = 0x9 + NDA_LINK_NETNSID = 0xa + NDA_SRC_VNI = 0xb + NTF_USE = 0x1 + NTF_SELF = 0x2 + NTF_MASTER = 0x4 + NTF_PROXY = 0x8 + NTF_EXT_LEARNED = 0x10 + NTF_OFFLOADED = 0x20 + NTF_ROUTER = 0x80 + NUD_INCOMPLETE = 0x1 + NUD_REACHABLE = 0x2 + NUD_STALE = 0x4 + NUD_DELAY = 0x8 + NUD_PROBE = 0x10 + NUD_FAILED = 0x20 + NUD_NOARP = 0x40 + NUD_PERMANENT = 0x80 + NUD_NONE = 0x0 + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFA_FLAGS = 0x8 + IFA_RT_PRIORITY = 0x9 + IFA_TARGET_NETNSID = 0xa + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_TARGET_NETNSID = 0x2e + IFLA_CARRIER_UP_COUNT = 0x2f + IFLA_CARRIER_DOWN_COUNT = 0x30 + IFLA_NEW_IFINDEX = 0x31 + IFLA_MIN_MTU = 0x32 + IFLA_MAX_MTU = 0x33 + IFLA_MAX = 0x36 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 + IFLA_INFO_XSTATS = 0x3 + IFLA_INFO_SLAVE_KIND = 0x4 + IFLA_INFO_SLAVE_DATA = 0x5 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofIfaCacheinfo = 0x10 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 + SizeofNdMsg = 0xc +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + _ uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type IfaCacheinfo struct { + Prefered uint32 + Valid uint32 + Cstamp uint32 + Tstamp uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +type NdUseroptmsg struct { + Family uint8 + Pad1 uint8 + Opts_len uint16 + Ifindex int32 + Icmp_type uint8 + Icmp_code uint8 + Pad2 uint16 + Pad3 uint32 +} + +type NdMsg struct { + Family uint8 + Pad1 uint8 + Pad2 uint16 + Ifindex int32 + State uint16 + Flags uint8 + Type uint8 +} + +const ( + SizeofSockFilter = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +const SI_LOAD_SHIFT = 0x10 + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +const ( + AT_EMPTY_PATH = 0x1000 + AT_FDCWD = -0x64 + AT_NO_AUTOMOUNT = 0x800 + AT_REMOVEDIR = 0x200 + + AT_STATX_SYNC_AS_STAT = 0x0 + AT_STATX_FORCE_SYNC = 0x2000 + AT_STATX_DONT_SYNC = 0x4000 + + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + Addr_lsb uint16 + _ uint16 + Syscall int32 + Call_addr uint64 + Arch uint32 + _ [28]uint8 +} + +const PERF_IOC_FLAG_GROUP = 0x1 + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + TASKSTATS_CMD_UNSPEC = 0x0 + TASKSTATS_CMD_GET = 0x1 + TASKSTATS_CMD_NEW = 0x2 + TASKSTATS_TYPE_UNSPEC = 0x0 + TASKSTATS_TYPE_PID = 0x1 + TASKSTATS_TYPE_TGID = 0x2 + TASKSTATS_TYPE_STATS = 0x3 + TASKSTATS_TYPE_AGGR_PID = 0x4 + TASKSTATS_TYPE_AGGR_TGID = 0x5 + TASKSTATS_TYPE_NULL = 0x6 + TASKSTATS_CMD_ATTR_UNSPEC = 0x0 + TASKSTATS_CMD_ATTR_PID = 0x1 + TASKSTATS_CMD_ATTR_TGID = 0x2 + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 +) + +type CGroupStats struct { + Sleeping uint64 + Running uint64 + Stopped uint64 + Uninterruptible uint64 + Io_wait uint64 +} + +const ( + CGROUPSTATS_CMD_UNSPEC = 0x3 + CGROUPSTATS_CMD_GET = 0x4 + CGROUPSTATS_CMD_NEW = 0x5 + CGROUPSTATS_TYPE_UNSPEC = 0x0 + CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 + CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 + CGROUPSTATS_CMD_ATTR_FD = 0x1 +) + +type Genlmsghdr struct { + Cmd uint8 + Version uint8 + Reserved uint16 +} + +const ( + CTRL_CMD_UNSPEC = 0x0 + CTRL_CMD_NEWFAMILY = 0x1 + CTRL_CMD_DELFAMILY = 0x2 + CTRL_CMD_GETFAMILY = 0x3 + CTRL_CMD_NEWOPS = 0x4 + CTRL_CMD_DELOPS = 0x5 + CTRL_CMD_GETOPS = 0x6 + CTRL_CMD_NEWMCAST_GRP = 0x7 + CTRL_CMD_DELMCAST_GRP = 0x8 + CTRL_CMD_GETMCAST_GRP = 0x9 + CTRL_ATTR_UNSPEC = 0x0 + CTRL_ATTR_FAMILY_ID = 0x1 + CTRL_ATTR_FAMILY_NAME = 0x2 + CTRL_ATTR_VERSION = 0x3 + CTRL_ATTR_HDRSIZE = 0x4 + CTRL_ATTR_MAXATTR = 0x5 + CTRL_ATTR_OPS = 0x6 + CTRL_ATTR_MCAST_GROUPS = 0x7 + CTRL_ATTR_OP_UNSPEC = 0x0 + CTRL_ATTR_OP_ID = 0x1 + CTRL_ATTR_OP_FLAGS = 0x2 + CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 + CTRL_ATTR_MCAST_GRP_NAME = 0x1 + CTRL_ATTR_MCAST_GRP_ID = 0x2 +) + +const ( + _CPU_SETSIZE = 0x400 +) + +const ( + BDADDR_BREDR = 0x0 + BDADDR_LE_PUBLIC = 0x1 + BDADDR_LE_RANDOM = 0x2 +) + +type PerfEventAttr struct { + Type uint32 + Size uint32 + Config uint64 + Sample uint64 + Sample_type uint64 + Read_format uint64 + Bits uint64 + Wakeup uint32 + Bp_type uint32 + Ext1 uint64 + Ext2 uint64 + Branch_sample_type uint64 + Sample_regs_user uint64 + Sample_stack_user uint32 + Clockid int32 + Sample_regs_intr uint64 + Aux_watermark uint32 + Sample_max_stack uint16 + _ uint16 +} + +type PerfEventMmapPage struct { + Version uint32 + Compat_version uint32 + Lock uint32 + Index uint32 + Offset int64 + Time_enabled uint64 + Time_running uint64 + Capabilities uint64 + Pmc_width uint16 + Time_shift uint16 + Time_mult uint32 + Time_offset uint64 + Time_zero uint64 + Size uint32 + _ [948]uint8 + Data_head uint64 + Data_tail uint64 + Data_offset uint64 + Data_size uint64 + Aux_head uint64 + Aux_tail uint64 + Aux_offset uint64 + Aux_size uint64 +} + +const ( + PerfBitDisabled uint64 = CBitFieldMaskBit0 + PerfBitInherit = CBitFieldMaskBit1 + PerfBitPinned = CBitFieldMaskBit2 + PerfBitExclusive = CBitFieldMaskBit3 + PerfBitExcludeUser = CBitFieldMaskBit4 + PerfBitExcludeKernel = CBitFieldMaskBit5 + PerfBitExcludeHv = CBitFieldMaskBit6 + PerfBitExcludeIdle = CBitFieldMaskBit7 + PerfBitMmap = CBitFieldMaskBit8 + PerfBitComm = CBitFieldMaskBit9 + PerfBitFreq = CBitFieldMaskBit10 + PerfBitInheritStat = CBitFieldMaskBit11 + PerfBitEnableOnExec = CBitFieldMaskBit12 + PerfBitTask = CBitFieldMaskBit13 + PerfBitWatermark = CBitFieldMaskBit14 + PerfBitPreciseIPBit1 = CBitFieldMaskBit15 + PerfBitPreciseIPBit2 = CBitFieldMaskBit16 + PerfBitMmapData = CBitFieldMaskBit17 + PerfBitSampleIDAll = CBitFieldMaskBit18 + PerfBitExcludeHost = CBitFieldMaskBit19 + PerfBitExcludeGuest = CBitFieldMaskBit20 + PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 + PerfBitExcludeCallchainUser = CBitFieldMaskBit22 + PerfBitMmap2 = CBitFieldMaskBit23 + PerfBitCommExec = CBitFieldMaskBit24 + PerfBitUseClockID = CBitFieldMaskBit25 + PerfBitContextSwitch = CBitFieldMaskBit26 +) + +const ( + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + + PERF_COUNT_HW_CPU_CYCLES = 0x0 + PERF_COUNT_HW_INSTRUCTIONS = 0x1 + PERF_COUNT_HW_CACHE_REFERENCES = 0x2 + PERF_COUNT_HW_CACHE_MISSES = 0x3 + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 + PERF_COUNT_HW_BRANCH_MISSES = 0x5 + PERF_COUNT_HW_BUS_CYCLES = 0x6 + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 + PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 + + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + PERF_COUNT_SW_BPF_OUTPUT = 0xa + + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 + PERF_SAMPLE_BRANCH_IN_TX = 0x100 + PERF_SAMPLE_BRANCH_NO_TX = 0x200 + PERF_SAMPLE_BRANCH_COND = 0x400 + PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 + PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 + PERF_SAMPLE_BRANCH_CALL = 0x2000 + PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 + PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + PERF_RECORD_MMAP2 = 0xa + PERF_RECORD_AUX = 0xb + PERF_RECORD_ITRACE_START = 0xc + PERF_RECORD_LOST_SAMPLES = 0xd + PERF_RECORD_SWITCH = 0xe + PERF_RECORD_SWITCH_CPU_WIDE = 0xf + PERF_RECORD_NAMESPACES = 0x10 + + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_FLAG_FD_CLOEXEC = 0x8 +) + +type TCPMD5Sig struct { + Addr SockaddrStorage + Flags uint8 + Prefixlen uint8 + Keylen uint16 + _ uint32 + Key [80]uint8 +} + +type HDDriveCmdHdr struct { + Command uint8 + Number uint8 + Feature uint8 + Count uint8 +} + +type HDDriveID struct { + Config uint16 + Cyls uint16 + Reserved2 uint16 + Heads uint16 + Track_bytes uint16 + Sector_bytes uint16 + Sectors uint16 + Vendor0 uint16 + Vendor1 uint16 + Vendor2 uint16 + Serial_no [20]uint8 + Buf_type uint16 + Buf_size uint16 + Ecc_bytes uint16 + Fw_rev [8]uint8 + Model [40]uint8 + Max_multsect uint8 + Vendor3 uint8 + Dword_io uint16 + Vendor4 uint8 + Capability uint8 + Reserved50 uint16 + Vendor5 uint8 + TPIO uint8 + Vendor6 uint8 + TDMA uint8 + Field_valid uint16 + Cur_cyls uint16 + Cur_heads uint16 + Cur_sectors uint16 + Cur_capacity0 uint16 + Cur_capacity1 uint16 + Multsect uint8 + Multsect_valid uint8 + Lba_capacity uint32 + Dma_1word uint16 + Dma_mword uint16 + Eide_pio_modes uint16 + Eide_dma_min uint16 + Eide_dma_time uint16 + Eide_pio uint16 + Eide_pio_iordy uint16 + Words69_70 [2]uint16 + Words71_74 [4]uint16 + Queue_depth uint16 + Words76_79 [4]uint16 + Major_rev_num uint16 + Minor_rev_num uint16 + Command_set_1 uint16 + Command_set_2 uint16 + Cfsse uint16 + Cfs_enable_1 uint16 + Cfs_enable_2 uint16 + Csf_default uint16 + Dma_ultra uint16 + Trseuc uint16 + TrsEuc uint16 + CurAPMvalues uint16 + Mprc uint16 + Hw_config uint16 + Acoustic uint16 + Msrqs uint16 + Sxfert uint16 + Sal uint16 + Spg uint32 + Lba_capacity_2 uint64 + Words104_125 [22]uint16 + Last_lun uint16 + Word127 uint16 + Dlf uint16 + Csfo uint16 + Words130_155 [26]uint16 + Word156 uint16 + Words157_159 [3]uint16 + Cfa_power uint16 + Words161_175 [15]uint16 + Words176_205 [30]uint16 + Words206_254 [49]uint16 + Integrity_word uint16 +} + +const ( + ST_MANDLOCK = 0x40 + ST_NOATIME = 0x400 + ST_NODEV = 0x4 + ST_NODIRATIME = 0x800 + ST_NOEXEC = 0x8 + ST_NOSUID = 0x2 + ST_RDONLY = 0x1 + ST_RELATIME = 0x1000 + ST_SYNCHRONOUS = 0x10 +) + +type Tpacket2Hdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Nsec uint32 + Vlan_tci uint16 + Vlan_tpid uint16 + _ [4]uint8 +} + +type Tpacket3Hdr struct { + Next_offset uint32 + Sec uint32 + Nsec uint32 + Snaplen uint32 + Len uint32 + Status uint32 + Mac uint16 + Net uint16 + Hv1 TpacketHdrVariant1 + _ [8]uint8 +} + +type TpacketHdrVariant1 struct { + Rxhash uint32 + Vlan_tci uint32 + Vlan_tpid uint16 + _ uint16 +} + +type TpacketBlockDesc struct { + Version uint32 + To_priv uint32 + Hdr [40]byte +} + +type TpacketBDTS struct { + Sec uint32 + Usec uint32 +} + +type TpacketHdrV1 struct { + Block_status uint32 + Num_pkts uint32 + Offset_to_first_pkt uint32 + Blk_len uint32 + Seq_num uint64 + Ts_first_pkt TpacketBDTS + Ts_last_pkt TpacketBDTS +} + +type TpacketReq struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 +} + +type TpacketReq3 struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 + Retire_blk_tov uint32 + Sizeof_priv uint32 + Feature_req_word uint32 +} + +type TpacketStats struct { + Packets uint32 + Drops uint32 +} + +type TpacketStatsV3 struct { + Packets uint32 + Drops uint32 + Freeze_q_cnt uint32 +} + +type TpacketAuxdata struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Vlan_tci uint16 + Vlan_tpid uint16 +} + +const ( + TPACKET_V1 = 0x0 + TPACKET_V2 = 0x1 + TPACKET_V3 = 0x2 +) + +const ( + SizeofTpacket2Hdr = 0x20 + SizeofTpacket3Hdr = 0x30 + + SizeofTpacketStats = 0x8 + SizeofTpacketStatsV3 = 0xc +) + +const ( + NF_INET_PRE_ROUTING = 0x0 + NF_INET_LOCAL_IN = 0x1 + NF_INET_FORWARD = 0x2 + NF_INET_LOCAL_OUT = 0x3 + NF_INET_POST_ROUTING = 0x4 + NF_INET_NUMHOOKS = 0x5 +) + +const ( + NF_NETDEV_INGRESS = 0x0 + NF_NETDEV_NUMHOOKS = 0x1 +) + +const ( + NFPROTO_UNSPEC = 0x0 + NFPROTO_INET = 0x1 + NFPROTO_IPV4 = 0x2 + NFPROTO_ARP = 0x3 + NFPROTO_NETDEV = 0x5 + NFPROTO_BRIDGE = 0x7 + NFPROTO_IPV6 = 0xa + NFPROTO_DECNET = 0xc + NFPROTO_NUMPROTO = 0xd +) + +type Nfgenmsg struct { + Nfgen_family uint8 + Version uint8 + Res_id uint16 +} + +const ( + NFNL_BATCH_UNSPEC = 0x0 + NFNL_BATCH_GENID = 0x1 +) + +const ( + NFT_REG_VERDICT = 0x0 + NFT_REG_1 = 0x1 + NFT_REG_2 = 0x2 + NFT_REG_3 = 0x3 + NFT_REG_4 = 0x4 + NFT_REG32_00 = 0x8 + NFT_REG32_01 = 0x9 + NFT_REG32_02 = 0xa + NFT_REG32_03 = 0xb + NFT_REG32_04 = 0xc + NFT_REG32_05 = 0xd + NFT_REG32_06 = 0xe + NFT_REG32_07 = 0xf + NFT_REG32_08 = 0x10 + NFT_REG32_09 = 0x11 + NFT_REG32_10 = 0x12 + NFT_REG32_11 = 0x13 + NFT_REG32_12 = 0x14 + NFT_REG32_13 = 0x15 + NFT_REG32_14 = 0x16 + NFT_REG32_15 = 0x17 + NFT_CONTINUE = -0x1 + NFT_BREAK = -0x2 + NFT_JUMP = -0x3 + NFT_GOTO = -0x4 + NFT_RETURN = -0x5 + NFT_MSG_NEWTABLE = 0x0 + NFT_MSG_GETTABLE = 0x1 + NFT_MSG_DELTABLE = 0x2 + NFT_MSG_NEWCHAIN = 0x3 + NFT_MSG_GETCHAIN = 0x4 + NFT_MSG_DELCHAIN = 0x5 + NFT_MSG_NEWRULE = 0x6 + NFT_MSG_GETRULE = 0x7 + NFT_MSG_DELRULE = 0x8 + NFT_MSG_NEWSET = 0x9 + NFT_MSG_GETSET = 0xa + NFT_MSG_DELSET = 0xb + NFT_MSG_NEWSETELEM = 0xc + NFT_MSG_GETSETELEM = 0xd + NFT_MSG_DELSETELEM = 0xe + NFT_MSG_NEWGEN = 0xf + NFT_MSG_GETGEN = 0x10 + NFT_MSG_TRACE = 0x11 + NFT_MSG_NEWOBJ = 0x12 + NFT_MSG_GETOBJ = 0x13 + NFT_MSG_DELOBJ = 0x14 + NFT_MSG_GETOBJ_RESET = 0x15 + NFT_MSG_MAX = 0x19 + NFTA_LIST_UNPEC = 0x0 + NFTA_LIST_ELEM = 0x1 + NFTA_HOOK_UNSPEC = 0x0 + NFTA_HOOK_HOOKNUM = 0x1 + NFTA_HOOK_PRIORITY = 0x2 + NFTA_HOOK_DEV = 0x3 + NFT_TABLE_F_DORMANT = 0x1 + NFTA_TABLE_UNSPEC = 0x0 + NFTA_TABLE_NAME = 0x1 + NFTA_TABLE_FLAGS = 0x2 + NFTA_TABLE_USE = 0x3 + NFTA_CHAIN_UNSPEC = 0x0 + NFTA_CHAIN_TABLE = 0x1 + NFTA_CHAIN_HANDLE = 0x2 + NFTA_CHAIN_NAME = 0x3 + NFTA_CHAIN_HOOK = 0x4 + NFTA_CHAIN_POLICY = 0x5 + NFTA_CHAIN_USE = 0x6 + NFTA_CHAIN_TYPE = 0x7 + NFTA_CHAIN_COUNTERS = 0x8 + NFTA_CHAIN_PAD = 0x9 + NFTA_RULE_UNSPEC = 0x0 + NFTA_RULE_TABLE = 0x1 + NFTA_RULE_CHAIN = 0x2 + NFTA_RULE_HANDLE = 0x3 + NFTA_RULE_EXPRESSIONS = 0x4 + NFTA_RULE_COMPAT = 0x5 + NFTA_RULE_POSITION = 0x6 + NFTA_RULE_USERDATA = 0x7 + NFTA_RULE_PAD = 0x8 + NFTA_RULE_ID = 0x9 + NFT_RULE_COMPAT_F_INV = 0x2 + NFT_RULE_COMPAT_F_MASK = 0x2 + NFTA_RULE_COMPAT_UNSPEC = 0x0 + NFTA_RULE_COMPAT_PROTO = 0x1 + NFTA_RULE_COMPAT_FLAGS = 0x2 + NFT_SET_ANONYMOUS = 0x1 + NFT_SET_CONSTANT = 0x2 + NFT_SET_INTERVAL = 0x4 + NFT_SET_MAP = 0x8 + NFT_SET_TIMEOUT = 0x10 + NFT_SET_EVAL = 0x20 + NFT_SET_OBJECT = 0x40 + NFT_SET_POL_PERFORMANCE = 0x0 + NFT_SET_POL_MEMORY = 0x1 + NFTA_SET_DESC_UNSPEC = 0x0 + NFTA_SET_DESC_SIZE = 0x1 + NFTA_SET_UNSPEC = 0x0 + NFTA_SET_TABLE = 0x1 + NFTA_SET_NAME = 0x2 + NFTA_SET_FLAGS = 0x3 + NFTA_SET_KEY_TYPE = 0x4 + NFTA_SET_KEY_LEN = 0x5 + NFTA_SET_DATA_TYPE = 0x6 + NFTA_SET_DATA_LEN = 0x7 + NFTA_SET_POLICY = 0x8 + NFTA_SET_DESC = 0x9 + NFTA_SET_ID = 0xa + NFTA_SET_TIMEOUT = 0xb + NFTA_SET_GC_INTERVAL = 0xc + NFTA_SET_USERDATA = 0xd + NFTA_SET_PAD = 0xe + NFTA_SET_OBJ_TYPE = 0xf + NFT_SET_ELEM_INTERVAL_END = 0x1 + NFTA_SET_ELEM_UNSPEC = 0x0 + NFTA_SET_ELEM_KEY = 0x1 + NFTA_SET_ELEM_DATA = 0x2 + NFTA_SET_ELEM_FLAGS = 0x3 + NFTA_SET_ELEM_TIMEOUT = 0x4 + NFTA_SET_ELEM_EXPIRATION = 0x5 + NFTA_SET_ELEM_USERDATA = 0x6 + NFTA_SET_ELEM_EXPR = 0x7 + NFTA_SET_ELEM_PAD = 0x8 + NFTA_SET_ELEM_OBJREF = 0x9 + NFTA_SET_ELEM_LIST_UNSPEC = 0x0 + NFTA_SET_ELEM_LIST_TABLE = 0x1 + NFTA_SET_ELEM_LIST_SET = 0x2 + NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 + NFTA_SET_ELEM_LIST_SET_ID = 0x4 + NFT_DATA_VALUE = 0x0 + NFT_DATA_VERDICT = 0xffffff00 + NFTA_DATA_UNSPEC = 0x0 + NFTA_DATA_VALUE = 0x1 + NFTA_DATA_VERDICT = 0x2 + NFTA_VERDICT_UNSPEC = 0x0 + NFTA_VERDICT_CODE = 0x1 + NFTA_VERDICT_CHAIN = 0x2 + NFTA_EXPR_UNSPEC = 0x0 + NFTA_EXPR_NAME = 0x1 + NFTA_EXPR_DATA = 0x2 + NFTA_IMMEDIATE_UNSPEC = 0x0 + NFTA_IMMEDIATE_DREG = 0x1 + NFTA_IMMEDIATE_DATA = 0x2 + NFTA_BITWISE_UNSPEC = 0x0 + NFTA_BITWISE_SREG = 0x1 + NFTA_BITWISE_DREG = 0x2 + NFTA_BITWISE_LEN = 0x3 + NFTA_BITWISE_MASK = 0x4 + NFTA_BITWISE_XOR = 0x5 + NFT_BYTEORDER_NTOH = 0x0 + NFT_BYTEORDER_HTON = 0x1 + NFTA_BYTEORDER_UNSPEC = 0x0 + NFTA_BYTEORDER_SREG = 0x1 + NFTA_BYTEORDER_DREG = 0x2 + NFTA_BYTEORDER_OP = 0x3 + NFTA_BYTEORDER_LEN = 0x4 + NFTA_BYTEORDER_SIZE = 0x5 + NFT_CMP_EQ = 0x0 + NFT_CMP_NEQ = 0x1 + NFT_CMP_LT = 0x2 + NFT_CMP_LTE = 0x3 + NFT_CMP_GT = 0x4 + NFT_CMP_GTE = 0x5 + NFTA_CMP_UNSPEC = 0x0 + NFTA_CMP_SREG = 0x1 + NFTA_CMP_OP = 0x2 + NFTA_CMP_DATA = 0x3 + NFT_RANGE_EQ = 0x0 + NFT_RANGE_NEQ = 0x1 + NFTA_RANGE_UNSPEC = 0x0 + NFTA_RANGE_SREG = 0x1 + NFTA_RANGE_OP = 0x2 + NFTA_RANGE_FROM_DATA = 0x3 + NFTA_RANGE_TO_DATA = 0x4 + NFT_LOOKUP_F_INV = 0x1 + NFTA_LOOKUP_UNSPEC = 0x0 + NFTA_LOOKUP_SET = 0x1 + NFTA_LOOKUP_SREG = 0x2 + NFTA_LOOKUP_DREG = 0x3 + NFTA_LOOKUP_SET_ID = 0x4 + NFTA_LOOKUP_FLAGS = 0x5 + NFT_DYNSET_OP_ADD = 0x0 + NFT_DYNSET_OP_UPDATE = 0x1 + NFT_DYNSET_F_INV = 0x1 + NFTA_DYNSET_UNSPEC = 0x0 + NFTA_DYNSET_SET_NAME = 0x1 + NFTA_DYNSET_SET_ID = 0x2 + NFTA_DYNSET_OP = 0x3 + NFTA_DYNSET_SREG_KEY = 0x4 + NFTA_DYNSET_SREG_DATA = 0x5 + NFTA_DYNSET_TIMEOUT = 0x6 + NFTA_DYNSET_EXPR = 0x7 + NFTA_DYNSET_PAD = 0x8 + NFTA_DYNSET_FLAGS = 0x9 + NFT_PAYLOAD_LL_HEADER = 0x0 + NFT_PAYLOAD_NETWORK_HEADER = 0x1 + NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + NFTA_PAYLOAD_BASE = 0x2 + NFTA_PAYLOAD_OFFSET = 0x3 + NFTA_PAYLOAD_LEN = 0x4 + NFTA_PAYLOAD_SREG = 0x5 + NFTA_PAYLOAD_CSUM_TYPE = 0x6 + NFTA_PAYLOAD_CSUM_OFFSET = 0x7 + NFTA_PAYLOAD_CSUM_FLAGS = 0x8 + NFT_EXTHDR_F_PRESENT = 0x1 + NFT_EXTHDR_OP_IPV6 = 0x0 + NFT_EXTHDR_OP_TCPOPT = 0x1 + NFTA_EXTHDR_UNSPEC = 0x0 + NFTA_EXTHDR_DREG = 0x1 + NFTA_EXTHDR_TYPE = 0x2 + NFTA_EXTHDR_OFFSET = 0x3 + NFTA_EXTHDR_LEN = 0x4 + NFTA_EXTHDR_FLAGS = 0x5 + NFTA_EXTHDR_OP = 0x6 + NFTA_EXTHDR_SREG = 0x7 + NFT_META_LEN = 0x0 + NFT_META_PROTOCOL = 0x1 + NFT_META_PRIORITY = 0x2 + NFT_META_MARK = 0x3 + NFT_META_IIF = 0x4 + NFT_META_OIF = 0x5 + NFT_META_IIFNAME = 0x6 + NFT_META_OIFNAME = 0x7 + NFT_META_IIFTYPE = 0x8 + NFT_META_OIFTYPE = 0x9 + NFT_META_SKUID = 0xa + NFT_META_SKGID = 0xb + NFT_META_NFTRACE = 0xc + NFT_META_RTCLASSID = 0xd + NFT_META_SECMARK = 0xe + NFT_META_NFPROTO = 0xf + NFT_META_L4PROTO = 0x10 + NFT_META_BRI_IIFNAME = 0x11 + NFT_META_BRI_OIFNAME = 0x12 + NFT_META_PKTTYPE = 0x13 + NFT_META_CPU = 0x14 + NFT_META_IIFGROUP = 0x15 + NFT_META_OIFGROUP = 0x16 + NFT_META_CGROUP = 0x17 + NFT_META_PRANDOM = 0x18 + NFT_RT_CLASSID = 0x0 + NFT_RT_NEXTHOP4 = 0x1 + NFT_RT_NEXTHOP6 = 0x2 + NFT_RT_TCPMSS = 0x3 + NFT_HASH_JENKINS = 0x0 + NFT_HASH_SYM = 0x1 + NFTA_HASH_UNSPEC = 0x0 + NFTA_HASH_SREG = 0x1 + NFTA_HASH_DREG = 0x2 + NFTA_HASH_LEN = 0x3 + NFTA_HASH_MODULUS = 0x4 + NFTA_HASH_SEED = 0x5 + NFTA_HASH_OFFSET = 0x6 + NFTA_HASH_TYPE = 0x7 + NFTA_META_UNSPEC = 0x0 + NFTA_META_DREG = 0x1 + NFTA_META_KEY = 0x2 + NFTA_META_SREG = 0x3 + NFTA_RT_UNSPEC = 0x0 + NFTA_RT_DREG = 0x1 + NFTA_RT_KEY = 0x2 + NFT_CT_STATE = 0x0 + NFT_CT_DIRECTION = 0x1 + NFT_CT_STATUS = 0x2 + NFT_CT_MARK = 0x3 + NFT_CT_SECMARK = 0x4 + NFT_CT_EXPIRATION = 0x5 + NFT_CT_HELPER = 0x6 + NFT_CT_L3PROTOCOL = 0x7 + NFT_CT_SRC = 0x8 + NFT_CT_DST = 0x9 + NFT_CT_PROTOCOL = 0xa + NFT_CT_PROTO_SRC = 0xb + NFT_CT_PROTO_DST = 0xc + NFT_CT_LABELS = 0xd + NFT_CT_PKTS = 0xe + NFT_CT_BYTES = 0xf + NFT_CT_AVGPKT = 0x10 + NFT_CT_ZONE = 0x11 + NFT_CT_EVENTMASK = 0x12 + NFTA_CT_UNSPEC = 0x0 + NFTA_CT_DREG = 0x1 + NFTA_CT_KEY = 0x2 + NFTA_CT_DIRECTION = 0x3 + NFTA_CT_SREG = 0x4 + NFT_LIMIT_PKTS = 0x0 + NFT_LIMIT_PKT_BYTES = 0x1 + NFT_LIMIT_F_INV = 0x1 + NFTA_LIMIT_UNSPEC = 0x0 + NFTA_LIMIT_RATE = 0x1 + NFTA_LIMIT_UNIT = 0x2 + NFTA_LIMIT_BURST = 0x3 + NFTA_LIMIT_TYPE = 0x4 + NFTA_LIMIT_FLAGS = 0x5 + NFTA_LIMIT_PAD = 0x6 + NFTA_COUNTER_UNSPEC = 0x0 + NFTA_COUNTER_BYTES = 0x1 + NFTA_COUNTER_PACKETS = 0x2 + NFTA_COUNTER_PAD = 0x3 + NFTA_LOG_UNSPEC = 0x0 + NFTA_LOG_GROUP = 0x1 + NFTA_LOG_PREFIX = 0x2 + NFTA_LOG_SNAPLEN = 0x3 + NFTA_LOG_QTHRESHOLD = 0x4 + NFTA_LOG_LEVEL = 0x5 + NFTA_LOG_FLAGS = 0x6 + NFTA_QUEUE_UNSPEC = 0x0 + NFTA_QUEUE_NUM = 0x1 + NFTA_QUEUE_TOTAL = 0x2 + NFTA_QUEUE_FLAGS = 0x3 + NFTA_QUEUE_SREG_QNUM = 0x4 + NFT_QUOTA_F_INV = 0x1 + NFT_QUOTA_F_DEPLETED = 0x2 + NFTA_QUOTA_UNSPEC = 0x0 + NFTA_QUOTA_BYTES = 0x1 + NFTA_QUOTA_FLAGS = 0x2 + NFTA_QUOTA_PAD = 0x3 + NFTA_QUOTA_CONSUMED = 0x4 + NFT_REJECT_ICMP_UNREACH = 0x0 + NFT_REJECT_TCP_RST = 0x1 + NFT_REJECT_ICMPX_UNREACH = 0x2 + NFT_REJECT_ICMPX_NO_ROUTE = 0x0 + NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 + NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 + NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 + NFTA_REJECT_UNSPEC = 0x0 + NFTA_REJECT_TYPE = 0x1 + NFTA_REJECT_ICMP_CODE = 0x2 + NFT_NAT_SNAT = 0x0 + NFT_NAT_DNAT = 0x1 + NFTA_NAT_UNSPEC = 0x0 + NFTA_NAT_TYPE = 0x1 + NFTA_NAT_FAMILY = 0x2 + NFTA_NAT_REG_ADDR_MIN = 0x3 + NFTA_NAT_REG_ADDR_MAX = 0x4 + NFTA_NAT_REG_PROTO_MIN = 0x5 + NFTA_NAT_REG_PROTO_MAX = 0x6 + NFTA_NAT_FLAGS = 0x7 + NFTA_MASQ_UNSPEC = 0x0 + NFTA_MASQ_FLAGS = 0x1 + NFTA_MASQ_REG_PROTO_MIN = 0x2 + NFTA_MASQ_REG_PROTO_MAX = 0x3 + NFTA_REDIR_UNSPEC = 0x0 + NFTA_REDIR_REG_PROTO_MIN = 0x1 + NFTA_REDIR_REG_PROTO_MAX = 0x2 + NFTA_REDIR_FLAGS = 0x3 + NFTA_DUP_UNSPEC = 0x0 + NFTA_DUP_SREG_ADDR = 0x1 + NFTA_DUP_SREG_DEV = 0x2 + NFTA_FWD_UNSPEC = 0x0 + NFTA_FWD_SREG_DEV = 0x1 + NFTA_OBJREF_UNSPEC = 0x0 + NFTA_OBJREF_IMM_TYPE = 0x1 + NFTA_OBJREF_IMM_NAME = 0x2 + NFTA_OBJREF_SET_SREG = 0x3 + NFTA_OBJREF_SET_NAME = 0x4 + NFTA_OBJREF_SET_ID = 0x5 + NFTA_GEN_UNSPEC = 0x0 + NFTA_GEN_ID = 0x1 + NFTA_GEN_PROC_PID = 0x2 + NFTA_GEN_PROC_NAME = 0x3 + NFTA_FIB_UNSPEC = 0x0 + NFTA_FIB_DREG = 0x1 + NFTA_FIB_RESULT = 0x2 + NFTA_FIB_FLAGS = 0x3 + NFT_FIB_RESULT_UNSPEC = 0x0 + NFT_FIB_RESULT_OIF = 0x1 + NFT_FIB_RESULT_OIFNAME = 0x2 + NFT_FIB_RESULT_ADDRTYPE = 0x3 + NFTA_FIB_F_SADDR = 0x1 + NFTA_FIB_F_DADDR = 0x2 + NFTA_FIB_F_MARK = 0x4 + NFTA_FIB_F_IIF = 0x8 + NFTA_FIB_F_OIF = 0x10 + NFTA_FIB_F_PRESENT = 0x20 + NFTA_CT_HELPER_UNSPEC = 0x0 + NFTA_CT_HELPER_NAME = 0x1 + NFTA_CT_HELPER_L3PROTO = 0x2 + NFTA_CT_HELPER_L4PROTO = 0x3 + NFTA_OBJ_UNSPEC = 0x0 + NFTA_OBJ_TABLE = 0x1 + NFTA_OBJ_NAME = 0x2 + NFTA_OBJ_TYPE = 0x3 + NFTA_OBJ_DATA = 0x4 + NFTA_OBJ_USE = 0x5 + NFTA_TRACE_UNSPEC = 0x0 + NFTA_TRACE_TABLE = 0x1 + NFTA_TRACE_CHAIN = 0x2 + NFTA_TRACE_RULE_HANDLE = 0x3 + NFTA_TRACE_TYPE = 0x4 + NFTA_TRACE_VERDICT = 0x5 + NFTA_TRACE_ID = 0x6 + NFTA_TRACE_LL_HEADER = 0x7 + NFTA_TRACE_NETWORK_HEADER = 0x8 + NFTA_TRACE_TRANSPORT_HEADER = 0x9 + NFTA_TRACE_IIF = 0xa + NFTA_TRACE_IIFTYPE = 0xb + NFTA_TRACE_OIF = 0xc + NFTA_TRACE_OIFTYPE = 0xd + NFTA_TRACE_MARK = 0xe + NFTA_TRACE_NFPROTO = 0xf + NFTA_TRACE_POLICY = 0x10 + NFTA_TRACE_PAD = 0x11 + NFT_TRACETYPE_UNSPEC = 0x0 + NFT_TRACETYPE_POLICY = 0x1 + NFT_TRACETYPE_RETURN = 0x2 + NFT_TRACETYPE_RULE = 0x3 + NFTA_NG_UNSPEC = 0x0 + NFTA_NG_DREG = 0x1 + NFTA_NG_MODULUS = 0x2 + NFTA_NG_TYPE = 0x3 + NFTA_NG_OFFSET = 0x4 + NFT_NG_INCREMENTAL = 0x0 + NFT_NG_RANDOM = 0x1 +) + +type RTCTime struct { + Sec int32 + Min int32 + Hour int32 + Mday int32 + Mon int32 + Year int32 + Wday int32 + Yday int32 + Isdst int32 +} + +type RTCWkAlrm struct { + Enabled uint8 + Pending uint8 + Time RTCTime +} + +type BlkpgIoctlArg struct { + Op int32 + Flags int32 + Datalen int32 + Data *byte +} + +const ( + BLKPG_ADD_PARTITION = 0x1 + BLKPG_DEL_PARTITION = 0x2 + BLKPG_RESIZE_PARTITION = 0x3 +) + +const ( + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 +) + +type XDPRingOffset struct { + Producer uint64 + Consumer uint64 + Desc uint64 + Flags uint64 +} + +type XDPMmapOffsets struct { + Rx XDPRingOffset + Tx XDPRingOffset + Fr XDPRingOffset + Cr XDPRingOffset +} + +type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 +} + +type XDPDesc struct { + Addr uint64 + Len uint32 + Options uint32 +} + +const ( + NCSI_CMD_UNSPEC = 0x0 + NCSI_CMD_PKG_INFO = 0x1 + NCSI_CMD_SET_INTERFACE = 0x2 + NCSI_CMD_CLEAR_INTERFACE = 0x3 + NCSI_ATTR_UNSPEC = 0x0 + NCSI_ATTR_IFINDEX = 0x1 + NCSI_ATTR_PACKAGE_LIST = 0x2 + NCSI_ATTR_PACKAGE_ID = 0x3 + NCSI_ATTR_CHANNEL_ID = 0x4 + NCSI_PKG_ATTR_UNSPEC = 0x0 + NCSI_PKG_ATTR = 0x1 + NCSI_PKG_ATTR_ID = 0x2 + NCSI_PKG_ATTR_FORCED = 0x3 + NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 + NCSI_CHANNEL_ATTR_UNSPEC = 0x0 + NCSI_CHANNEL_ATTR = 0x1 + NCSI_CHANNEL_ATTR_ID = 0x2 + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 + NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 + NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 + NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 + NCSI_CHANNEL_ATTR_ACTIVE = 0x7 + NCSI_CHANNEL_ATTR_FORCED = 0x8 + NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 + NCSI_CHANNEL_ATTR_VLAN_ID = 0xa +) + +type ScmTimestamping struct { + Ts [3]Timespec +} + +const ( + SOF_TIMESTAMPING_TX_HARDWARE = 0x1 + SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 + SOF_TIMESTAMPING_RX_HARDWARE = 0x4 + SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 + SOF_TIMESTAMPING_SOFTWARE = 0x10 + SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 + SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 + SOF_TIMESTAMPING_OPT_ID = 0x80 + SOF_TIMESTAMPING_TX_SCHED = 0x100 + SOF_TIMESTAMPING_TX_ACK = 0x200 + SOF_TIMESTAMPING_OPT_CMSG = 0x400 + SOF_TIMESTAMPING_OPT_TSONLY = 0x800 + SOF_TIMESTAMPING_OPT_STATS = 0x1000 + SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 + SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 + + SOF_TIMESTAMPING_LAST = 0x4000 + SOF_TIMESTAMPING_MASK = 0x7fff + + SCM_TSTAMP_SND = 0x0 + SCM_TSTAMP_SCHED = 0x1 + SCM_TSTAMP_ACK = 0x2 +) + +type SockExtendedErr struct { + Errno uint32 + Origin uint8 + Type uint8 + Code uint8 + Pad uint8 + Info uint32 + Data uint32 +} + +type FanotifyEventMetadata struct { + Event_len uint32 + Vers uint8 + Reserved uint8 + Metadata_len uint16 + Mask uint64 + Fd int32 + Pid int32 +} + +type FanotifyResponse struct { + Fd int32 + Response uint32 +} + +const ( + CRYPTO_MSG_BASE = 0x10 + CRYPTO_MSG_NEWALG = 0x10 + CRYPTO_MSG_DELALG = 0x11 + CRYPTO_MSG_UPDATEALG = 0x12 + CRYPTO_MSG_GETALG = 0x13 + CRYPTO_MSG_DELRNG = 0x14 + CRYPTO_MSG_GETSTAT = 0x15 +) + +const ( + CRYPTOCFGA_UNSPEC = 0x0 + CRYPTOCFGA_PRIORITY_VAL = 0x1 + CRYPTOCFGA_REPORT_LARVAL = 0x2 + CRYPTOCFGA_REPORT_HASH = 0x3 + CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 + CRYPTOCFGA_REPORT_AEAD = 0x5 + CRYPTOCFGA_REPORT_COMPRESS = 0x6 + CRYPTOCFGA_REPORT_RNG = 0x7 + CRYPTOCFGA_REPORT_CIPHER = 0x8 + CRYPTOCFGA_REPORT_AKCIPHER = 0x9 + CRYPTOCFGA_REPORT_KPP = 0xa + CRYPTOCFGA_REPORT_ACOMP = 0xb + CRYPTOCFGA_STAT_LARVAL = 0xc + CRYPTOCFGA_STAT_HASH = 0xd + CRYPTOCFGA_STAT_BLKCIPHER = 0xe + CRYPTOCFGA_STAT_AEAD = 0xf + CRYPTOCFGA_STAT_COMPRESS = 0x10 + CRYPTOCFGA_STAT_RNG = 0x11 + CRYPTOCFGA_STAT_CIPHER = 0x12 + CRYPTOCFGA_STAT_AKCIPHER = 0x13 + CRYPTOCFGA_STAT_KPP = 0x14 + CRYPTOCFGA_STAT_ACOMP = 0x15 +) + +const ( + BPF_REG_0 = 0x0 + BPF_REG_1 = 0x1 + BPF_REG_2 = 0x2 + BPF_REG_3 = 0x3 + BPF_REG_4 = 0x4 + BPF_REG_5 = 0x5 + BPF_REG_6 = 0x6 + BPF_REG_7 = 0x7 + BPF_REG_8 = 0x8 + BPF_REG_9 = 0x9 + BPF_REG_10 = 0xa + BPF_MAP_CREATE = 0x0 + BPF_MAP_LOOKUP_ELEM = 0x1 + BPF_MAP_UPDATE_ELEM = 0x2 + BPF_MAP_DELETE_ELEM = 0x3 + BPF_MAP_GET_NEXT_KEY = 0x4 + BPF_PROG_LOAD = 0x5 + BPF_OBJ_PIN = 0x6 + BPF_OBJ_GET = 0x7 + BPF_PROG_ATTACH = 0x8 + BPF_PROG_DETACH = 0x9 + BPF_PROG_TEST_RUN = 0xa + BPF_PROG_GET_NEXT_ID = 0xb + BPF_MAP_GET_NEXT_ID = 0xc + BPF_PROG_GET_FD_BY_ID = 0xd + BPF_MAP_GET_FD_BY_ID = 0xe + BPF_OBJ_GET_INFO_BY_FD = 0xf + BPF_PROG_QUERY = 0x10 + BPF_RAW_TRACEPOINT_OPEN = 0x11 + BPF_BTF_LOAD = 0x12 + BPF_BTF_GET_FD_BY_ID = 0x13 + BPF_TASK_FD_QUERY = 0x14 + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 + BPF_MAP_FREEZE = 0x16 + BPF_BTF_GET_NEXT_ID = 0x17 + BPF_MAP_LOOKUP_BATCH = 0x18 + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 + BPF_MAP_UPDATE_BATCH = 0x1a + BPF_MAP_DELETE_BATCH = 0x1b + BPF_LINK_CREATE = 0x1c + BPF_LINK_UPDATE = 0x1d + BPF_LINK_GET_FD_BY_ID = 0x1e + BPF_LINK_GET_NEXT_ID = 0x1f + BPF_ENABLE_STATS = 0x20 + BPF_ITER_CREATE = 0x21 + BPF_MAP_TYPE_UNSPEC = 0x0 + BPF_MAP_TYPE_HASH = 0x1 + BPF_MAP_TYPE_ARRAY = 0x2 + BPF_MAP_TYPE_PROG_ARRAY = 0x3 + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 + BPF_MAP_TYPE_PERCPU_HASH = 0x5 + BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 + BPF_MAP_TYPE_STACK_TRACE = 0x7 + BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 + BPF_MAP_TYPE_LRU_HASH = 0x9 + BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa + BPF_MAP_TYPE_LPM_TRIE = 0xb + BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc + BPF_MAP_TYPE_HASH_OF_MAPS = 0xd + BPF_MAP_TYPE_DEVMAP = 0xe + BPF_MAP_TYPE_SOCKMAP = 0xf + BPF_MAP_TYPE_CPUMAP = 0x10 + BPF_MAP_TYPE_XSKMAP = 0x11 + BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 + BPF_MAP_TYPE_QUEUE = 0x16 + BPF_MAP_TYPE_STACK = 0x17 + BPF_MAP_TYPE_SK_STORAGE = 0x18 + BPF_MAP_TYPE_DEVMAP_HASH = 0x19 + BPF_MAP_TYPE_STRUCT_OPS = 0x1a + BPF_MAP_TYPE_RINGBUF = 0x1b + BPF_PROG_TYPE_UNSPEC = 0x0 + BPF_PROG_TYPE_SOCKET_FILTER = 0x1 + BPF_PROG_TYPE_KPROBE = 0x2 + BPF_PROG_TYPE_SCHED_CLS = 0x3 + BPF_PROG_TYPE_SCHED_ACT = 0x4 + BPF_PROG_TYPE_TRACEPOINT = 0x5 + BPF_PROG_TYPE_XDP = 0x6 + BPF_PROG_TYPE_PERF_EVENT = 0x7 + BPF_PROG_TYPE_CGROUP_SKB = 0x8 + BPF_PROG_TYPE_CGROUP_SOCK = 0x9 + BPF_PROG_TYPE_LWT_IN = 0xa + BPF_PROG_TYPE_LWT_OUT = 0xb + BPF_PROG_TYPE_LWT_XMIT = 0xc + BPF_PROG_TYPE_SOCK_OPS = 0xd + BPF_PROG_TYPE_SK_SKB = 0xe + BPF_PROG_TYPE_CGROUP_DEVICE = 0xf + BPF_PROG_TYPE_SK_MSG = 0x10 + BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 + BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 + BPF_PROG_TYPE_LIRC_MODE2 = 0x14 + BPF_PROG_TYPE_SK_REUSEPORT = 0x15 + BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 + BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 + BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 + BPF_PROG_TYPE_TRACING = 0x1a + BPF_PROG_TYPE_STRUCT_OPS = 0x1b + BPF_PROG_TYPE_EXT = 0x1c + BPF_PROG_TYPE_LSM = 0x1d + BPF_CGROUP_INET_INGRESS = 0x0 + BPF_CGROUP_INET_EGRESS = 0x1 + BPF_CGROUP_INET_SOCK_CREATE = 0x2 + BPF_CGROUP_SOCK_OPS = 0x3 + BPF_SK_SKB_STREAM_PARSER = 0x4 + BPF_SK_SKB_STREAM_VERDICT = 0x5 + BPF_CGROUP_DEVICE = 0x6 + BPF_SK_MSG_VERDICT = 0x7 + BPF_CGROUP_INET4_BIND = 0x8 + BPF_CGROUP_INET6_BIND = 0x9 + BPF_CGROUP_INET4_CONNECT = 0xa + BPF_CGROUP_INET6_CONNECT = 0xb + BPF_CGROUP_INET4_POST_BIND = 0xc + BPF_CGROUP_INET6_POST_BIND = 0xd + BPF_CGROUP_UDP4_SENDMSG = 0xe + BPF_CGROUP_UDP6_SENDMSG = 0xf + BPF_LIRC_MODE2 = 0x10 + BPF_FLOW_DISSECTOR = 0x11 + BPF_CGROUP_SYSCTL = 0x12 + BPF_CGROUP_UDP4_RECVMSG = 0x13 + BPF_CGROUP_UDP6_RECVMSG = 0x14 + BPF_CGROUP_GETSOCKOPT = 0x15 + BPF_CGROUP_SETSOCKOPT = 0x16 + BPF_TRACE_RAW_TP = 0x17 + BPF_TRACE_FENTRY = 0x18 + BPF_TRACE_FEXIT = 0x19 + BPF_MODIFY_RETURN = 0x1a + BPF_LSM_MAC = 0x1b + BPF_TRACE_ITER = 0x1c + BPF_CGROUP_INET4_GETPEERNAME = 0x1d + BPF_CGROUP_INET6_GETPEERNAME = 0x1e + BPF_CGROUP_INET4_GETSOCKNAME = 0x1f + BPF_CGROUP_INET6_GETSOCKNAME = 0x20 + BPF_XDP_DEVMAP = 0x21 + BPF_LINK_TYPE_UNSPEC = 0x0 + BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 + BPF_LINK_TYPE_TRACING = 0x2 + BPF_LINK_TYPE_CGROUP = 0x3 + BPF_LINK_TYPE_ITER = 0x4 + BPF_LINK_TYPE_NETNS = 0x5 + BPF_ANY = 0x0 + BPF_NOEXIST = 0x1 + BPF_EXIST = 0x2 + BPF_F_LOCK = 0x4 + BPF_F_NO_PREALLOC = 0x1 + BPF_F_NO_COMMON_LRU = 0x2 + BPF_F_NUMA_NODE = 0x4 + BPF_F_RDONLY = 0x8 + BPF_F_WRONLY = 0x10 + BPF_F_STACK_BUILD_ID = 0x20 + BPF_F_ZERO_SEED = 0x40 + BPF_F_RDONLY_PROG = 0x80 + BPF_F_WRONLY_PROG = 0x100 + BPF_F_CLONE = 0x200 + BPF_F_MMAPABLE = 0x400 + BPF_STATS_RUN_TIME = 0x0 + BPF_STACK_BUILD_ID_EMPTY = 0x0 + BPF_STACK_BUILD_ID_VALID = 0x1 + BPF_STACK_BUILD_ID_IP = 0x2 + BPF_F_RECOMPUTE_CSUM = 0x1 + BPF_F_INVALIDATE_HASH = 0x2 + BPF_F_HDR_FIELD_MASK = 0xf + BPF_F_PSEUDO_HDR = 0x10 + BPF_F_MARK_MANGLED_0 = 0x20 + BPF_F_MARK_ENFORCE = 0x40 + BPF_F_INGRESS = 0x1 + BPF_F_TUNINFO_IPV6 = 0x1 + BPF_F_SKIP_FIELD_MASK = 0xff + BPF_F_USER_STACK = 0x100 + BPF_F_FAST_STACK_CMP = 0x200 + BPF_F_REUSE_STACKID = 0x400 + BPF_F_USER_BUILD_ID = 0x800 + BPF_F_ZERO_CSUM_TX = 0x2 + BPF_F_DONT_FRAGMENT = 0x4 + BPF_F_SEQ_NUMBER = 0x8 + BPF_F_INDEX_MASK = 0xffffffff + BPF_F_CURRENT_CPU = 0xffffffff + BPF_F_CTXLEN_MASK = 0xfffff00000000 + BPF_F_CURRENT_NETNS = -0x1 + BPF_CSUM_LEVEL_QUERY = 0x0 + BPF_CSUM_LEVEL_INC = 0x1 + BPF_CSUM_LEVEL_DEC = 0x2 + BPF_CSUM_LEVEL_RESET = 0x3 + BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 + BPF_F_SYSCTL_BASE_NAME = 0x1 + BPF_SK_STORAGE_GET_F_CREATE = 0x1 + BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 + BPF_RB_NO_WAKEUP = 0x1 + BPF_RB_FORCE_WAKEUP = 0x2 + BPF_RB_AVAIL_DATA = 0x0 + BPF_RB_RING_SIZE = 0x1 + BPF_RB_CONS_POS = 0x2 + BPF_RB_PROD_POS = 0x3 + BPF_RINGBUF_BUSY_BIT = 0x80000000 + BPF_RINGBUF_DISCARD_BIT = 0x40000000 + BPF_RINGBUF_HDR_SZ = 0x8 + BPF_ADJ_ROOM_NET = 0x0 + BPF_ADJ_ROOM_MAC = 0x1 + BPF_HDR_START_MAC = 0x0 + BPF_HDR_START_NET = 0x1 + BPF_LWT_ENCAP_SEG6 = 0x0 + BPF_LWT_ENCAP_SEG6_INLINE = 0x1 + BPF_LWT_ENCAP_IP = 0x2 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 + BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 + BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 + BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 + BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf + BPF_SOCK_OPS_VOID = 0x0 + BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 + BPF_SOCK_OPS_RWND_INIT = 0x2 + BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 + BPF_SOCK_OPS_NEEDS_ECN = 0x6 + BPF_SOCK_OPS_BASE_RTT = 0x7 + BPF_SOCK_OPS_RTO_CB = 0x8 + BPF_SOCK_OPS_RETRANS_CB = 0x9 + BPF_SOCK_OPS_STATE_CB = 0xa + BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb + BPF_SOCK_OPS_RTT_CB = 0xc + BPF_TCP_ESTABLISHED = 0x1 + BPF_TCP_SYN_SENT = 0x2 + BPF_TCP_SYN_RECV = 0x3 + BPF_TCP_FIN_WAIT1 = 0x4 + BPF_TCP_FIN_WAIT2 = 0x5 + BPF_TCP_TIME_WAIT = 0x6 + BPF_TCP_CLOSE = 0x7 + BPF_TCP_CLOSE_WAIT = 0x8 + BPF_TCP_LAST_ACK = 0x9 + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc + BPF_TCP_MAX_STATES = 0xd + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + BPF_DEVCG_ACC_MKNOD = 0x1 + BPF_DEVCG_ACC_READ = 0x2 + BPF_DEVCG_ACC_WRITE = 0x4 + BPF_DEVCG_DEV_BLOCK = 0x1 + BPF_DEVCG_DEV_CHAR = 0x2 + BPF_FIB_LOOKUP_DIRECT = 0x1 + BPF_FIB_LOOKUP_OUTPUT = 0x2 + BPF_FIB_LKUP_RET_SUCCESS = 0x0 + BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 + BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 + BPF_FIB_LKUP_RET_PROHIBIT = 0x3 + BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 + BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 + BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 + BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 + BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 + BPF_FD_TYPE_TRACEPOINT = 0x1 + BPF_FD_TYPE_KPROBE = 0x2 + BPF_FD_TYPE_KRETPROBE = 0x3 + BPF_FD_TYPE_UPROBE = 0x4 + BPF_FD_TYPE_URETPROBE = 0x5 + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 +) + +const ( + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_DECnet_IFADDR = 0xd + RTNLGRP_NOP2 = 0xe + RTNLGRP_DECnet_ROUTE = 0xf + RTNLGRP_DECnet_RULE = 0x10 + RTNLGRP_NOP4 = 0x11 + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + RTNLGRP_PHONET_IFADDR = 0x15 + RTNLGRP_PHONET_ROUTE = 0x16 + RTNLGRP_DCB = 0x17 + RTNLGRP_IPV4_NETCONF = 0x18 + RTNLGRP_IPV6_NETCONF = 0x19 + RTNLGRP_MDB = 0x1a + RTNLGRP_MPLS_ROUTE = 0x1b + RTNLGRP_NSID = 0x1c + RTNLGRP_MPLS_NETCONF = 0x1d + RTNLGRP_IPV4_MROUTE_R = 0x1e + RTNLGRP_IPV6_MROUTE_R = 0x1f + RTNLGRP_NEXTHOP = 0x20 +) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) + +const ( + LO_FLAGS_READ_ONLY = 0x1 + LO_FLAGS_AUTOCLEAR = 0x4 + LO_FLAGS_PARTSCAN = 0x8 + LO_FLAGS_DIRECT_IO = 0x10 +) + +type LoopInfo64 struct { + Device uint64 + Inode uint64 + Rdevice uint64 + Offset uint64 + Sizelimit uint64 + Number uint32 + Encrypt_type uint32 + Encrypt_key_size uint32 + Flags uint32 + File_name [64]uint8 + Crypt_name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 +} + +type TIPCSocketAddr struct { + Ref uint32 + Node uint32 +} + +type TIPCServiceRange struct { + Type uint32 + Lower uint32 + Upper uint32 +} + +type TIPCServiceName struct { + Type uint32 + Instance uint32 + Domain uint32 +} + +type TIPCEvent struct { + Event uint32 + Lower uint32 + Upper uint32 + Port TIPCSocketAddr + S TIPCSubscr +} + +type TIPCGroupReq struct { + Type uint32 + Instance uint32 + Scope uint32 + Flags uint32 +} + +const ( + TIPC_CLUSTER_SCOPE = 0x2 + TIPC_NODE_SCOPE = 0x3 +) + +const ( + SYSLOG_ACTION_CLOSE = 0 + SYSLOG_ACTION_OPEN = 1 + SYSLOG_ACTION_READ = 2 + SYSLOG_ACTION_READ_ALL = 3 + SYSLOG_ACTION_READ_CLEAR = 4 + SYSLOG_ACTION_CLEAR = 5 + SYSLOG_ACTION_CONSOLE_OFF = 6 + SYSLOG_ACTION_CONSOLE_ON = 7 + SYSLOG_ACTION_CONSOLE_LEVEL = 8 + SYSLOG_ACTION_SIZE_UNREAD = 9 + SYSLOG_ACTION_SIZE_BUFFER = 10 +) + +const ( + DEVLINK_CMD_UNSPEC = 0x0 + DEVLINK_CMD_GET = 0x1 + DEVLINK_CMD_SET = 0x2 + DEVLINK_CMD_NEW = 0x3 + DEVLINK_CMD_DEL = 0x4 + DEVLINK_CMD_PORT_GET = 0x5 + DEVLINK_CMD_PORT_SET = 0x6 + DEVLINK_CMD_PORT_NEW = 0x7 + DEVLINK_CMD_PORT_DEL = 0x8 + DEVLINK_CMD_PORT_SPLIT = 0x9 + DEVLINK_CMD_PORT_UNSPLIT = 0xa + DEVLINK_CMD_SB_GET = 0xb + DEVLINK_CMD_SB_SET = 0xc + DEVLINK_CMD_SB_NEW = 0xd + DEVLINK_CMD_SB_DEL = 0xe + DEVLINK_CMD_SB_POOL_GET = 0xf + DEVLINK_CMD_SB_POOL_SET = 0x10 + DEVLINK_CMD_SB_POOL_NEW = 0x11 + DEVLINK_CMD_SB_POOL_DEL = 0x12 + DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 + DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 + DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 + DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 + DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 + DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 + DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 + DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a + DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b + DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c + DEVLINK_CMD_ESWITCH_GET = 0x1d + DEVLINK_CMD_ESWITCH_SET = 0x1e + DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f + DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 + DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 + DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 + DEVLINK_CMD_MAX = 0x48 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 + DEVLINK_PORT_TYPE_IB = 0x3 + DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 + DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 + DEVLINK_ESWITCH_MODE_LEGACY = 0x0 + DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 + DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 + DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 + DEVLINK_ATTR_UNSPEC = 0x0 + DEVLINK_ATTR_BUS_NAME = 0x1 + DEVLINK_ATTR_DEV_NAME = 0x2 + DEVLINK_ATTR_PORT_INDEX = 0x3 + DEVLINK_ATTR_PORT_TYPE = 0x4 + DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 + DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 + DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 + DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 + DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa + DEVLINK_ATTR_SB_INDEX = 0xb + DEVLINK_ATTR_SB_SIZE = 0xc + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 + DEVLINK_ATTR_SB_POOL_INDEX = 0x11 + DEVLINK_ATTR_SB_POOL_TYPE = 0x12 + DEVLINK_ATTR_SB_POOL_SIZE = 0x13 + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 + DEVLINK_ATTR_SB_THRESHOLD = 0x15 + DEVLINK_ATTR_SB_TC_INDEX = 0x16 + DEVLINK_ATTR_SB_OCC_CUR = 0x17 + DEVLINK_ATTR_SB_OCC_MAX = 0x18 + DEVLINK_ATTR_ESWITCH_MODE = 0x19 + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a + DEVLINK_ATTR_DPIPE_TABLES = 0x1b + DEVLINK_ATTR_DPIPE_TABLE = 0x1c + DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 + DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 + DEVLINK_ATTR_DPIPE_ENTRY = 0x23 + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 + DEVLINK_ATTR_DPIPE_MATCH = 0x28 + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a + DEVLINK_ATTR_DPIPE_ACTION = 0x2b + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d + DEVLINK_ATTR_DPIPE_VALUE = 0x2e + DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 + DEVLINK_ATTR_DPIPE_HEADERS = 0x31 + DEVLINK_ATTR_DPIPE_HEADER = 0x32 + DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 + DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 + DEVLINK_ATTR_DPIPE_FIELD = 0x38 + DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 + DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c + DEVLINK_ATTR_PAD = 0x3d + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e + DEVLINK_ATTR_MAX = 0x90 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 + DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 + DEVLINK_DPIPE_HEADER_IPV4 = 0x1 + DEVLINK_DPIPE_HEADER_IPV6 = 0x2 +) + +type FsverityDigest struct { + Algorithm uint16 + Size uint16 +} + +type FsverityEnableArg struct { + Version uint32 + Hash_algorithm uint32 + Block_size uint32 + Salt_size uint32 + Salt_ptr uint64 + Sig_size uint32 + _ uint32 + Sig_ptr uint64 + _ [11]uint64 +} + +type Nhmsg struct { + Family uint8 + Scope uint8 + Protocol uint8 + Resvd uint8 + Flags uint32 +} + +type NexthopGrp struct { + Id uint32 + Weight uint8 + Resvd1 uint8 + Resvd2 uint16 +} + +const ( + NHA_UNSPEC = 0x0 + NHA_ID = 0x1 + NHA_GROUP = 0x2 + NHA_GROUP_TYPE = 0x3 + NHA_BLACKHOLE = 0x4 + NHA_OIF = 0x5 + NHA_GATEWAY = 0x6 + NHA_ENCAP_TYPE = 0x7 + NHA_ENCAP = 0x8 + NHA_GROUPS = 0x9 + NHA_MASTER = 0xa +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 74d42bb..73509d8 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -114,36 +100,6 @@ type Stat_t struct { Ino uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +109,6 @@ type Dirent struct { _ [1]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,133 +117,16 @@ type Flock_t struct { Pid int32 } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -302,41 +137,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -353,399 +158,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Ebx int32 Ecx int32 @@ -787,15 +209,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -810,35 +223,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -847,33 +232,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -885,13 +243,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -941,279 +292,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1289,22 +374,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1312,88 +381,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1409,18 +396,6 @@ type Statfs_t struct { Spare [4]int32 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1431,589 +406,10 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x18 ) -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2024,13 +420,6 @@ type RTCPLLInfo struct { Clock int32 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2040,168 +429,17 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2332,182 +570,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint16 @@ -2522,38 +584,6 @@ type LoopInfo struct { Init [2]uint32 Reserved [4]int8 } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2562,21 +592,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2587,22 +602,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index 8debef9..45eb873 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -113,36 +99,6 @@ type Stat_t struct { _ [3]int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -152,10 +108,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,133 +117,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -302,41 +139,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -354,399 +161,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { R15 uint64 R14 uint64 @@ -799,15 +223,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -823,35 +238,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -860,33 +247,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -898,13 +258,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -952,279 +305,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1300,22 +387,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1323,88 +394,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1420,18 +409,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1443,589 +420,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2036,13 +434,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2053,168 +444,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2345,182 +586,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint64 @@ -2536,38 +601,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2576,21 +609,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2601,22 +619,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index feb7d83..8f6b453 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -116,36 +102,6 @@ type Stat_t struct { Ino uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -155,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -169,133 +121,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -306,41 +143,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -357,399 +164,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Uregs [18]uint32 } @@ -775,15 +199,6 @@ type Sysinfo_t struct { _ [8]uint8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -799,35 +214,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -836,33 +223,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -874,13 +234,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -930,279 +283,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1278,22 +365,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1301,88 +372,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1399,18 +388,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1421,589 +398,10 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x18 ) -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2014,13 +412,6 @@ type RTCPLLInfo struct { Clock int32 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2031,168 +422,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 @@ -2323,182 +564,6 @@ type CryptoReportAcomp struct { Type [64]uint8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint16 @@ -2513,38 +578,6 @@ type LoopInfo struct { Init [2]uint32 Reserved [4]uint8 } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2553,21 +586,6 @@ type TIPCSubscr struct { Handle [8]uint8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2578,22 +596,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 6da2178..b1e0c24 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -114,36 +100,6 @@ type Stat_t struct { _ [2]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,133 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -303,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -355,399 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [31]uint64 Sp uint64 @@ -777,15 +201,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -802,35 +217,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -839,33 +226,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -877,13 +237,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -931,279 +284,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1279,22 +366,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1302,88 +373,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1399,18 +388,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1422,589 +399,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2015,13 +413,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2032,168 +423,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2324,182 +565,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2515,38 +580,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2555,21 +588,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2580,22 +598,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 14b1dea..fb802c3 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]int32 @@ -115,36 +101,6 @@ type Stat_t struct { Pad5 [14]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -168,133 +120,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -305,41 +142,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -356,399 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -780,15 +204,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -804,35 +219,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -841,33 +228,6 @@ type Sigset_t struct { const _C__NSIG = 0x80 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -879,13 +239,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -935,279 +288,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1283,22 +370,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1306,88 +377,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1405,18 +394,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1427,589 +404,10 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x18 ) -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2020,13 +418,6 @@ type RTCPLLInfo struct { Clock int32 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2037,168 +428,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2329,182 +570,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2519,38 +584,6 @@ type LoopInfo struct { Init [2]uint32 Reserved [4]int8 } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2559,21 +592,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2584,22 +602,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 0fb94a7..30abcf3 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]uint32 @@ -114,36 +100,6 @@ type Stat_t struct { Blocks int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,133 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -303,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -355,399 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -780,15 +204,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -799,40 +214,13 @@ type Ustat_t struct { type EpollEvent struct { Events uint32 + _ int32 Fd int32 Pad int32 } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -841,33 +229,6 @@ type Sigset_t struct { const _C__NSIG = 0x80 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -879,13 +240,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -933,279 +287,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1281,22 +369,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1304,88 +376,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1401,18 +391,6 @@ type Statfs_t struct { Spare [5]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1424,589 +402,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2017,13 +416,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2034,168 +426,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2326,182 +568,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2517,38 +583,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2557,21 +591,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2582,22 +601,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 7ffc7bb..99761aa 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]uint32 @@ -114,36 +100,6 @@ type Stat_t struct { Blocks int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,133 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -303,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -355,399 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -780,15 +204,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -799,40 +214,13 @@ type Ustat_t struct { type EpollEvent struct { Events uint32 + _ int32 Fd int32 Pad int32 } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -841,33 +229,6 @@ type Sigset_t struct { const _C__NSIG = 0x80 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -879,13 +240,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -933,279 +287,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1281,22 +369,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1304,88 +376,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1401,18 +391,6 @@ type Statfs_t struct { Spare [5]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1424,589 +402,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2017,13 +416,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2034,168 +426,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2326,182 +568,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2517,38 +583,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2557,21 +591,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2582,22 +601,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 12ef8eb..2936903 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x4 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x4 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x4 + SizeofLong = 0x4 ) type ( - _C_short int16 - _C_int int32 - _C_long int32 - _C_long_long int64 + _C_long int32 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int32 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint32 Pad1 [3]int32 @@ -115,36 +101,6 @@ type Stat_t struct { Pad5 [14]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -168,133 +120,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -305,41 +142,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint32 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -356,399 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x8 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [32]uint64 Lo uint64 @@ -780,15 +204,6 @@ type Sysinfo_t struct { _ [8]int8 } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint32 @@ -804,35 +219,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -841,33 +228,6 @@ type Sigset_t struct { const _C__NSIG = 0x80 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -879,13 +239,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -935,279 +288,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint32 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x20 ) const ( @@ -1283,22 +370,6 @@ type SockaddrStorage struct { _ uint32 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1306,88 +377,6 @@ type HDGeometry struct { Start uint32 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int32 Bsize int32 @@ -1405,18 +394,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint32 Len uint32 @@ -1427,589 +404,10 @@ type TpacketHdr struct { Usec uint32 } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x18 ) -const ( - SizeofTpacketHdr = 0x18 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2020,13 +418,6 @@ type RTCPLLInfo struct { Clock int32 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2037,168 +428,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2329,182 +570,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2519,38 +584,6 @@ type LoopInfo struct { Init [2]uint32 Reserved [4]int8 } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2559,21 +592,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2584,22 +602,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index cb89d8a..0ca856e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -115,36 +101,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -167,133 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -304,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -356,399 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Gpr [32]uint64 Nip uint64 @@ -787,15 +211,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -812,35 +227,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -849,33 +236,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -887,13 +247,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -941,279 +294,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1289,22 +376,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1312,88 +383,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1409,18 +398,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1432,589 +409,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2025,13 +423,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2042,168 +433,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 @@ -2334,182 +575,6 @@ type CryptoReportAcomp struct { Type [64]uint8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint64 @@ -2525,38 +590,6 @@ type LoopInfo struct { Reserved [4]uint8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2565,21 +598,6 @@ type TIPCSubscr struct { Handle [8]uint8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2590,22 +608,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index d9c93af..f50f648 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -115,36 +101,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -154,10 +110,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -167,133 +119,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -304,41 +141,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -356,399 +163,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Gpr [32]uint64 Nip uint64 @@ -787,15 +211,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -812,35 +227,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -849,33 +236,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -887,13 +247,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -941,279 +294,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1289,22 +376,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1312,88 +383,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1409,18 +398,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1432,589 +409,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2025,13 +423,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2042,168 +433,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 @@ -2334,182 +575,6 @@ type CryptoReportAcomp struct { Type [64]uint8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint64 @@ -2525,38 +590,6 @@ type LoopInfo struct { Reserved [4]uint8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2565,21 +598,6 @@ type TIPCSubscr struct { Handle [8]uint8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2590,22 +608,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index a198cc5..4d3ac8d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -114,36 +100,6 @@ type Stat_t struct { _ [2]int32 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -153,10 +109,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -166,133 +118,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]uint8 @@ -303,41 +140,11 @@ type RawSockaddrAny struct { Pad [96]uint8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -355,399 +162,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Pc uint64 Ra uint64 @@ -805,15 +229,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -830,35 +245,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -867,33 +254,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -905,13 +265,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -959,279 +312,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1307,22 +394,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1330,88 +401,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1427,18 +416,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1450,589 +427,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2043,13 +441,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2060,168 +451,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]uint8 Driver_name [64]uint8 @@ -2352,182 +593,6 @@ type CryptoReportAcomp struct { Type [64]uint8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2543,38 +608,6 @@ type LoopInfo struct { Reserved [4]uint8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2583,21 +616,6 @@ type TIPCSubscr struct { Handle [8]uint8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2608,22 +626,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]uint8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index f1e26c5..349f483 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -88,13 +81,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 Ino uint64 @@ -113,36 +99,6 @@ type Stat_t struct { _ [3]int64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -152,10 +108,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -165,133 +117,18 @@ type Flock_t struct { _ [4]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 + FADV_DONTNEED = 0x6 + FADV_NOREUSE = 0x7 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -302,41 +139,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -354,399 +161,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Psw PtracePsw Gprs [16]uint64 @@ -800,15 +224,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -825,35 +240,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -862,33 +249,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -900,13 +260,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -954,279 +307,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1302,22 +389,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1325,88 +396,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type uint32 Bsize uint32 @@ -1423,18 +412,6 @@ type Statfs_t struct { _ [4]byte } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1446,589 +423,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2039,13 +437,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2056,168 +447,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x1269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x1269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2348,182 +589,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint16 @@ -2539,38 +604,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2579,21 +612,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2604,22 +622,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index d282480..80c73be 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -6,19 +6,12 @@ package unix const ( - SizeofPtr = 0x8 - SizeofShort = 0x2 - SizeofInt = 0x4 - SizeofLong = 0x8 - SizeofLongLong = 0x8 - PathMax = 0x1000 + SizeofPtr = 0x8 + SizeofLong = 0x8 ) type ( - _C_short int16 - _C_int int32 - _C_long int64 - _C_long_long int64 + _C_long int64 ) type Timespec struct { @@ -89,13 +82,6 @@ type Rusage struct { Nivcsw int64 } -type Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - type Stat_t struct { Dev uint64 _ uint16 @@ -116,36 +102,6 @@ type Stat_t struct { _ uint64 } -type StatxTimestamp struct { - Sec int64 - Nsec uint32 - _ int32 -} - -type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - _ [14]uint64 -} - type Dirent struct { Ino uint64 Off int64 @@ -155,10 +111,6 @@ type Dirent struct { _ [5]byte } -type Fsid struct { - Val [2]int32 -} - type Flock_t struct { Type int16 Whence int16 @@ -169,133 +121,18 @@ type Flock_t struct { _ [2]byte } -type FscryptPolicy struct { - Version uint8 - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 - Master_key_descriptor [8]uint8 -} - -type FscryptKey struct { - Mode uint32 - Raw [64]uint8 - Size uint32 -} - -type KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte } const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 ) -type RawSockaddrInet4 struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type RawSockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type RawSockaddrUnix struct { - Family uint16 - Path [108]int8 -} - -type RawSockaddrLinklayer struct { - Family uint16 - Protocol uint16 - Ifindex int32 - Hatype uint16 - Pkttype uint8 - Halen uint8 - Addr [8]uint8 -} - -type RawSockaddrNetlink struct { - Family uint16 - Pad uint16 - Pid uint32 - Groups uint32 -} - -type RawSockaddrHCI struct { - Family uint16 - Dev uint16 - Channel uint16 -} - -type RawSockaddrL2 struct { - Family uint16 - Psm uint16 - Bdaddr [6]uint8 - Cid uint16 - Bdaddr_type uint8 - _ [1]byte -} - -type RawSockaddrRFCOMM struct { - Family uint16 - Bdaddr [6]uint8 - Channel uint8 - _ [1]byte -} - -type RawSockaddrCAN struct { - Family uint16 - Ifindex int32 - Addr [8]byte -} - -type RawSockaddrALG struct { - Family uint16 - Type [14]uint8 - Feat uint32 - Mask uint32 - Name [64]uint8 -} - -type RawSockaddrVM struct { - Family uint16 - Reserved1 uint16 - Port uint32 - Cid uint32 - Zero [4]uint8 -} - -type RawSockaddrXDP struct { - Family uint16 - Flags uint16 - Ifindex uint32 - Queue_id uint32 - Shared_umem_fd uint32 -} - -type RawSockaddrPPPoX [0x1e]byte - -type RawSockaddrTIPC struct { - Family uint16 - Addrtype uint8 - Scope int8 - Addr [12]byte -} - type RawSockaddr struct { Family uint16 Data [14]int8 @@ -306,41 +143,11 @@ type RawSockaddrAny struct { Pad [96]int8 } -type _Socklen uint32 - -type Linger struct { - Onoff int32 - Linger int32 -} - type Iovec struct { Base *byte Len uint64 } -type IPMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type IPMreqn struct { - Multiaddr [4]byte /* in_addr */ - Address [4]byte /* in_addr */ - Ifindex int32 -} - -type IPv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type PacketMreq struct { - Ifindex int32 - Type uint16 - Alen uint16 - Address [8]uint8 -} - type Msghdr struct { Name *byte Namelen uint32 @@ -358,399 +165,16 @@ type Cmsghdr struct { Type int32 } -type Inet4Pktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type Inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type IPv6MTUInfo struct { - Addr RawSockaddrInet6 - Mtu uint32 -} - -type ICMPv6Filter struct { - Data [8]uint32 -} - -type Ucred struct { - Pid int32 - Uid uint32 - Gid uint32 -} - -type TCPInfo struct { - State uint8 - Ca_state uint8 - Retransmits uint8 - Probes uint8 - Backoff uint8 - Options uint8 - Rto uint32 - Ato uint32 - Snd_mss uint32 - Rcv_mss uint32 - Unacked uint32 - Sacked uint32 - Lost uint32 - Retrans uint32 - Fackets uint32 - Last_data_sent uint32 - Last_ack_sent uint32 - Last_data_recv uint32 - Last_ack_recv uint32 - Pmtu uint32 - Rcv_ssthresh uint32 - Rtt uint32 - Rttvar uint32 - Snd_ssthresh uint32 - Snd_cwnd uint32 - Advmss uint32 - Reordering uint32 - Rcv_rtt uint32 - Rcv_space uint32 - Total_retrans uint32 -} - -type CanFilter struct { - Id uint32 - Mask uint32 -} - const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrRFCOMM = 0xa - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofSockaddrXDP = 0x10 - SizeofSockaddrPPPoX = 0x1e - SizeofSockaddrTIPC = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 - SizeofCanFilter = 0x8 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 ) const ( - NDA_UNSPEC = 0x0 - NDA_DST = 0x1 - NDA_LLADDR = 0x2 - NDA_CACHEINFO = 0x3 - NDA_PROBES = 0x4 - NDA_VLAN = 0x5 - NDA_PORT = 0x6 - NDA_VNI = 0x7 - NDA_IFINDEX = 0x8 - NDA_MASTER = 0x9 - NDA_LINK_NETNSID = 0xa - NDA_SRC_VNI = 0xb - NTF_USE = 0x1 - NTF_SELF = 0x2 - NTF_MASTER = 0x4 - NTF_PROXY = 0x8 - NTF_EXT_LEARNED = 0x10 - NTF_OFFLOADED = 0x20 - NTF_ROUTER = 0x80 - NUD_INCOMPLETE = 0x1 - NUD_REACHABLE = 0x2 - NUD_STALE = 0x4 - NUD_DELAY = 0x8 - NUD_PROBE = 0x10 - NUD_FAILED = 0x20 - NUD_NOARP = 0x40 - NUD_PERMANENT = 0x80 - NUD_NONE = 0x0 - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - IFA_FLAGS = 0x8 - IFA_RT_PRIORITY = 0x9 - IFA_TARGET_NETNSID = 0xa - IFLA_UNSPEC = 0x0 - IFLA_ADDRESS = 0x1 - IFLA_BROADCAST = 0x2 - IFLA_IFNAME = 0x3 - IFLA_MTU = 0x4 - IFLA_LINK = 0x5 - IFLA_QDISC = 0x6 - IFLA_STATS = 0x7 - IFLA_COST = 0x8 - IFLA_PRIORITY = 0x9 - IFLA_MASTER = 0xa - IFLA_WIRELESS = 0xb - IFLA_PROTINFO = 0xc - IFLA_TXQLEN = 0xd - IFLA_MAP = 0xe - IFLA_WEIGHT = 0xf - IFLA_OPERSTATE = 0x10 - IFLA_LINKMODE = 0x11 - IFLA_LINKINFO = 0x12 - IFLA_NET_NS_PID = 0x13 - IFLA_IFALIAS = 0x14 - IFLA_NUM_VF = 0x15 - IFLA_VFINFO_LIST = 0x16 - IFLA_STATS64 = 0x17 - IFLA_VF_PORTS = 0x18 - IFLA_PORT_SELF = 0x19 - IFLA_AF_SPEC = 0x1a - IFLA_GROUP = 0x1b - IFLA_NET_NS_FD = 0x1c - IFLA_EXT_MASK = 0x1d - IFLA_PROMISCUITY = 0x1e - IFLA_NUM_TX_QUEUES = 0x1f - IFLA_NUM_RX_QUEUES = 0x20 - IFLA_CARRIER = 0x21 - IFLA_PHYS_PORT_ID = 0x22 - IFLA_CARRIER_CHANGES = 0x23 - IFLA_PHYS_SWITCH_ID = 0x24 - IFLA_LINK_NETNSID = 0x25 - IFLA_PHYS_PORT_NAME = 0x26 - IFLA_PROTO_DOWN = 0x27 - IFLA_GSO_MAX_SEGS = 0x28 - IFLA_GSO_MAX_SIZE = 0x29 - IFLA_PAD = 0x2a - IFLA_XDP = 0x2b - IFLA_EVENT = 0x2c - IFLA_NEW_NETNSID = 0x2d - IFLA_IF_NETNSID = 0x2e - IFLA_TARGET_NETNSID = 0x2e - IFLA_CARRIER_UP_COUNT = 0x2f - IFLA_CARRIER_DOWN_COUNT = 0x30 - IFLA_NEW_IFINDEX = 0x31 - IFLA_MIN_MTU = 0x32 - IFLA_MAX_MTU = 0x33 - IFLA_MAX = 0x33 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 - IFLA_INFO_XSTATS = 0x3 - IFLA_INFO_SLAVE_KIND = 0x4 - IFLA_INFO_SLAVE_DATA = 0x5 - RT_SCOPE_UNIVERSE = 0x0 - RT_SCOPE_SITE = 0xc8 - RT_SCOPE_LINK = 0xfd - RT_SCOPE_HOST = 0xfe - RT_SCOPE_NOWHERE = 0xff - RT_TABLE_UNSPEC = 0x0 - RT_TABLE_COMPAT = 0xfc - RT_TABLE_DEFAULT = 0xfd - RT_TABLE_MAIN = 0xfe - RT_TABLE_LOCAL = 0xff - RT_TABLE_MAX = 0xffffffff - RTA_UNSPEC = 0x0 - RTA_DST = 0x1 - RTA_SRC = 0x2 - RTA_IIF = 0x3 - RTA_OIF = 0x4 - RTA_GATEWAY = 0x5 - RTA_PRIORITY = 0x6 - RTA_PREFSRC = 0x7 - RTA_METRICS = 0x8 - RTA_MULTIPATH = 0x9 - RTA_FLOW = 0xb - RTA_CACHEINFO = 0xc - RTA_TABLE = 0xf - RTA_MARK = 0x10 - RTA_MFC_STATS = 0x11 - RTA_VIA = 0x12 - RTA_NEWDST = 0x13 - RTA_PREF = 0x14 - RTA_ENCAP_TYPE = 0x15 - RTA_ENCAP = 0x16 - RTA_EXPIRES = 0x17 - RTA_PAD = 0x18 - RTA_UID = 0x19 - RTA_TTL_PROPAGATE = 0x1a - RTA_IP_PROTO = 0x1b - RTA_SPORT = 0x1c - RTA_DPORT = 0x1d - RTN_UNSPEC = 0x0 - RTN_UNICAST = 0x1 - RTN_LOCAL = 0x2 - RTN_BROADCAST = 0x3 - RTN_ANYCAST = 0x4 - RTN_MULTICAST = 0x5 - RTN_BLACKHOLE = 0x6 - RTN_UNREACHABLE = 0x7 - RTN_PROHIBIT = 0x8 - RTN_THROW = 0x9 - RTN_NAT = 0xa - RTN_XRESOLVE = 0xb - RTNLGRP_NONE = 0x0 - RTNLGRP_LINK = 0x1 - RTNLGRP_NOTIFY = 0x2 - RTNLGRP_NEIGH = 0x3 - RTNLGRP_TC = 0x4 - RTNLGRP_IPV4_IFADDR = 0x5 - RTNLGRP_IPV4_MROUTE = 0x6 - RTNLGRP_IPV4_ROUTE = 0x7 - RTNLGRP_IPV4_RULE = 0x8 - RTNLGRP_IPV6_IFADDR = 0x9 - RTNLGRP_IPV6_MROUTE = 0xa - RTNLGRP_IPV6_ROUTE = 0xb - RTNLGRP_IPV6_IFINFO = 0xc - RTNLGRP_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofIfaCacheinfo = 0x10 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 - SizeofNdUseroptmsg = 0x10 - SizeofNdMsg = 0xc + SizeofSockFprog = 0x10 ) -type NlMsghdr struct { - Len uint32 - Type uint16 - Flags uint16 - Seq uint32 - Pid uint32 -} - -type NlMsgerr struct { - Error int32 - Msg NlMsghdr -} - -type RtGenmsg struct { - Family uint8 -} - -type NlAttr struct { - Len uint16 - Type uint16 -} - -type RtAttr struct { - Len uint16 - Type uint16 -} - -type IfInfomsg struct { - Family uint8 - _ uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index uint32 -} - -type IfaCacheinfo struct { - Prefered uint32 - Valid uint32 - Cstamp uint32 - Tstamp uint32 -} - -type RtMsg struct { - Family uint8 - Dst_len uint8 - Src_len uint8 - Tos uint8 - Table uint8 - Protocol uint8 - Scope uint8 - Type uint8 - Flags uint32 -} - -type RtNexthop struct { - Len uint16 - Flags uint8 - Hops uint8 - Ifindex int32 -} - -type NdUseroptmsg struct { - Family uint8 - Pad1 uint8 - Opts_len uint16 - Ifindex int32 - Icmp_type uint8 - Icmp_code uint8 - Pad2 uint16 - Pad3 uint32 -} - -type NdMsg struct { - Family uint8 - Pad1 uint8 - Pad2 uint16 - Ifindex int32 - State uint16 - Flags uint8 - Type uint8 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - type PtraceRegs struct { Regs [16]uint64 Tstate uint64 @@ -782,15 +206,6 @@ type Sysinfo_t struct { _ [4]byte } -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - type Ustat_t struct { Tfree int32 Tinode uint64 @@ -807,35 +222,7 @@ type EpollEvent struct { } const ( - AT_EMPTY_PATH = 0x1000 - AT_FDCWD = -0x64 - AT_NO_AUTOMOUNT = 0x800 - AT_REMOVEDIR = 0x200 - - AT_STATX_SYNC_AS_STAT = 0x0 - AT_STATX_FORCE_SYNC = 0x2000 - AT_STATX_DONT_SYNC = 0x4000 - - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 - - AT_EACCESS = 0x200 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 POLLRDHUP = 0x800 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 ) type Sigset_t struct { @@ -844,33 +231,6 @@ type Sigset_t struct { const _C__NSIG = 0x41 -type SignalfdSiginfo struct { - Signo uint32 - Errno int32 - Code int32 - Pid uint32 - Uid uint32 - Fd int32 - Tid uint32 - Band uint32 - Overrun uint32 - Trapno uint32 - Status int32 - Int int32 - Ptr uint64 - Utime uint64 - Stime uint64 - Addr uint64 - Addr_lsb uint16 - _ uint16 - Syscall int32 - Call_addr uint64 - Arch uint32 - _ [28]uint8 -} - -const PERF_IOC_FLAG_GROUP = 0x1 - type Termios struct { Iflag uint32 Oflag uint32 @@ -882,13 +242,6 @@ type Termios struct { Ospeed uint32 } -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - type Taskstats struct { Version uint16 Ac_exitcode uint32 @@ -936,279 +289,13 @@ type Taskstats struct { Freepages_delay_total uint64 Thrashing_count uint64 Thrashing_delay_total uint64 + Ac_btime64 uint64 } -const ( - TASKSTATS_CMD_UNSPEC = 0x0 - TASKSTATS_CMD_GET = 0x1 - TASKSTATS_CMD_NEW = 0x2 - TASKSTATS_TYPE_UNSPEC = 0x0 - TASKSTATS_TYPE_PID = 0x1 - TASKSTATS_TYPE_TGID = 0x2 - TASKSTATS_TYPE_STATS = 0x3 - TASKSTATS_TYPE_AGGR_PID = 0x4 - TASKSTATS_TYPE_AGGR_TGID = 0x5 - TASKSTATS_TYPE_NULL = 0x6 - TASKSTATS_CMD_ATTR_UNSPEC = 0x0 - TASKSTATS_CMD_ATTR_PID = 0x1 - TASKSTATS_CMD_ATTR_TGID = 0x2 - TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 - TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 -) - -type CGroupStats struct { - Sleeping uint64 - Running uint64 - Stopped uint64 - Uninterruptible uint64 - Io_wait uint64 -} - -const ( - CGROUPSTATS_CMD_UNSPEC = 0x3 - CGROUPSTATS_CMD_GET = 0x4 - CGROUPSTATS_CMD_NEW = 0x5 - CGROUPSTATS_TYPE_UNSPEC = 0x0 - CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 - CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 - CGROUPSTATS_CMD_ATTR_FD = 0x1 -) - -type Genlmsghdr struct { - Cmd uint8 - Version uint8 - Reserved uint16 -} - -const ( - CTRL_CMD_UNSPEC = 0x0 - CTRL_CMD_NEWFAMILY = 0x1 - CTRL_CMD_DELFAMILY = 0x2 - CTRL_CMD_GETFAMILY = 0x3 - CTRL_CMD_NEWOPS = 0x4 - CTRL_CMD_DELOPS = 0x5 - CTRL_CMD_GETOPS = 0x6 - CTRL_CMD_NEWMCAST_GRP = 0x7 - CTRL_CMD_DELMCAST_GRP = 0x8 - CTRL_CMD_GETMCAST_GRP = 0x9 - CTRL_ATTR_UNSPEC = 0x0 - CTRL_ATTR_FAMILY_ID = 0x1 - CTRL_ATTR_FAMILY_NAME = 0x2 - CTRL_ATTR_VERSION = 0x3 - CTRL_ATTR_HDRSIZE = 0x4 - CTRL_ATTR_MAXATTR = 0x5 - CTRL_ATTR_OPS = 0x6 - CTRL_ATTR_MCAST_GROUPS = 0x7 - CTRL_ATTR_OP_UNSPEC = 0x0 - CTRL_ATTR_OP_ID = 0x1 - CTRL_ATTR_OP_FLAGS = 0x2 - CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 - CTRL_ATTR_MCAST_GRP_NAME = 0x1 - CTRL_ATTR_MCAST_GRP_ID = 0x2 -) - type cpuMask uint64 const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) - -type PerfEventAttr struct { - Type uint32 - Size uint32 - Config uint64 - Sample uint64 - Sample_type uint64 - Read_format uint64 - Bits uint64 - Wakeup uint32 - Bp_type uint32 - Ext1 uint64 - Ext2 uint64 - Branch_sample_type uint64 - Sample_regs_user uint64 - Sample_stack_user uint32 - Clockid int32 - Sample_regs_intr uint64 - Aux_watermark uint32 - Sample_max_stack uint16 - _ uint16 -} - -type PerfEventMmapPage struct { - Version uint32 - Compat_version uint32 - Lock uint32 - Index uint32 - Offset int64 - Time_enabled uint64 - Time_running uint64 - Capabilities uint64 - Pmc_width uint16 - Time_shift uint16 - Time_mult uint32 - Time_offset uint64 - Time_zero uint64 - Size uint32 - _ [948]uint8 - Data_head uint64 - Data_tail uint64 - Data_offset uint64 - Data_size uint64 - Aux_head uint64 - Aux_tail uint64 - Aux_offset uint64 - Aux_size uint64 -} - -const ( - PerfBitDisabled uint64 = CBitFieldMaskBit0 - PerfBitInherit = CBitFieldMaskBit1 - PerfBitPinned = CBitFieldMaskBit2 - PerfBitExclusive = CBitFieldMaskBit3 - PerfBitExcludeUser = CBitFieldMaskBit4 - PerfBitExcludeKernel = CBitFieldMaskBit5 - PerfBitExcludeHv = CBitFieldMaskBit6 - PerfBitExcludeIdle = CBitFieldMaskBit7 - PerfBitMmap = CBitFieldMaskBit8 - PerfBitComm = CBitFieldMaskBit9 - PerfBitFreq = CBitFieldMaskBit10 - PerfBitInheritStat = CBitFieldMaskBit11 - PerfBitEnableOnExec = CBitFieldMaskBit12 - PerfBitTask = CBitFieldMaskBit13 - PerfBitWatermark = CBitFieldMaskBit14 - PerfBitPreciseIPBit1 = CBitFieldMaskBit15 - PerfBitPreciseIPBit2 = CBitFieldMaskBit16 - PerfBitMmapData = CBitFieldMaskBit17 - PerfBitSampleIDAll = CBitFieldMaskBit18 - PerfBitExcludeHost = CBitFieldMaskBit19 - PerfBitExcludeGuest = CBitFieldMaskBit20 - PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 - PerfBitExcludeCallchainUser = CBitFieldMaskBit22 - PerfBitMmap2 = CBitFieldMaskBit23 - PerfBitCommExec = CBitFieldMaskBit24 - PerfBitUseClockID = CBitFieldMaskBit25 - PerfBitContextSwitch = CBitFieldMaskBit26 -) - -const ( - PERF_TYPE_HARDWARE = 0x0 - PERF_TYPE_SOFTWARE = 0x1 - PERF_TYPE_TRACEPOINT = 0x2 - PERF_TYPE_HW_CACHE = 0x3 - PERF_TYPE_RAW = 0x4 - PERF_TYPE_BREAKPOINT = 0x5 - - PERF_COUNT_HW_CPU_CYCLES = 0x0 - PERF_COUNT_HW_INSTRUCTIONS = 0x1 - PERF_COUNT_HW_CACHE_REFERENCES = 0x2 - PERF_COUNT_HW_CACHE_MISSES = 0x3 - PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 - PERF_COUNT_HW_BRANCH_MISSES = 0x5 - PERF_COUNT_HW_BUS_CYCLES = 0x6 - PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 - PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 - PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 - - PERF_COUNT_HW_CACHE_L1D = 0x0 - PERF_COUNT_HW_CACHE_L1I = 0x1 - PERF_COUNT_HW_CACHE_LL = 0x2 - PERF_COUNT_HW_CACHE_DTLB = 0x3 - PERF_COUNT_HW_CACHE_ITLB = 0x4 - PERF_COUNT_HW_CACHE_BPU = 0x5 - PERF_COUNT_HW_CACHE_NODE = 0x6 - - PERF_COUNT_HW_CACHE_OP_READ = 0x0 - PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 - PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 - - PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 - PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 - - PERF_COUNT_SW_CPU_CLOCK = 0x0 - PERF_COUNT_SW_TASK_CLOCK = 0x1 - PERF_COUNT_SW_PAGE_FAULTS = 0x2 - PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 - PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 - PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 - PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 - PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 - PERF_COUNT_SW_EMULATION_FAULTS = 0x8 - PERF_COUNT_SW_DUMMY = 0x9 - PERF_COUNT_SW_BPF_OUTPUT = 0xa - - PERF_SAMPLE_IP = 0x1 - PERF_SAMPLE_TID = 0x2 - PERF_SAMPLE_TIME = 0x4 - PERF_SAMPLE_ADDR = 0x8 - PERF_SAMPLE_READ = 0x10 - PERF_SAMPLE_CALLCHAIN = 0x20 - PERF_SAMPLE_ID = 0x40 - PERF_SAMPLE_CPU = 0x80 - PERF_SAMPLE_PERIOD = 0x100 - PERF_SAMPLE_STREAM_ID = 0x200 - PERF_SAMPLE_RAW = 0x400 - PERF_SAMPLE_BRANCH_STACK = 0x800 - - PERF_SAMPLE_BRANCH_USER = 0x1 - PERF_SAMPLE_BRANCH_KERNEL = 0x2 - PERF_SAMPLE_BRANCH_HV = 0x4 - PERF_SAMPLE_BRANCH_ANY = 0x8 - PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 - PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 - PERF_SAMPLE_BRANCH_IND_CALL = 0x40 - PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 - PERF_SAMPLE_BRANCH_IN_TX = 0x100 - PERF_SAMPLE_BRANCH_NO_TX = 0x200 - PERF_SAMPLE_BRANCH_COND = 0x400 - PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 - PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 - PERF_SAMPLE_BRANCH_CALL = 0x2000 - PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 - PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 - PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 - - PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 - PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 - PERF_FORMAT_ID = 0x4 - PERF_FORMAT_GROUP = 0x8 - - PERF_RECORD_MMAP = 0x1 - PERF_RECORD_LOST = 0x2 - PERF_RECORD_COMM = 0x3 - PERF_RECORD_EXIT = 0x4 - PERF_RECORD_THROTTLE = 0x5 - PERF_RECORD_UNTHROTTLE = 0x6 - PERF_RECORD_FORK = 0x7 - PERF_RECORD_READ = 0x8 - PERF_RECORD_SAMPLE = 0x9 - PERF_RECORD_MMAP2 = 0xa - PERF_RECORD_AUX = 0xb - PERF_RECORD_ITRACE_START = 0xc - PERF_RECORD_LOST_SAMPLES = 0xd - PERF_RECORD_SWITCH = 0xe - PERF_RECORD_SWITCH_CPU_WIDE = 0xf - PERF_RECORD_NAMESPACES = 0x10 - - PERF_CONTEXT_HV = -0x20 - PERF_CONTEXT_KERNEL = -0x80 - PERF_CONTEXT_USER = -0x200 - - PERF_CONTEXT_GUEST = -0x800 - PERF_CONTEXT_GUEST_KERNEL = -0x880 - PERF_CONTEXT_GUEST_USER = -0xa00 - - PERF_FLAG_FD_NO_GROUP = 0x1 - PERF_FLAG_FD_OUTPUT = 0x2 - PERF_FLAG_PID_CGROUP = 0x4 - PERF_FLAG_FD_CLOEXEC = 0x8 + _NCPUBITS = 0x40 ) const ( @@ -1284,22 +371,6 @@ type SockaddrStorage struct { _ uint64 } -type TCPMD5Sig struct { - Addr SockaddrStorage - Flags uint8 - Prefixlen uint8 - Keylen uint16 - _ uint32 - Key [80]uint8 -} - -type HDDriveCmdHdr struct { - Command uint8 - Number uint8 - Feature uint8 - Count uint8 -} - type HDGeometry struct { Heads uint8 Sectors uint8 @@ -1307,88 +378,6 @@ type HDGeometry struct { Start uint64 } -type HDDriveID struct { - Config uint16 - Cyls uint16 - Reserved2 uint16 - Heads uint16 - Track_bytes uint16 - Sector_bytes uint16 - Sectors uint16 - Vendor0 uint16 - Vendor1 uint16 - Vendor2 uint16 - Serial_no [20]uint8 - Buf_type uint16 - Buf_size uint16 - Ecc_bytes uint16 - Fw_rev [8]uint8 - Model [40]uint8 - Max_multsect uint8 - Vendor3 uint8 - Dword_io uint16 - Vendor4 uint8 - Capability uint8 - Reserved50 uint16 - Vendor5 uint8 - TPIO uint8 - Vendor6 uint8 - TDMA uint8 - Field_valid uint16 - Cur_cyls uint16 - Cur_heads uint16 - Cur_sectors uint16 - Cur_capacity0 uint16 - Cur_capacity1 uint16 - Multsect uint8 - Multsect_valid uint8 - Lba_capacity uint32 - Dma_1word uint16 - Dma_mword uint16 - Eide_pio_modes uint16 - Eide_dma_min uint16 - Eide_dma_time uint16 - Eide_pio uint16 - Eide_pio_iordy uint16 - Words69_70 [2]uint16 - Words71_74 [4]uint16 - Queue_depth uint16 - Words76_79 [4]uint16 - Major_rev_num uint16 - Minor_rev_num uint16 - Command_set_1 uint16 - Command_set_2 uint16 - Cfsse uint16 - Cfs_enable_1 uint16 - Cfs_enable_2 uint16 - Csf_default uint16 - Dma_ultra uint16 - Trseuc uint16 - TrsEuc uint16 - CurAPMvalues uint16 - Mprc uint16 - Hw_config uint16 - Acoustic uint16 - Msrqs uint16 - Sxfert uint16 - Sal uint16 - Spg uint32 - Lba_capacity_2 uint64 - Words104_125 [22]uint16 - Last_lun uint16 - Word127 uint16 - Dlf uint16 - Csfo uint16 - Words130_155 [26]uint16 - Word156 uint16 - Words157_159 [3]uint16 - Cfa_power uint16 - Words161_175 [15]uint16 - Words176_205 [30]uint16 - Words206_254 [49]uint16 - Integrity_word uint16 -} - type Statfs_t struct { Type int64 Bsize int64 @@ -1404,18 +393,6 @@ type Statfs_t struct { Spare [4]int64 } -const ( - ST_MANDLOCK = 0x40 - ST_NOATIME = 0x400 - ST_NODEV = 0x4 - ST_NODIRATIME = 0x800 - ST_NOEXEC = 0x8 - ST_NOSUID = 0x2 - ST_RDONLY = 0x1 - ST_RELATIME = 0x1000 - ST_SYNCHRONOUS = 0x10 -) - type TpacketHdr struct { Status uint64 Len uint32 @@ -1427,589 +404,10 @@ type TpacketHdr struct { _ [4]byte } -type Tpacket2Hdr struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Sec uint32 - Nsec uint32 - Vlan_tci uint16 - Vlan_tpid uint16 - _ [4]uint8 -} - -type Tpacket3Hdr struct { - Next_offset uint32 - Sec uint32 - Nsec uint32 - Snaplen uint32 - Len uint32 - Status uint32 - Mac uint16 - Net uint16 - Hv1 TpacketHdrVariant1 - _ [8]uint8 -} - -type TpacketHdrVariant1 struct { - Rxhash uint32 - Vlan_tci uint32 - Vlan_tpid uint16 - _ uint16 -} - -type TpacketBlockDesc struct { - Version uint32 - To_priv uint32 - Hdr [40]byte -} - -type TpacketBDTS struct { - Sec uint32 - Usec uint32 -} - -type TpacketHdrV1 struct { - Block_status uint32 - Num_pkts uint32 - Offset_to_first_pkt uint32 - Blk_len uint32 - Seq_num uint64 - Ts_first_pkt TpacketBDTS - Ts_last_pkt TpacketBDTS -} - -type TpacketReq struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 -} - -type TpacketReq3 struct { - Block_size uint32 - Block_nr uint32 - Frame_size uint32 - Frame_nr uint32 - Retire_blk_tov uint32 - Sizeof_priv uint32 - Feature_req_word uint32 -} - -type TpacketStats struct { - Packets uint32 - Drops uint32 -} - -type TpacketStatsV3 struct { - Packets uint32 - Drops uint32 - Freeze_q_cnt uint32 -} - -type TpacketAuxdata struct { - Status uint32 - Len uint32 - Snaplen uint32 - Mac uint16 - Net uint16 - Vlan_tci uint16 - Vlan_tpid uint16 -} - const ( - TPACKET_V1 = 0x0 - TPACKET_V2 = 0x1 - TPACKET_V3 = 0x2 + SizeofTpacketHdr = 0x20 ) -const ( - SizeofTpacketHdr = 0x20 - SizeofTpacket2Hdr = 0x20 - SizeofTpacket3Hdr = 0x30 - - SizeofTpacketStats = 0x8 - SizeofTpacketStatsV3 = 0xc -) - -const ( - NF_INET_PRE_ROUTING = 0x0 - NF_INET_LOCAL_IN = 0x1 - NF_INET_FORWARD = 0x2 - NF_INET_LOCAL_OUT = 0x3 - NF_INET_POST_ROUTING = 0x4 - NF_INET_NUMHOOKS = 0x5 -) - -const ( - NF_NETDEV_INGRESS = 0x0 - NF_NETDEV_NUMHOOKS = 0x1 -) - -const ( - NFPROTO_UNSPEC = 0x0 - NFPROTO_INET = 0x1 - NFPROTO_IPV4 = 0x2 - NFPROTO_ARP = 0x3 - NFPROTO_NETDEV = 0x5 - NFPROTO_BRIDGE = 0x7 - NFPROTO_IPV6 = 0xa - NFPROTO_DECNET = 0xc - NFPROTO_NUMPROTO = 0xd -) - -type Nfgenmsg struct { - Nfgen_family uint8 - Version uint8 - Res_id uint16 -} - -const ( - NFNL_BATCH_UNSPEC = 0x0 - NFNL_BATCH_GENID = 0x1 -) - -const ( - NFT_REG_VERDICT = 0x0 - NFT_REG_1 = 0x1 - NFT_REG_2 = 0x2 - NFT_REG_3 = 0x3 - NFT_REG_4 = 0x4 - NFT_REG32_00 = 0x8 - NFT_REG32_01 = 0x9 - NFT_REG32_02 = 0xa - NFT_REG32_03 = 0xb - NFT_REG32_04 = 0xc - NFT_REG32_05 = 0xd - NFT_REG32_06 = 0xe - NFT_REG32_07 = 0xf - NFT_REG32_08 = 0x10 - NFT_REG32_09 = 0x11 - NFT_REG32_10 = 0x12 - NFT_REG32_11 = 0x13 - NFT_REG32_12 = 0x14 - NFT_REG32_13 = 0x15 - NFT_REG32_14 = 0x16 - NFT_REG32_15 = 0x17 - NFT_CONTINUE = -0x1 - NFT_BREAK = -0x2 - NFT_JUMP = -0x3 - NFT_GOTO = -0x4 - NFT_RETURN = -0x5 - NFT_MSG_NEWTABLE = 0x0 - NFT_MSG_GETTABLE = 0x1 - NFT_MSG_DELTABLE = 0x2 - NFT_MSG_NEWCHAIN = 0x3 - NFT_MSG_GETCHAIN = 0x4 - NFT_MSG_DELCHAIN = 0x5 - NFT_MSG_NEWRULE = 0x6 - NFT_MSG_GETRULE = 0x7 - NFT_MSG_DELRULE = 0x8 - NFT_MSG_NEWSET = 0x9 - NFT_MSG_GETSET = 0xa - NFT_MSG_DELSET = 0xb - NFT_MSG_NEWSETELEM = 0xc - NFT_MSG_GETSETELEM = 0xd - NFT_MSG_DELSETELEM = 0xe - NFT_MSG_NEWGEN = 0xf - NFT_MSG_GETGEN = 0x10 - NFT_MSG_TRACE = 0x11 - NFT_MSG_NEWOBJ = 0x12 - NFT_MSG_GETOBJ = 0x13 - NFT_MSG_DELOBJ = 0x14 - NFT_MSG_GETOBJ_RESET = 0x15 - NFT_MSG_MAX = 0x19 - NFTA_LIST_UNPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 - NFTA_HOOK_HOOKNUM = 0x1 - NFTA_HOOK_PRIORITY = 0x2 - NFTA_HOOK_DEV = 0x3 - NFT_TABLE_F_DORMANT = 0x1 - NFTA_TABLE_UNSPEC = 0x0 - NFTA_TABLE_NAME = 0x1 - NFTA_TABLE_FLAGS = 0x2 - NFTA_TABLE_USE = 0x3 - NFTA_CHAIN_UNSPEC = 0x0 - NFTA_CHAIN_TABLE = 0x1 - NFTA_CHAIN_HANDLE = 0x2 - NFTA_CHAIN_NAME = 0x3 - NFTA_CHAIN_HOOK = 0x4 - NFTA_CHAIN_POLICY = 0x5 - NFTA_CHAIN_USE = 0x6 - NFTA_CHAIN_TYPE = 0x7 - NFTA_CHAIN_COUNTERS = 0x8 - NFTA_CHAIN_PAD = 0x9 - NFTA_RULE_UNSPEC = 0x0 - NFTA_RULE_TABLE = 0x1 - NFTA_RULE_CHAIN = 0x2 - NFTA_RULE_HANDLE = 0x3 - NFTA_RULE_EXPRESSIONS = 0x4 - NFTA_RULE_COMPAT = 0x5 - NFTA_RULE_POSITION = 0x6 - NFTA_RULE_USERDATA = 0x7 - NFTA_RULE_PAD = 0x8 - NFTA_RULE_ID = 0x9 - NFT_RULE_COMPAT_F_INV = 0x2 - NFT_RULE_COMPAT_F_MASK = 0x2 - NFTA_RULE_COMPAT_UNSPEC = 0x0 - NFTA_RULE_COMPAT_PROTO = 0x1 - NFTA_RULE_COMPAT_FLAGS = 0x2 - NFT_SET_ANONYMOUS = 0x1 - NFT_SET_CONSTANT = 0x2 - NFT_SET_INTERVAL = 0x4 - NFT_SET_MAP = 0x8 - NFT_SET_TIMEOUT = 0x10 - NFT_SET_EVAL = 0x20 - NFT_SET_OBJECT = 0x40 - NFT_SET_POL_PERFORMANCE = 0x0 - NFT_SET_POL_MEMORY = 0x1 - NFTA_SET_DESC_UNSPEC = 0x0 - NFTA_SET_DESC_SIZE = 0x1 - NFTA_SET_UNSPEC = 0x0 - NFTA_SET_TABLE = 0x1 - NFTA_SET_NAME = 0x2 - NFTA_SET_FLAGS = 0x3 - NFTA_SET_KEY_TYPE = 0x4 - NFTA_SET_KEY_LEN = 0x5 - NFTA_SET_DATA_TYPE = 0x6 - NFTA_SET_DATA_LEN = 0x7 - NFTA_SET_POLICY = 0x8 - NFTA_SET_DESC = 0x9 - NFTA_SET_ID = 0xa - NFTA_SET_TIMEOUT = 0xb - NFTA_SET_GC_INTERVAL = 0xc - NFTA_SET_USERDATA = 0xd - NFTA_SET_PAD = 0xe - NFTA_SET_OBJ_TYPE = 0xf - NFT_SET_ELEM_INTERVAL_END = 0x1 - NFTA_SET_ELEM_UNSPEC = 0x0 - NFTA_SET_ELEM_KEY = 0x1 - NFTA_SET_ELEM_DATA = 0x2 - NFTA_SET_ELEM_FLAGS = 0x3 - NFTA_SET_ELEM_TIMEOUT = 0x4 - NFTA_SET_ELEM_EXPIRATION = 0x5 - NFTA_SET_ELEM_USERDATA = 0x6 - NFTA_SET_ELEM_EXPR = 0x7 - NFTA_SET_ELEM_PAD = 0x8 - NFTA_SET_ELEM_OBJREF = 0x9 - NFTA_SET_ELEM_LIST_UNSPEC = 0x0 - NFTA_SET_ELEM_LIST_TABLE = 0x1 - NFTA_SET_ELEM_LIST_SET = 0x2 - NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 - NFTA_SET_ELEM_LIST_SET_ID = 0x4 - NFT_DATA_VALUE = 0x0 - NFT_DATA_VERDICT = 0xffffff00 - NFTA_DATA_UNSPEC = 0x0 - NFTA_DATA_VALUE = 0x1 - NFTA_DATA_VERDICT = 0x2 - NFTA_VERDICT_UNSPEC = 0x0 - NFTA_VERDICT_CODE = 0x1 - NFTA_VERDICT_CHAIN = 0x2 - NFTA_EXPR_UNSPEC = 0x0 - NFTA_EXPR_NAME = 0x1 - NFTA_EXPR_DATA = 0x2 - NFTA_IMMEDIATE_UNSPEC = 0x0 - NFTA_IMMEDIATE_DREG = 0x1 - NFTA_IMMEDIATE_DATA = 0x2 - NFTA_BITWISE_UNSPEC = 0x0 - NFTA_BITWISE_SREG = 0x1 - NFTA_BITWISE_DREG = 0x2 - NFTA_BITWISE_LEN = 0x3 - NFTA_BITWISE_MASK = 0x4 - NFTA_BITWISE_XOR = 0x5 - NFT_BYTEORDER_NTOH = 0x0 - NFT_BYTEORDER_HTON = 0x1 - NFTA_BYTEORDER_UNSPEC = 0x0 - NFTA_BYTEORDER_SREG = 0x1 - NFTA_BYTEORDER_DREG = 0x2 - NFTA_BYTEORDER_OP = 0x3 - NFTA_BYTEORDER_LEN = 0x4 - NFTA_BYTEORDER_SIZE = 0x5 - NFT_CMP_EQ = 0x0 - NFT_CMP_NEQ = 0x1 - NFT_CMP_LT = 0x2 - NFT_CMP_LTE = 0x3 - NFT_CMP_GT = 0x4 - NFT_CMP_GTE = 0x5 - NFTA_CMP_UNSPEC = 0x0 - NFTA_CMP_SREG = 0x1 - NFTA_CMP_OP = 0x2 - NFTA_CMP_DATA = 0x3 - NFT_RANGE_EQ = 0x0 - NFT_RANGE_NEQ = 0x1 - NFTA_RANGE_UNSPEC = 0x0 - NFTA_RANGE_SREG = 0x1 - NFTA_RANGE_OP = 0x2 - NFTA_RANGE_FROM_DATA = 0x3 - NFTA_RANGE_TO_DATA = 0x4 - NFT_LOOKUP_F_INV = 0x1 - NFTA_LOOKUP_UNSPEC = 0x0 - NFTA_LOOKUP_SET = 0x1 - NFTA_LOOKUP_SREG = 0x2 - NFTA_LOOKUP_DREG = 0x3 - NFTA_LOOKUP_SET_ID = 0x4 - NFTA_LOOKUP_FLAGS = 0x5 - NFT_DYNSET_OP_ADD = 0x0 - NFT_DYNSET_OP_UPDATE = 0x1 - NFT_DYNSET_F_INV = 0x1 - NFTA_DYNSET_UNSPEC = 0x0 - NFTA_DYNSET_SET_NAME = 0x1 - NFTA_DYNSET_SET_ID = 0x2 - NFTA_DYNSET_OP = 0x3 - NFTA_DYNSET_SREG_KEY = 0x4 - NFTA_DYNSET_SREG_DATA = 0x5 - NFTA_DYNSET_TIMEOUT = 0x6 - NFTA_DYNSET_EXPR = 0x7 - NFTA_DYNSET_PAD = 0x8 - NFTA_DYNSET_FLAGS = 0x9 - NFT_PAYLOAD_LL_HEADER = 0x0 - NFT_PAYLOAD_NETWORK_HEADER = 0x1 - NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 - NFT_PAYLOAD_CSUM_NONE = 0x0 - NFT_PAYLOAD_CSUM_INET = 0x1 - NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 - NFTA_PAYLOAD_UNSPEC = 0x0 - NFTA_PAYLOAD_DREG = 0x1 - NFTA_PAYLOAD_BASE = 0x2 - NFTA_PAYLOAD_OFFSET = 0x3 - NFTA_PAYLOAD_LEN = 0x4 - NFTA_PAYLOAD_SREG = 0x5 - NFTA_PAYLOAD_CSUM_TYPE = 0x6 - NFTA_PAYLOAD_CSUM_OFFSET = 0x7 - NFTA_PAYLOAD_CSUM_FLAGS = 0x8 - NFT_EXTHDR_F_PRESENT = 0x1 - NFT_EXTHDR_OP_IPV6 = 0x0 - NFT_EXTHDR_OP_TCPOPT = 0x1 - NFTA_EXTHDR_UNSPEC = 0x0 - NFTA_EXTHDR_DREG = 0x1 - NFTA_EXTHDR_TYPE = 0x2 - NFTA_EXTHDR_OFFSET = 0x3 - NFTA_EXTHDR_LEN = 0x4 - NFTA_EXTHDR_FLAGS = 0x5 - NFTA_EXTHDR_OP = 0x6 - NFTA_EXTHDR_SREG = 0x7 - NFT_META_LEN = 0x0 - NFT_META_PROTOCOL = 0x1 - NFT_META_PRIORITY = 0x2 - NFT_META_MARK = 0x3 - NFT_META_IIF = 0x4 - NFT_META_OIF = 0x5 - NFT_META_IIFNAME = 0x6 - NFT_META_OIFNAME = 0x7 - NFT_META_IIFTYPE = 0x8 - NFT_META_OIFTYPE = 0x9 - NFT_META_SKUID = 0xa - NFT_META_SKGID = 0xb - NFT_META_NFTRACE = 0xc - NFT_META_RTCLASSID = 0xd - NFT_META_SECMARK = 0xe - NFT_META_NFPROTO = 0xf - NFT_META_L4PROTO = 0x10 - NFT_META_BRI_IIFNAME = 0x11 - NFT_META_BRI_OIFNAME = 0x12 - NFT_META_PKTTYPE = 0x13 - NFT_META_CPU = 0x14 - NFT_META_IIFGROUP = 0x15 - NFT_META_OIFGROUP = 0x16 - NFT_META_CGROUP = 0x17 - NFT_META_PRANDOM = 0x18 - NFT_RT_CLASSID = 0x0 - NFT_RT_NEXTHOP4 = 0x1 - NFT_RT_NEXTHOP6 = 0x2 - NFT_RT_TCPMSS = 0x3 - NFT_HASH_JENKINS = 0x0 - NFT_HASH_SYM = 0x1 - NFTA_HASH_UNSPEC = 0x0 - NFTA_HASH_SREG = 0x1 - NFTA_HASH_DREG = 0x2 - NFTA_HASH_LEN = 0x3 - NFTA_HASH_MODULUS = 0x4 - NFTA_HASH_SEED = 0x5 - NFTA_HASH_OFFSET = 0x6 - NFTA_HASH_TYPE = 0x7 - NFTA_META_UNSPEC = 0x0 - NFTA_META_DREG = 0x1 - NFTA_META_KEY = 0x2 - NFTA_META_SREG = 0x3 - NFTA_RT_UNSPEC = 0x0 - NFTA_RT_DREG = 0x1 - NFTA_RT_KEY = 0x2 - NFT_CT_STATE = 0x0 - NFT_CT_DIRECTION = 0x1 - NFT_CT_STATUS = 0x2 - NFT_CT_MARK = 0x3 - NFT_CT_SECMARK = 0x4 - NFT_CT_EXPIRATION = 0x5 - NFT_CT_HELPER = 0x6 - NFT_CT_L3PROTOCOL = 0x7 - NFT_CT_SRC = 0x8 - NFT_CT_DST = 0x9 - NFT_CT_PROTOCOL = 0xa - NFT_CT_PROTO_SRC = 0xb - NFT_CT_PROTO_DST = 0xc - NFT_CT_LABELS = 0xd - NFT_CT_PKTS = 0xe - NFT_CT_BYTES = 0xf - NFT_CT_AVGPKT = 0x10 - NFT_CT_ZONE = 0x11 - NFT_CT_EVENTMASK = 0x12 - NFTA_CT_UNSPEC = 0x0 - NFTA_CT_DREG = 0x1 - NFTA_CT_KEY = 0x2 - NFTA_CT_DIRECTION = 0x3 - NFTA_CT_SREG = 0x4 - NFT_LIMIT_PKTS = 0x0 - NFT_LIMIT_PKT_BYTES = 0x1 - NFT_LIMIT_F_INV = 0x1 - NFTA_LIMIT_UNSPEC = 0x0 - NFTA_LIMIT_RATE = 0x1 - NFTA_LIMIT_UNIT = 0x2 - NFTA_LIMIT_BURST = 0x3 - NFTA_LIMIT_TYPE = 0x4 - NFTA_LIMIT_FLAGS = 0x5 - NFTA_LIMIT_PAD = 0x6 - NFTA_COUNTER_UNSPEC = 0x0 - NFTA_COUNTER_BYTES = 0x1 - NFTA_COUNTER_PACKETS = 0x2 - NFTA_COUNTER_PAD = 0x3 - NFTA_LOG_UNSPEC = 0x0 - NFTA_LOG_GROUP = 0x1 - NFTA_LOG_PREFIX = 0x2 - NFTA_LOG_SNAPLEN = 0x3 - NFTA_LOG_QTHRESHOLD = 0x4 - NFTA_LOG_LEVEL = 0x5 - NFTA_LOG_FLAGS = 0x6 - NFTA_QUEUE_UNSPEC = 0x0 - NFTA_QUEUE_NUM = 0x1 - NFTA_QUEUE_TOTAL = 0x2 - NFTA_QUEUE_FLAGS = 0x3 - NFTA_QUEUE_SREG_QNUM = 0x4 - NFT_QUOTA_F_INV = 0x1 - NFT_QUOTA_F_DEPLETED = 0x2 - NFTA_QUOTA_UNSPEC = 0x0 - NFTA_QUOTA_BYTES = 0x1 - NFTA_QUOTA_FLAGS = 0x2 - NFTA_QUOTA_PAD = 0x3 - NFTA_QUOTA_CONSUMED = 0x4 - NFT_REJECT_ICMP_UNREACH = 0x0 - NFT_REJECT_TCP_RST = 0x1 - NFT_REJECT_ICMPX_UNREACH = 0x2 - NFT_REJECT_ICMPX_NO_ROUTE = 0x0 - NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 - NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 - NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 - NFTA_REJECT_UNSPEC = 0x0 - NFTA_REJECT_TYPE = 0x1 - NFTA_REJECT_ICMP_CODE = 0x2 - NFT_NAT_SNAT = 0x0 - NFT_NAT_DNAT = 0x1 - NFTA_NAT_UNSPEC = 0x0 - NFTA_NAT_TYPE = 0x1 - NFTA_NAT_FAMILY = 0x2 - NFTA_NAT_REG_ADDR_MIN = 0x3 - NFTA_NAT_REG_ADDR_MAX = 0x4 - NFTA_NAT_REG_PROTO_MIN = 0x5 - NFTA_NAT_REG_PROTO_MAX = 0x6 - NFTA_NAT_FLAGS = 0x7 - NFTA_MASQ_UNSPEC = 0x0 - NFTA_MASQ_FLAGS = 0x1 - NFTA_MASQ_REG_PROTO_MIN = 0x2 - NFTA_MASQ_REG_PROTO_MAX = 0x3 - NFTA_REDIR_UNSPEC = 0x0 - NFTA_REDIR_REG_PROTO_MIN = 0x1 - NFTA_REDIR_REG_PROTO_MAX = 0x2 - NFTA_REDIR_FLAGS = 0x3 - NFTA_DUP_UNSPEC = 0x0 - NFTA_DUP_SREG_ADDR = 0x1 - NFTA_DUP_SREG_DEV = 0x2 - NFTA_FWD_UNSPEC = 0x0 - NFTA_FWD_SREG_DEV = 0x1 - NFTA_OBJREF_UNSPEC = 0x0 - NFTA_OBJREF_IMM_TYPE = 0x1 - NFTA_OBJREF_IMM_NAME = 0x2 - NFTA_OBJREF_SET_SREG = 0x3 - NFTA_OBJREF_SET_NAME = 0x4 - NFTA_OBJREF_SET_ID = 0x5 - NFTA_GEN_UNSPEC = 0x0 - NFTA_GEN_ID = 0x1 - NFTA_GEN_PROC_PID = 0x2 - NFTA_GEN_PROC_NAME = 0x3 - NFTA_FIB_UNSPEC = 0x0 - NFTA_FIB_DREG = 0x1 - NFTA_FIB_RESULT = 0x2 - NFTA_FIB_FLAGS = 0x3 - NFT_FIB_RESULT_UNSPEC = 0x0 - NFT_FIB_RESULT_OIF = 0x1 - NFT_FIB_RESULT_OIFNAME = 0x2 - NFT_FIB_RESULT_ADDRTYPE = 0x3 - NFTA_FIB_F_SADDR = 0x1 - NFTA_FIB_F_DADDR = 0x2 - NFTA_FIB_F_MARK = 0x4 - NFTA_FIB_F_IIF = 0x8 - NFTA_FIB_F_OIF = 0x10 - NFTA_FIB_F_PRESENT = 0x20 - NFTA_CT_HELPER_UNSPEC = 0x0 - NFTA_CT_HELPER_NAME = 0x1 - NFTA_CT_HELPER_L3PROTO = 0x2 - NFTA_CT_HELPER_L4PROTO = 0x3 - NFTA_OBJ_UNSPEC = 0x0 - NFTA_OBJ_TABLE = 0x1 - NFTA_OBJ_NAME = 0x2 - NFTA_OBJ_TYPE = 0x3 - NFTA_OBJ_DATA = 0x4 - NFTA_OBJ_USE = 0x5 - NFTA_TRACE_UNSPEC = 0x0 - NFTA_TRACE_TABLE = 0x1 - NFTA_TRACE_CHAIN = 0x2 - NFTA_TRACE_RULE_HANDLE = 0x3 - NFTA_TRACE_TYPE = 0x4 - NFTA_TRACE_VERDICT = 0x5 - NFTA_TRACE_ID = 0x6 - NFTA_TRACE_LL_HEADER = 0x7 - NFTA_TRACE_NETWORK_HEADER = 0x8 - NFTA_TRACE_TRANSPORT_HEADER = 0x9 - NFTA_TRACE_IIF = 0xa - NFTA_TRACE_IIFTYPE = 0xb - NFTA_TRACE_OIF = 0xc - NFTA_TRACE_OIFTYPE = 0xd - NFTA_TRACE_MARK = 0xe - NFTA_TRACE_NFPROTO = 0xf - NFTA_TRACE_POLICY = 0x10 - NFTA_TRACE_PAD = 0x11 - NFT_TRACETYPE_UNSPEC = 0x0 - NFT_TRACETYPE_POLICY = 0x1 - NFT_TRACETYPE_RETURN = 0x2 - NFT_TRACETYPE_RULE = 0x3 - NFTA_NG_UNSPEC = 0x0 - NFTA_NG_DREG = 0x1 - NFTA_NG_MODULUS = 0x2 - NFTA_NG_TYPE = 0x3 - NFTA_NG_OFFSET = 0x4 - NFT_NG_INCREMENTAL = 0x0 - NFT_NG_RANDOM = 0x1 -) - -type RTCTime struct { - Sec int32 - Min int32 - Hour int32 - Mday int32 - Mon int32 - Year int32 - Wday int32 - Yday int32 - Isdst int32 -} - -type RTCWkAlrm struct { - Enabled uint8 - Pending uint8 - Time RTCTime -} - type RTCPLLInfo struct { Ctrl int32 Value int32 @@ -2020,13 +418,6 @@ type RTCPLLInfo struct { Clock int64 } -type BlkpgIoctlArg struct { - Op int32 - Flags int32 - Datalen int32 - Data *byte -} - type BlkpgPartition struct { Start int64 Length int64 @@ -2037,168 +428,18 @@ type BlkpgPartition struct { } const ( - BLKPG = 0x20001269 - BLKPG_ADD_PARTITION = 0x1 - BLKPG_DEL_PARTITION = 0x2 - BLKPG_RESIZE_PARTITION = 0x3 + BLKPG = 0x20001269 ) -const ( - NETNSA_NONE = 0x0 - NETNSA_NSID = 0x1 - NETNSA_PID = 0x2 - NETNSA_FD = 0x3 -) - -type XDPRingOffset struct { - Producer uint64 - Consumer uint64 - Desc uint64 -} - -type XDPMmapOffsets struct { - Rx XDPRingOffset - Tx XDPRingOffset - Fr XDPRingOffset - Cr XDPRingOffset -} - type XDPUmemReg struct { Addr uint64 Len uint64 Size uint32 Headroom uint32 + Flags uint32 + _ [4]byte } -type XDPStatistics struct { - Rx_dropped uint64 - Rx_invalid_descs uint64 - Tx_invalid_descs uint64 -} - -type XDPDesc struct { - Addr uint64 - Len uint32 - Options uint32 -} - -const ( - NCSI_CMD_UNSPEC = 0x0 - NCSI_CMD_PKG_INFO = 0x1 - NCSI_CMD_SET_INTERFACE = 0x2 - NCSI_CMD_CLEAR_INTERFACE = 0x3 - NCSI_ATTR_UNSPEC = 0x0 - NCSI_ATTR_IFINDEX = 0x1 - NCSI_ATTR_PACKAGE_LIST = 0x2 - NCSI_ATTR_PACKAGE_ID = 0x3 - NCSI_ATTR_CHANNEL_ID = 0x4 - NCSI_PKG_ATTR_UNSPEC = 0x0 - NCSI_PKG_ATTR = 0x1 - NCSI_PKG_ATTR_ID = 0x2 - NCSI_PKG_ATTR_FORCED = 0x3 - NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 - NCSI_CHANNEL_ATTR_UNSPEC = 0x0 - NCSI_CHANNEL_ATTR = 0x1 - NCSI_CHANNEL_ATTR_ID = 0x2 - NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 - NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 - NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 - NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 - NCSI_CHANNEL_ATTR_ACTIVE = 0x7 - NCSI_CHANNEL_ATTR_FORCED = 0x8 - NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 - NCSI_CHANNEL_ATTR_VLAN_ID = 0xa -) - -type ScmTimestamping struct { - Ts [3]Timespec -} - -const ( - SOF_TIMESTAMPING_TX_HARDWARE = 0x1 - SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 - SOF_TIMESTAMPING_RX_HARDWARE = 0x4 - SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 - SOF_TIMESTAMPING_SOFTWARE = 0x10 - SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 - SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 - SOF_TIMESTAMPING_OPT_ID = 0x80 - SOF_TIMESTAMPING_TX_SCHED = 0x100 - SOF_TIMESTAMPING_TX_ACK = 0x200 - SOF_TIMESTAMPING_OPT_CMSG = 0x400 - SOF_TIMESTAMPING_OPT_TSONLY = 0x800 - SOF_TIMESTAMPING_OPT_STATS = 0x1000 - SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 - SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 - - SOF_TIMESTAMPING_LAST = 0x4000 - SOF_TIMESTAMPING_MASK = 0x7fff - - SCM_TSTAMP_SND = 0x0 - SCM_TSTAMP_SCHED = 0x1 - SCM_TSTAMP_ACK = 0x2 -) - -type SockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data uint32 -} - -type FanotifyEventMetadata struct { - Event_len uint32 - Vers uint8 - Reserved uint8 - Metadata_len uint16 - Mask uint64 - Fd int32 - Pid int32 -} - -type FanotifyResponse struct { - Fd int32 - Response uint32 -} - -const ( - CRYPTO_MSG_BASE = 0x10 - CRYPTO_MSG_NEWALG = 0x10 - CRYPTO_MSG_DELALG = 0x11 - CRYPTO_MSG_UPDATEALG = 0x12 - CRYPTO_MSG_GETALG = 0x13 - CRYPTO_MSG_DELRNG = 0x14 - CRYPTO_MSG_GETSTAT = 0x15 -) - -const ( - CRYPTOCFGA_UNSPEC = 0x0 - CRYPTOCFGA_PRIORITY_VAL = 0x1 - CRYPTOCFGA_REPORT_LARVAL = 0x2 - CRYPTOCFGA_REPORT_HASH = 0x3 - CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 - CRYPTOCFGA_REPORT_AEAD = 0x5 - CRYPTOCFGA_REPORT_COMPRESS = 0x6 - CRYPTOCFGA_REPORT_RNG = 0x7 - CRYPTOCFGA_REPORT_CIPHER = 0x8 - CRYPTOCFGA_REPORT_AKCIPHER = 0x9 - CRYPTOCFGA_REPORT_KPP = 0xa - CRYPTOCFGA_REPORT_ACOMP = 0xb - CRYPTOCFGA_STAT_LARVAL = 0xc - CRYPTOCFGA_STAT_HASH = 0xd - CRYPTOCFGA_STAT_BLKCIPHER = 0xe - CRYPTOCFGA_STAT_AEAD = 0xf - CRYPTOCFGA_STAT_COMPRESS = 0x10 - CRYPTOCFGA_STAT_RNG = 0x11 - CRYPTOCFGA_STAT_CIPHER = 0x12 - CRYPTOCFGA_STAT_AKCIPHER = 0x13 - CRYPTOCFGA_STAT_KPP = 0x14 - CRYPTOCFGA_STAT_ACOMP = 0x15 -) - type CryptoUserAlg struct { Name [64]int8 Driver_name [64]int8 @@ -2329,182 +570,6 @@ type CryptoReportAcomp struct { Type [64]int8 } -const ( - BPF_REG_0 = 0x0 - BPF_REG_1 = 0x1 - BPF_REG_2 = 0x2 - BPF_REG_3 = 0x3 - BPF_REG_4 = 0x4 - BPF_REG_5 = 0x5 - BPF_REG_6 = 0x6 - BPF_REG_7 = 0x7 - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 - BPF_MAP_DELETE_ELEM = 0x3 - BPF_MAP_GET_NEXT_KEY = 0x4 - BPF_PROG_LOAD = 0x5 - BPF_OBJ_PIN = 0x6 - BPF_OBJ_GET = 0x7 - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd - BPF_MAP_GET_FD_BY_ID = 0xe - BPF_OBJ_GET_INFO_BY_FD = 0xf - BPF_PROG_QUERY = 0x10 - BPF_RAW_TRACEPOINT_OPEN = 0x11 - BPF_BTF_LOAD = 0x12 - BPF_BTF_GET_FD_BY_ID = 0x13 - BPF_TASK_FD_QUERY = 0x14 - BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 - BPF_MAP_TYPE_UNSPEC = 0x0 - BPF_MAP_TYPE_HASH = 0x1 - BPF_MAP_TYPE_ARRAY = 0x2 - BPF_MAP_TYPE_PROG_ARRAY = 0x3 - BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 - BPF_MAP_TYPE_PERCPU_HASH = 0x5 - BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 - BPF_MAP_TYPE_STACK_TRACE = 0x7 - BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 - BPF_MAP_TYPE_LRU_HASH = 0x9 - BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa - BPF_MAP_TYPE_LPM_TRIE = 0xb - BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc - BPF_MAP_TYPE_HASH_OF_MAPS = 0xd - BPF_MAP_TYPE_DEVMAP = 0xe - BPF_MAP_TYPE_SOCKMAP = 0xf - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 - BPF_MAP_TYPE_QUEUE = 0x16 - BPF_MAP_TYPE_STACK = 0x17 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 - BPF_PROG_TYPE_SCHED_CLS = 0x3 - BPF_PROG_TYPE_SCHED_ACT = 0x4 - BPF_PROG_TYPE_TRACEPOINT = 0x5 - BPF_PROG_TYPE_XDP = 0x6 - BPF_PROG_TYPE_PERF_EVENT = 0x7 - BPF_PROG_TYPE_CGROUP_SKB = 0x8 - BPF_PROG_TYPE_CGROUP_SOCK = 0x9 - BPF_PROG_TYPE_LWT_IN = 0xa - BPF_PROG_TYPE_LWT_OUT = 0xb - BPF_PROG_TYPE_LWT_XMIT = 0xc - BPF_PROG_TYPE_SOCK_OPS = 0xd - BPF_PROG_TYPE_SK_SKB = 0xe - BPF_PROG_TYPE_CGROUP_DEVICE = 0xf - BPF_PROG_TYPE_SK_MSG = 0x10 - BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 - BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 - BPF_PROG_TYPE_LIRC_MODE2 = 0x14 - BPF_PROG_TYPE_SK_REUSEPORT = 0x15 - BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 - BPF_CGROUP_SOCK_OPS = 0x3 - BPF_SK_SKB_STREAM_PARSER = 0x4 - BPF_SK_SKB_STREAM_VERDICT = 0x5 - BPF_CGROUP_DEVICE = 0x6 - BPF_SK_MSG_VERDICT = 0x7 - BPF_CGROUP_INET4_BIND = 0x8 - BPF_CGROUP_INET6_BIND = 0x9 - BPF_CGROUP_INET4_CONNECT = 0xa - BPF_CGROUP_INET6_CONNECT = 0xb - BPF_CGROUP_INET4_POST_BIND = 0xc - BPF_CGROUP_INET6_POST_BIND = 0xd - BPF_CGROUP_UDP4_SENDMSG = 0xe - BPF_CGROUP_UDP6_SENDMSG = 0xf - BPF_LIRC_MODE2 = 0x10 - BPF_FLOW_DISSECTOR = 0x11 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 - BPF_STACK_BUILD_ID_IP = 0x2 - BPF_ADJ_ROOM_NET = 0x0 - BPF_HDR_START_MAC = 0x0 - BPF_HDR_START_NET = 0x1 - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_SOCK_OPS_VOID = 0x0 - BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 - BPF_SOCK_OPS_RWND_INIT = 0x2 - BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 - BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 - BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 - BPF_SOCK_OPS_NEEDS_ECN = 0x6 - BPF_SOCK_OPS_BASE_RTT = 0x7 - BPF_SOCK_OPS_RTO_CB = 0x8 - BPF_SOCK_OPS_RETRANS_CB = 0x9 - BPF_SOCK_OPS_STATE_CB = 0xa - BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb - BPF_TCP_ESTABLISHED = 0x1 - BPF_TCP_SYN_SENT = 0x2 - BPF_TCP_SYN_RECV = 0x3 - BPF_TCP_FIN_WAIT1 = 0x4 - BPF_TCP_FIN_WAIT2 = 0x5 - BPF_TCP_TIME_WAIT = 0x6 - BPF_TCP_CLOSE = 0x7 - BPF_TCP_CLOSE_WAIT = 0x8 - BPF_TCP_LAST_ACK = 0x9 - BPF_TCP_LISTEN = 0xa - BPF_TCP_CLOSING = 0xb - BPF_TCP_NEW_SYN_RECV = 0xc - BPF_TCP_MAX_STATES = 0xd - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 - BPF_FIB_LKUP_RET_PROHIBIT = 0x3 - BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 - BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 - BPF_FD_TYPE_KRETPROBE = 0x3 - BPF_FD_TYPE_UPROBE = 0x4 - BPF_FD_TYPE_URETPROBE = 0x5 -) - -type CapUserHeader struct { - Version uint32 - Pid int32 -} - -type CapUserData struct { - Effective uint32 - Permitted uint32 - Inheritable uint32 -} - -const ( - LINUX_CAPABILITY_VERSION_1 = 0x19980330 - LINUX_CAPABILITY_VERSION_2 = 0x20071026 - LINUX_CAPABILITY_VERSION_3 = 0x20080522 -) - -const ( - LO_FLAGS_READ_ONLY = 0x1 - LO_FLAGS_AUTOCLEAR = 0x4 - LO_FLAGS_PARTSCAN = 0x8 - LO_FLAGS_DIRECT_IO = 0x10 -) - type LoopInfo struct { Number int32 Device uint32 @@ -2520,38 +585,6 @@ type LoopInfo struct { Reserved [4]int8 _ [4]byte } -type LoopInfo64 struct { - Device uint64 - Inode uint64 - Rdevice uint64 - Offset uint64 - Sizelimit uint64 - Number uint32 - Encrypt_type uint32 - Encrypt_key_size uint32 - Flags uint32 - File_name [64]uint8 - Crypt_name [64]uint8 - Encrypt_key [32]uint8 - Init [2]uint64 -} - -type TIPCSocketAddr struct { - Ref uint32 - Node uint32 -} - -type TIPCServiceRange struct { - Type uint32 - Lower uint32 - Upper uint32 -} - -type TIPCServiceName struct { - Type uint32 - Instance uint32 - Domain uint32 -} type TIPCSubscr struct { Seq TIPCServiceRange @@ -2560,21 +593,6 @@ type TIPCSubscr struct { Handle [8]int8 } -type TIPCEvent struct { - Event uint32 - Lower uint32 - Upper uint32 - Port TIPCSocketAddr - S TIPCSubscr -} - -type TIPCGroupReq struct { - Type uint32 - Instance uint32 - Scope uint32 - Flags uint32 -} - type TIPCSIOCLNReq struct { Peer uint32 Id uint32 @@ -2585,22 +603,3 @@ type TIPCSIOCNodeIDReq struct { Peer uint32 Id [16]int8 } - -const ( - TIPC_CLUSTER_SCOPE = 0x2 - TIPC_NODE_SCOPE = 0x3 -) - -const ( - SYSLOG_ACTION_CLOSE = 0 - SYSLOG_ACTION_OPEN = 1 - SYSLOG_ACTION_READ = 2 - SYSLOG_ACTION_READ_ALL = 3 - SYSLOG_ACTION_READ_CLEAR = 4 - SYSLOG_ACTION_CLEAR = 5 - SYSLOG_ACTION_CONSOLE_OFF = 6 - SYSLOG_ACTION_CONSOLE_ON = 7 - SYSLOG_ACTION_CONSOLE_LEVEL = 8 - SYSLOG_ACTION_SIZE_UNREAD = 9 - SYSLOG_ACTION_SIZE_BUFFER = 10 -) diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index 86736ab..a89100c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -78,6 +78,33 @@ type Stat_t struct { type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + type Flock_t struct { Start int64 Len int64 @@ -103,6 +130,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 3427811..289184e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -82,6 +82,34 @@ type Stat_t struct { type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + type Flock_t struct { Start int64 Len int64 @@ -107,6 +135,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 399f37a..428c450 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -83,6 +83,33 @@ type Stat_t struct { type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + type Flock_t struct { Start int64 Len int64 @@ -108,6 +135,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index 32f0c15..6f1f284 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -82,6 +82,34 @@ type Stat_t struct { type Statfs_t [0]byte +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + type Flock_t struct { Start int64 Len int64 @@ -107,6 +135,11 @@ const ( PathMax = 0x400 ) +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + const ( FADV_NORMAL = 0x0 FADV_RANDOM = 0x1 diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go index 8531a19..23ed9fe 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -211,6 +211,12 @@ type Cmsghdr struct { Type int32 } +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + type Inet6Pktinfo struct { Addr [16]byte /* in6_addr */ Ifindex uint32 @@ -236,6 +242,7 @@ const ( SizeofIPv6Mreq = 0x14 SizeofMsghdr = 0x30 SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc SizeofInet6Pktinfo = 0x14 SizeofIPv6MTUInfo = 0x24 SizeofICMPv6Filter = 0x20 diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS new file mode 100644 index 0000000..15167cd --- /dev/null +++ b/vendor/golang.org/x/text/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS new file mode 100644 index 0000000..1c4577e --- /dev/null +++ b/vendor/golang.org/x/text/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/vendor/golang.org/x/text/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/vendor/golang.org/x/text/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/text/encoding/encoding.go b/vendor/golang.org/x/text/encoding/encoding.go new file mode 100644 index 0000000..a0bd7cd --- /dev/null +++ b/vendor/golang.org/x/text/encoding/encoding.go @@ -0,0 +1,335 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package encoding defines an interface for character encodings, such as Shift +// JIS and Windows 1252, that can convert to and from UTF-8. +// +// Encoding implementations are provided in other packages, such as +// golang.org/x/text/encoding/charmap and +// golang.org/x/text/encoding/japanese. +package encoding // import "golang.org/x/text/encoding" + +import ( + "errors" + "io" + "strconv" + "unicode/utf8" + + "golang.org/x/text/encoding/internal/identifier" + "golang.org/x/text/transform" +) + +// TODO: +// - There seems to be some inconsistency in when decoders return errors +// and when not. Also documentation seems to suggest they shouldn't return +// errors at all (except for UTF-16). +// - Encoders seem to rely on or at least benefit from the input being in NFC +// normal form. Perhaps add an example how users could prepare their output. + +// Encoding is a character set encoding that can be transformed to and from +// UTF-8. +type Encoding interface { + // NewDecoder returns a Decoder. + NewDecoder() *Decoder + + // NewEncoder returns an Encoder. + NewEncoder() *Encoder +} + +// A Decoder converts bytes to UTF-8. It implements transform.Transformer. +// +// Transforming source bytes that are not of that encoding will not result in an +// error per se. Each byte that cannot be transcoded will be represented in the +// output by the UTF-8 encoding of '\uFFFD', the replacement rune. +type Decoder struct { + transform.Transformer + + // This forces external creators of Decoders to use names in struct + // initializers, allowing for future extendibility without having to break + // code. + _ struct{} +} + +// Bytes converts the given encoded bytes to UTF-8. It returns the converted +// bytes or nil, err if any error occurred. +func (d *Decoder) Bytes(b []byte) ([]byte, error) { + b, _, err := transform.Bytes(d, b) + if err != nil { + return nil, err + } + return b, nil +} + +// String converts the given encoded string to UTF-8. It returns the converted +// string or "", err if any error occurred. +func (d *Decoder) String(s string) (string, error) { + s, _, err := transform.String(d, s) + if err != nil { + return "", err + } + return s, nil +} + +// Reader wraps another Reader to decode its bytes. +// +// The Decoder may not be used for any other operation as long as the returned +// Reader is in use. +func (d *Decoder) Reader(r io.Reader) io.Reader { + return transform.NewReader(r, d) +} + +// An Encoder converts bytes from UTF-8. It implements transform.Transformer. +// +// Each rune that cannot be transcoded will result in an error. In this case, +// the transform will consume all source byte up to, not including the offending +// rune. Transforming source bytes that are not valid UTF-8 will be replaced by +// `\uFFFD`. To return early with an error instead, use transform.Chain to +// preprocess the data with a UTF8Validator. +type Encoder struct { + transform.Transformer + + // This forces external creators of Encoders to use names in struct + // initializers, allowing for future extendibility without having to break + // code. + _ struct{} +} + +// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if +// any error occurred. +func (e *Encoder) Bytes(b []byte) ([]byte, error) { + b, _, err := transform.Bytes(e, b) + if err != nil { + return nil, err + } + return b, nil +} + +// String converts a string from UTF-8. It returns the converted string or +// "", err if any error occurred. +func (e *Encoder) String(s string) (string, error) { + s, _, err := transform.String(e, s) + if err != nil { + return "", err + } + return s, nil +} + +// Writer wraps another Writer to encode its UTF-8 output. +// +// The Encoder may not be used for any other operation as long as the returned +// Writer is in use. +func (e *Encoder) Writer(w io.Writer) io.Writer { + return transform.NewWriter(w, e) +} + +// ASCIISub is the ASCII substitute character, as recommended by +// https://unicode.org/reports/tr36/#Text_Comparison +const ASCIISub = '\x1a' + +// Nop is the nop encoding. Its transformed bytes are the same as the source +// bytes; it does not replace invalid UTF-8 sequences. +var Nop Encoding = nop{} + +type nop struct{} + +func (nop) NewDecoder() *Decoder { + return &Decoder{Transformer: transform.Nop} +} +func (nop) NewEncoder() *Encoder { + return &Encoder{Transformer: transform.Nop} +} + +// Replacement is the replacement encoding. Decoding from the replacement +// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to +// the replacement encoding yields the same as the source bytes except that +// invalid UTF-8 is converted to '\uFFFD'. +// +// It is defined at http://encoding.spec.whatwg.org/#replacement +var Replacement Encoding = replacement{} + +type replacement struct{} + +func (replacement) NewDecoder() *Decoder { + return &Decoder{Transformer: replacementDecoder{}} +} + +func (replacement) NewEncoder() *Encoder { + return &Encoder{Transformer: replacementEncoder{}} +} + +func (replacement) ID() (mib identifier.MIB, other string) { + return identifier.Replacement, "" +} + +type replacementDecoder struct{ transform.NopResetter } + +func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + if len(dst) < 3 { + return 0, 0, transform.ErrShortDst + } + if atEOF { + const fffd = "\ufffd" + dst[0] = fffd[0] + dst[1] = fffd[1] + dst[2] = fffd[2] + nDst = 3 + } + return nDst, len(src), nil +} + +type replacementEncoder struct{ transform.NopResetter } + +func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + r, size := rune(0), 0 + + for ; nSrc < len(src); nSrc += size { + r = rune(src[nSrc]) + + // Decode a 1-byte rune. + if r < utf8.RuneSelf { + size = 1 + + } else { + // Decode a multi-byte rune. + r, size = utf8.DecodeRune(src[nSrc:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + break + } + r = '\ufffd' + } + } + + if nDst+utf8.RuneLen(r) > len(dst) { + err = transform.ErrShortDst + break + } + nDst += utf8.EncodeRune(dst[nDst:], r) + } + return nDst, nSrc, err +} + +// HTMLEscapeUnsupported wraps encoders to replace source runes outside the +// repertoire of the destination encoding with HTML escape sequences. +// +// This wrapper exists to comply to URL and HTML forms requiring a +// non-terminating legacy encoder. The produced sequences may lead to data +// loss as they are indistinguishable from legitimate input. To avoid this +// issue, use UTF-8 encodings whenever possible. +func HTMLEscapeUnsupported(e *Encoder) *Encoder { + return &Encoder{Transformer: &errorHandler{e, errorToHTML}} +} + +// ReplaceUnsupported wraps encoders to replace source runes outside the +// repertoire of the destination encoding with an encoding-specific +// replacement. +// +// This wrapper is only provided for backwards compatibility and legacy +// handling. Its use is strongly discouraged. Use UTF-8 whenever possible. +func ReplaceUnsupported(e *Encoder) *Encoder { + return &Encoder{Transformer: &errorHandler{e, errorToReplacement}} +} + +type errorHandler struct { + *Encoder + handler func(dst []byte, r rune, err repertoireError) (n int, ok bool) +} + +// TODO: consider making this error public in some form. +type repertoireError interface { + Replacement() byte +} + +func (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + nDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF) + for err != nil { + rerr, ok := err.(repertoireError) + if !ok { + return nDst, nSrc, err + } + r, sz := utf8.DecodeRune(src[nSrc:]) + n, ok := h.handler(dst[nDst:], r, rerr) + if !ok { + return nDst, nSrc, transform.ErrShortDst + } + err = nil + nDst += n + if nSrc += sz; nSrc < len(src) { + var dn, sn int + dn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF) + nDst += dn + nSrc += sn + } + } + return nDst, nSrc, err +} + +func errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) { + buf := [8]byte{} + b := strconv.AppendUint(buf[:0], uint64(r), 10) + if n = len(b) + len("&#;"); n >= len(dst) { + return 0, false + } + dst[0] = '&' + dst[1] = '#' + dst[copy(dst[2:], b)+2] = ';' + return n, true +} + +func errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) { + if len(dst) == 0 { + return 0, false + } + dst[0] = err.Replacement() + return 1, true +} + +// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8. +var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8") + +// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first +// input byte that is not valid UTF-8. +var UTF8Validator transform.Transformer = utf8Validator{} + +type utf8Validator struct{ transform.NopResetter } + +func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := len(src) + if n > len(dst) { + n = len(dst) + } + for i := 0; i < n; { + if c := src[i]; c < utf8.RuneSelf { + dst[i] = c + i++ + continue + } + _, size := utf8.DecodeRune(src[i:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + err = ErrInvalidUTF8 + if !atEOF && !utf8.FullRune(src[i:]) { + err = transform.ErrShortSrc + } + return i, i, err + } + if i+size > len(dst) { + return i, i, transform.ErrShortDst + } + for ; size > 0; size-- { + dst[i] = src[i] + i++ + } + } + if len(src) > len(dst) { + err = transform.ErrShortDst + } + return n, n, err +} diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go new file mode 100644 index 0000000..5c9b85c --- /dev/null +++ b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go @@ -0,0 +1,81 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go + +// Package identifier defines the contract between implementations of Encoding +// and Index by defining identifiers that uniquely identify standardized coded +// character sets (CCS) and character encoding schemes (CES), which we will +// together refer to as encodings, for which Encoding implementations provide +// converters to and from UTF-8. This package is typically only of concern to +// implementers of Indexes and Encodings. +// +// One part of the identifier is the MIB code, which is defined by IANA and +// uniquely identifies a CCS or CES. Each code is associated with data that +// references authorities, official documentation as well as aliases and MIME +// names. +// +// Not all CESs are covered by the IANA registry. The "other" string that is +// returned by ID can be used to identify other character sets or versions of +// existing ones. +// +// It is recommended that each package that provides a set of Encodings provide +// the All and Common variables to reference all supported encodings and +// commonly used subset. This allows Index implementations to include all +// available encodings without explicitly referencing or knowing about them. +package identifier + +// Note: this package is internal, but could be made public if there is a need +// for writing third-party Indexes and Encodings. + +// References: +// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt +// - http://www.iana.org/assignments/character-sets/character-sets.xhtml +// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib +// - http://www.ietf.org/rfc/rfc2978.txt +// - https://www.unicode.org/reports/tr22/ +// - http://www.w3.org/TR/encoding/ +// - https://encoding.spec.whatwg.org/ +// - https://encoding.spec.whatwg.org/encodings.json +// - https://tools.ietf.org/html/rfc6657#section-5 + +// Interface can be implemented by Encodings to define the CCS or CES for which +// it implements conversions. +type Interface interface { + // ID returns an encoding identifier. Exactly one of the mib and other + // values should be non-zero. + // + // In the usual case it is only necessary to indicate the MIB code. The + // other string can be used to specify encodings for which there is no MIB, + // such as "x-mac-dingbat". + // + // The other string may only contain the characters a-z, A-Z, 0-9, - and _. + ID() (mib MIB, other string) + + // NOTE: the restrictions on the encoding are to allow extending the syntax + // with additional information such as versions, vendors and other variants. +} + +// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds +// some identifiers for some encodings that are not covered by the IANA +// standard. +// +// See http://www.iana.org/assignments/ianacharset-mib. +type MIB uint16 + +// These additional MIB types are not defined in IANA. They are added because +// they are common and defined within the text repo. +const ( + // Unofficial marks the start of encodings not registered by IANA. + Unofficial MIB = 10000 + iota + + // Replacement is the WhatWG replacement encoding. + Replacement + + // XUserDefined is the code for x-user-defined. + XUserDefined + + // MacintoshCyrillic is the code for x-mac-cyrillic. + MacintoshCyrillic +) diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go new file mode 100644 index 0000000..fc7df1b --- /dev/null +++ b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go @@ -0,0 +1,1619 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package identifier + +const ( + // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII). + // + // ANSI X3.4-1986 + // Reference: RFC2046 + ASCII MIB = 3 + + // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin1 MIB = 4 + + // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin2 MIB = 5 + + // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin3 MIB = 6 + + // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin4 MIB = 7 + + // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatinCyrillic MIB = 8 + + // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatinArabic MIB = 9 + + // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1947 + // Reference: RFC1345 + ISOLatinGreek MIB = 10 + + // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatinHebrew MIB = 11 + + // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin5 MIB = 12 + + // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOLatin6 MIB = 13 + + // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add. + // + // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983 + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISOTextComm MIB = 14 + + // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201. + // + // JIS X 0201-1976. One byte only, this is equivalent to + // JIS/Roman (similar to ASCII) plus eight-bit half-width + // Katakana + // Reference: RFC1345 + HalfWidthKatakana MIB = 15 + + // JISEncoding is the MIB identifier with IANA name JIS_Encoding. + // + // JIS X 0202-1991. Uses ISO 2022 escape sequences to + // shift code sets as documented in JIS X 0202-1991. + JISEncoding MIB = 16 + + // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS). + // + // This charset is an extension of csHalfWidthKatakana by + // adding graphic characters in JIS X 0208. The CCS's are + // JIS X0201:1997 and JIS X0208:1997. The + // complete definition is shown in Appendix 1 of JIS + // X0208:1997. + // This charset can be used for the top-level media type "text". + ShiftJIS MIB = 17 + + // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP). + // + // Standardized by OSF, UNIX International, and UNIX Systems + // Laboratories Pacific. Uses ISO 2022 rules to select + // code set 0: US-ASCII (a single 7-bit byte set) + // code set 1: JIS X0208-1990 (a double 8-bit byte set) + // restricted to A0-FF in both bytes + // code set 2: Half Width Katakana (a single 7-bit byte set) + // requiring SS2 as the character prefix + // code set 3: JIS X0212-1990 (a double 7-bit byte set) + // restricted to A0-FF in both bytes + // requiring SS3 as the character prefix + EUCPkdFmtJapanese MIB = 18 + + // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese. + // + // Used in Japan. Each character is 2 octets. + // code set 0: US-ASCII (a single 7-bit byte set) + // 1st byte = 00 + // 2nd byte = 20-7E + // code set 1: JIS X0208-1990 (a double 7-bit byte set) + // restricted to A0-FF in both bytes + // code set 2: Half Width Katakana (a single 7-bit byte set) + // 1st byte = 00 + // 2nd byte = A0-FF + // code set 3: JIS X0212-1990 (a double 7-bit byte set) + // restricted to A0-FF in + // the first byte + // and 21-7E in the second byte + EUCFixWidJapanese MIB = 19 + + // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO4UnitedKingdom MIB = 20 + + // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO11SwedishForNames MIB = 21 + + // ISO15Italian is the MIB identifier with IANA name IT. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO15Italian MIB = 22 + + // ISO17Spanish is the MIB identifier with IANA name ES. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO17Spanish MIB = 23 + + // ISO21German is the MIB identifier with IANA name DIN_66003. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO21German MIB = 24 + + // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO60Norwegian1 MIB = 25 + + // ISO69French is the MIB identifier with IANA name NF_Z_62-010. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO69French MIB = 26 + + // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1. + // + // Universal Transfer Format (1), this is the multibyte + // encoding, that subsets ASCII-7. It does not have byte + // ordering issues. + ISO10646UTF1 MIB = 27 + + // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO646basic1983 MIB = 28 + + // INVARIANT is the MIB identifier with IANA name INVARIANT. + // + // Reference: RFC1345 + INVARIANT MIB = 29 + + // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO2IntlRefVersion MIB = 30 + + // NATSSEFI is the MIB identifier with IANA name NATS-SEFI. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + NATSSEFI MIB = 31 + + // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + NATSSEFIADD MIB = 32 + + // NATSDANO is the MIB identifier with IANA name NATS-DANO. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + NATSDANO MIB = 33 + + // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + NATSDANOADD MIB = 34 + + // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO10Swedish MIB = 35 + + // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + KSC56011987 MIB = 36 + + // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR). + // + // rfc1557 (see also KS_C_5601-1987) + // Reference: RFC1557 + ISO2022KR MIB = 37 + + // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR). + // + // rfc1557 (see also KS_C_5861-1992) + // Reference: RFC1557 + EUCKR MIB = 38 + + // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP). + // + // rfc1468 (see also rfc2237 ) + // Reference: RFC1468 + ISO2022JP MIB = 39 + + // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2). + // + // rfc1554 + // Reference: RFC1554 + ISO2022JP2 MIB = 40 + + // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO13JISC6220jp MIB = 41 + + // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO14JISC6220ro MIB = 42 + + // ISO16Portuguese is the MIB identifier with IANA name PT. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO16Portuguese MIB = 43 + + // ISO18Greek7Old is the MIB identifier with IANA name greek7-old. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO18Greek7Old MIB = 44 + + // ISO19LatinGreek is the MIB identifier with IANA name latin-greek. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO19LatinGreek MIB = 45 + + // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973). + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO25French MIB = 46 + + // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO27LatinGreek1 MIB = 47 + + // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO5427Cyrillic MIB = 48 + + // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO42JISC62261978 MIB = 49 + + // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO47BSViewdata MIB = 50 + + // ISO49INIS is the MIB identifier with IANA name INIS. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO49INIS MIB = 51 + + // ISO50INIS8 is the MIB identifier with IANA name INIS-8. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO50INIS8 MIB = 52 + + // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO51INISCyrillic MIB = 53 + + // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO54271981 MIB = 54 + + // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO5428Greek MIB = 55 + + // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO57GB1988 MIB = 56 + + // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO58GB231280 MIB = 57 + + // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO61Norwegian2 MIB = 58 + + // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO70VideotexSupp1 MIB = 59 + + // ISO84Portuguese2 is the MIB identifier with IANA name PT2. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO84Portuguese2 MIB = 60 + + // ISO85Spanish2 is the MIB identifier with IANA name ES2. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO85Spanish2 MIB = 61 + + // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO86Hungarian MIB = 62 + + // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO87JISX0208 MIB = 63 + + // ISO88Greek7 is the MIB identifier with IANA name greek7. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO88Greek7 MIB = 64 + + // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO89ASMO449 MIB = 65 + + // ISO90 is the MIB identifier with IANA name iso-ir-90. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO90 MIB = 66 + + // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO91JISC62291984a MIB = 67 + + // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO92JISC62991984b MIB = 68 + + // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO93JIS62291984badd MIB = 69 + + // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO94JIS62291984hand MIB = 70 + + // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO95JIS62291984handadd MIB = 71 + + // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO96JISC62291984kana MIB = 72 + + // ISO2033 is the MIB identifier with IANA name ISO_2033-1983. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO2033 MIB = 73 + + // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO99NAPLPS MIB = 74 + + // ISO102T617bit is the MIB identifier with IANA name T.61-7bit. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO102T617bit MIB = 75 + + // ISO103T618bit is the MIB identifier with IANA name T.61-8bit. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO103T618bit MIB = 76 + + // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. + // + // ISO registry + ISO111ECMACyrillic MIB = 77 + + // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO121Canadian1 MIB = 78 + + // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO122Canadian2 MIB = 79 + + // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO123CSAZ24341985gr MIB = 80 + + // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E). + // + // rfc1556 + // Reference: RFC1556 + ISO88596E MIB = 81 + + // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I). + // + // rfc1556 + // Reference: RFC1556 + ISO88596I MIB = 82 + + // ISO128T101G2 is the MIB identifier with IANA name T.101-G2. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO128T101G2 MIB = 83 + + // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E). + // + // rfc1556 + // Reference: RFC1556 + ISO88598E MIB = 84 + + // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I). + // + // rfc1556 + // Reference: RFC1556 + ISO88598I MIB = 85 + + // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO139CSN369103 MIB = 86 + + // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO141JUSIB1002 MIB = 87 + + // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO143IECP271 MIB = 88 + + // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO146Serbian MIB = 89 + + // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO147Macedonian MIB = 90 + + // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO150GreekCCITT MIB = 91 + + // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO151Cuba MIB = 92 + + // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO6937Add MIB = 93 + + // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO153GOST1976874 MIB = 94 + + // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO8859Supp MIB = 95 + + // ISO10367Box is the MIB identifier with IANA name ISO_10367-box. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO10367Box MIB = 96 + + // ISO158Lap is the MIB identifier with IANA name latin-lap. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO158Lap MIB = 97 + + // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990. + // + // ISO-IR: International Register of Escape Sequences + // Note: The current registration authority is IPSJ/ITSCJ, Japan. + // Reference: RFC1345 + ISO159JISX02121990 MIB = 98 + + // ISO646Danish is the MIB identifier with IANA name DS_2089. + // + // Danish Standard, DS 2089, February 1974 + // Reference: RFC1345 + ISO646Danish MIB = 99 + + // USDK is the MIB identifier with IANA name us-dk. + // + // Reference: RFC1345 + USDK MIB = 100 + + // DKUS is the MIB identifier with IANA name dk-us. + // + // Reference: RFC1345 + DKUS MIB = 101 + + // KSC5636 is the MIB identifier with IANA name KSC5636. + // + // Reference: RFC1345 + KSC5636 MIB = 102 + + // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7. + // + // rfc1642 + // Reference: RFC1642 + Unicode11UTF7 MIB = 103 + + // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN. + // + // rfc1922 + // Reference: RFC1922 + ISO2022CN MIB = 104 + + // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT. + // + // rfc1922 + // Reference: RFC1922 + ISO2022CNEXT MIB = 105 + + // UTF8 is the MIB identifier with IANA name UTF-8. + // + // rfc3629 + // Reference: RFC3629 + UTF8 MIB = 106 + + // ISO885913 is the MIB identifier with IANA name ISO-8859-13. + // + // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-13 https://www.iana.org/assignments/charset-reg/ISO-8859-13 + ISO885913 MIB = 109 + + // ISO885914 is the MIB identifier with IANA name ISO-8859-14. + // + // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-14 + ISO885914 MIB = 110 + + // ISO885915 is the MIB identifier with IANA name ISO-8859-15. + // + // ISO + // Please see: https://www.iana.org/assignments/charset-reg/ISO-8859-15 + ISO885915 MIB = 111 + + // ISO885916 is the MIB identifier with IANA name ISO-8859-16. + // + // ISO + ISO885916 MIB = 112 + + // GBK is the MIB identifier with IANA name GBK. + // + // Chinese IT Standardization Technical Committee + // Please see: https://www.iana.org/assignments/charset-reg/GBK + GBK MIB = 113 + + // GB18030 is the MIB identifier with IANA name GB18030. + // + // Chinese IT Standardization Technical Committee + // Please see: https://www.iana.org/assignments/charset-reg/GB18030 + GB18030 MIB = 114 + + // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. + // + // Fujitsu-Siemens standard mainframe EBCDIC encoding + // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 + OSDEBCDICDF0415 MIB = 115 + + // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. + // + // Fujitsu-Siemens standard mainframe EBCDIC encoding + // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV + OSDEBCDICDF03IRV MIB = 116 + + // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. + // + // Fujitsu-Siemens standard mainframe EBCDIC encoding + // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 + OSDEBCDICDF041 MIB = 117 + + // ISO115481 is the MIB identifier with IANA name ISO-11548-1. + // + // See https://www.iana.org/assignments/charset-reg/ISO-11548-1 + ISO115481 MIB = 118 + + // KZ1048 is the MIB identifier with IANA name KZ-1048. + // + // See https://www.iana.org/assignments/charset-reg/KZ-1048 + KZ1048 MIB = 119 + + // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. + // + // the 2-octet Basic Multilingual Plane, aka Unicode + // this needs to specify network byte order: the standard + // does not specify (it is a 16-bit integer space) + Unicode MIB = 1000 + + // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4. + // + // the full code space. (same comment about byte order, + // these are 31-bit numbers. + UCS4 MIB = 1001 + + // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic. + // + // ASCII subset of Unicode. Basic Latin = collection 1 + // See ISO 10646, Appendix A + UnicodeASCII MIB = 1002 + + // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1. + // + // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 + // Supplement = collections 1 and 2. See ISO 10646, + // Appendix A. See rfc1815 . + UnicodeLatin1 MIB = 1003 + + // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1. + // + // ISO 10646 Japanese, see rfc1815 . + UnicodeJapanese MIB = 1004 + + // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261. + // + // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261 + UnicodeIBM1261 MIB = 1005 + + // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268. + // + // IBM Latin-4 Extended Presentation Set, GCSGID: 1268 + UnicodeIBM1268 MIB = 1006 + + // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276. + // + // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276 + UnicodeIBM1276 MIB = 1007 + + // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264. + // + // IBM Arabic Presentation Set, GCSGID: 1264 + UnicodeIBM1264 MIB = 1008 + + // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265. + // + // IBM Hebrew Presentation Set, GCSGID: 1265 + UnicodeIBM1265 MIB = 1009 + + // Unicode11 is the MIB identifier with IANA name UNICODE-1-1. + // + // rfc1641 + // Reference: RFC1641 + Unicode11 MIB = 1010 + + // SCSU is the MIB identifier with IANA name SCSU. + // + // SCSU See https://www.iana.org/assignments/charset-reg/SCSU + SCSU MIB = 1011 + + // UTF7 is the MIB identifier with IANA name UTF-7. + // + // rfc2152 + // Reference: RFC2152 + UTF7 MIB = 1012 + + // UTF16BE is the MIB identifier with IANA name UTF-16BE. + // + // rfc2781 + // Reference: RFC2781 + UTF16BE MIB = 1013 + + // UTF16LE is the MIB identifier with IANA name UTF-16LE. + // + // rfc2781 + // Reference: RFC2781 + UTF16LE MIB = 1014 + + // UTF16 is the MIB identifier with IANA name UTF-16. + // + // rfc2781 + // Reference: RFC2781 + UTF16 MIB = 1015 + + // CESU8 is the MIB identifier with IANA name CESU-8. + // + // https://www.unicode.org/reports/tr26 + CESU8 MIB = 1016 + + // UTF32 is the MIB identifier with IANA name UTF-32. + // + // https://www.unicode.org/reports/tr19/ + UTF32 MIB = 1017 + + // UTF32BE is the MIB identifier with IANA name UTF-32BE. + // + // https://www.unicode.org/reports/tr19/ + UTF32BE MIB = 1018 + + // UTF32LE is the MIB identifier with IANA name UTF-32LE. + // + // https://www.unicode.org/reports/tr19/ + UTF32LE MIB = 1019 + + // BOCU1 is the MIB identifier with IANA name BOCU-1. + // + // https://www.unicode.org/notes/tn6/ + BOCU1 MIB = 1020 + + // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. + // + // Extended ISO 8859-1 Latin-1 for Windows 3.0. + // PCL Symbol Set id: 9U + Windows30Latin1 MIB = 2000 + + // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1. + // + // Extended ISO 8859-1 Latin-1 for Windows 3.1. + // PCL Symbol Set id: 19U + Windows31Latin1 MIB = 2001 + + // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2. + // + // Extended ISO 8859-2. Latin-2 for Windows 3.1. + // PCL Symbol Set id: 9E + Windows31Latin2 MIB = 2002 + + // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5. + // + // Extended ISO 8859-9. Latin-5 for Windows 3.1 + // PCL Symbol Set id: 5T + Windows31Latin5 MIB = 2003 + + // HPRoman8 is the MIB identifier with IANA name hp-roman8. + // + // LaserJet IIP Printer User's Manual, + // HP part no 33471-90901, Hewlet-Packard, June 1989. + // Reference: RFC1345 + HPRoman8 MIB = 2004 + + // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding. + // + // PostScript Language Reference Manual + // PCL Symbol Set id: 10J + AdobeStandardEncoding MIB = 2005 + + // VenturaUS is the MIB identifier with IANA name Ventura-US. + // + // Ventura US. ASCII plus characters typically used in + // publishing, like pilcrow, copyright, registered, trade mark, + // section, dagger, and double dagger in the range A0 (hex) + // to FF (hex). + // PCL Symbol Set id: 14J + VenturaUS MIB = 2006 + + // VenturaInternational is the MIB identifier with IANA name Ventura-International. + // + // Ventura International. ASCII plus coded characters similar + // to Roman8. + // PCL Symbol Set id: 13J + VenturaInternational MIB = 2007 + + // DECMCS is the MIB identifier with IANA name DEC-MCS. + // + // VAX/VMS User's Manual, + // Order Number: AI-Y517A-TE, April 1986. + // Reference: RFC1345 + DECMCS MIB = 2008 + + // PC850Multilingual is the MIB identifier with IANA name IBM850. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + PC850Multilingual MIB = 2009 + + // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian. + // + // PC Danish Norwegian + // 8-bit PC set for Danish Norwegian + // PCL Symbol Set id: 11U + PC8DanishNorwegian MIB = 2012 + + // PC862LatinHebrew is the MIB identifier with IANA name IBM862. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + PC862LatinHebrew MIB = 2013 + + // PC8Turkish is the MIB identifier with IANA name PC8-Turkish. + // + // PC Latin Turkish. PCL Symbol Set id: 9T + PC8Turkish MIB = 2014 + + // IBMSymbols is the MIB identifier with IANA name IBM-Symbols. + // + // Presentation Set, CPGID: 259 + IBMSymbols MIB = 2015 + + // IBMThai is the MIB identifier with IANA name IBM-Thai. + // + // Presentation Set, CPGID: 838 + IBMThai MIB = 2016 + + // HPLegal is the MIB identifier with IANA name HP-Legal. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 1U + HPLegal MIB = 2017 + + // HPPiFont is the MIB identifier with IANA name HP-Pi-font. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 15U + HPPiFont MIB = 2018 + + // HPMath8 is the MIB identifier with IANA name HP-Math8. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 8M + HPMath8 MIB = 2019 + + // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding. + // + // PostScript Language Reference Manual + // PCL Symbol Set id: 5M + HPPSMath MIB = 2020 + + // HPDesktop is the MIB identifier with IANA name HP-DeskTop. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 7J + HPDesktop MIB = 2021 + + // VenturaMath is the MIB identifier with IANA name Ventura-Math. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 6M + VenturaMath MIB = 2022 + + // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing. + // + // PCL 5 Comparison Guide, Hewlett-Packard, + // HP part number 5961-0510, October 1992 + // PCL Symbol Set id: 6J + MicrosoftPublishing MIB = 2023 + + // Windows31J is the MIB identifier with IANA name Windows-31J. + // + // Windows Japanese. A further extension of Shift_JIS + // to include NEC special characters (Row 13), NEC + // selection of IBM extensions (Rows 89 to 92), and IBM + // extensions (Rows 115 to 119). The CCS's are + // JIS X0201:1997, JIS X0208:1997, and these extensions. + // This charset can be used for the top-level media type "text", + // but it is of limited or specialized use (see rfc2278 ). + // PCL Symbol Set id: 19K + Windows31J MIB = 2024 + + // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312). + // + // Chinese for People's Republic of China (PRC) mixed one byte, + // two byte set: + // 20-7E = one byte ASCII + // A1-FE = two byte PRC Kanji + // See GB 2312-80 + // PCL Symbol Set Id: 18C + GB2312 MIB = 2025 + + // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5). + // + // Chinese for Taiwan Multi-byte set. + // PCL Symbol Set Id: 18T + Big5 MIB = 2026 + + // Macintosh is the MIB identifier with IANA name macintosh. + // + // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991 + // Reference: RFC1345 + Macintosh MIB = 2027 + + // IBM037 is the MIB identifier with IANA name IBM037. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM037 MIB = 2028 + + // IBM038 is the MIB identifier with IANA name IBM038. + // + // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 + // Reference: RFC1345 + IBM038 MIB = 2029 + + // IBM273 is the MIB identifier with IANA name IBM273. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM273 MIB = 2030 + + // IBM274 is the MIB identifier with IANA name IBM274. + // + // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 + // Reference: RFC1345 + IBM274 MIB = 2031 + + // IBM275 is the MIB identifier with IANA name IBM275. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM275 MIB = 2032 + + // IBM277 is the MIB identifier with IANA name IBM277. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM277 MIB = 2033 + + // IBM278 is the MIB identifier with IANA name IBM278. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM278 MIB = 2034 + + // IBM280 is the MIB identifier with IANA name IBM280. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM280 MIB = 2035 + + // IBM281 is the MIB identifier with IANA name IBM281. + // + // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 + // Reference: RFC1345 + IBM281 MIB = 2036 + + // IBM284 is the MIB identifier with IANA name IBM284. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM284 MIB = 2037 + + // IBM285 is the MIB identifier with IANA name IBM285. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM285 MIB = 2038 + + // IBM290 is the MIB identifier with IANA name IBM290. + // + // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 + // Reference: RFC1345 + IBM290 MIB = 2039 + + // IBM297 is the MIB identifier with IANA name IBM297. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM297 MIB = 2040 + + // IBM420 is the MIB identifier with IANA name IBM420. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990, + // IBM NLS RM p 11-11 + // Reference: RFC1345 + IBM420 MIB = 2041 + + // IBM423 is the MIB identifier with IANA name IBM423. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM423 MIB = 2042 + + // IBM424 is the MIB identifier with IANA name IBM424. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM424 MIB = 2043 + + // PC8CodePage437 is the MIB identifier with IANA name IBM437. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + PC8CodePage437 MIB = 2011 + + // IBM500 is the MIB identifier with IANA name IBM500. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM500 MIB = 2044 + + // IBM851 is the MIB identifier with IANA name IBM851. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM851 MIB = 2045 + + // PCp852 is the MIB identifier with IANA name IBM852. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + PCp852 MIB = 2010 + + // IBM855 is the MIB identifier with IANA name IBM855. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM855 MIB = 2046 + + // IBM857 is the MIB identifier with IANA name IBM857. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM857 MIB = 2047 + + // IBM860 is the MIB identifier with IANA name IBM860. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM860 MIB = 2048 + + // IBM861 is the MIB identifier with IANA name IBM861. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM861 MIB = 2049 + + // IBM863 is the MIB identifier with IANA name IBM863. + // + // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 + // Reference: RFC1345 + IBM863 MIB = 2050 + + // IBM864 is the MIB identifier with IANA name IBM864. + // + // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 + // Reference: RFC1345 + IBM864 MIB = 2051 + + // IBM865 is the MIB identifier with IANA name IBM865. + // + // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) + // Reference: RFC1345 + IBM865 MIB = 2052 + + // IBM868 is the MIB identifier with IANA name IBM868. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM868 MIB = 2053 + + // IBM869 is the MIB identifier with IANA name IBM869. + // + // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 + // Reference: RFC1345 + IBM869 MIB = 2054 + + // IBM870 is the MIB identifier with IANA name IBM870. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM870 MIB = 2055 + + // IBM871 is the MIB identifier with IANA name IBM871. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM871 MIB = 2056 + + // IBM880 is the MIB identifier with IANA name IBM880. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM880 MIB = 2057 + + // IBM891 is the MIB identifier with IANA name IBM891. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM891 MIB = 2058 + + // IBM903 is the MIB identifier with IANA name IBM903. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM903 MIB = 2059 + + // IBBM904 is the MIB identifier with IANA name IBM904. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBBM904 MIB = 2060 + + // IBM905 is the MIB identifier with IANA name IBM905. + // + // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 + // Reference: RFC1345 + IBM905 MIB = 2061 + + // IBM918 is the MIB identifier with IANA name IBM918. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM918 MIB = 2062 + + // IBM1026 is the MIB identifier with IANA name IBM1026. + // + // IBM NLS RM Vol2 SE09-8002-01, March 1990 + // Reference: RFC1345 + IBM1026 MIB = 2063 + + // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + IBMEBCDICATDE MIB = 2064 + + // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICATDEA MIB = 2065 + + // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICCAFR MIB = 2066 + + // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICDKNO MIB = 2067 + + // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICDKNOA MIB = 2068 + + // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICFISE MIB = 2069 + + // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICFISEA MIB = 2070 + + // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICFR MIB = 2071 + + // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICIT MIB = 2072 + + // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICPT MIB = 2073 + + // EBCDICES is the MIB identifier with IANA name EBCDIC-ES. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICES MIB = 2074 + + // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICESA MIB = 2075 + + // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICESS MIB = 2076 + + // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICUK MIB = 2077 + + // EBCDICUS is the MIB identifier with IANA name EBCDIC-US. + // + // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 + // Reference: RFC1345 + EBCDICUS MIB = 2078 + + // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT. + // + // Reference: RFC1428 + Unknown8BiT MIB = 2079 + + // Mnemonic is the MIB identifier with IANA name MNEMONIC. + // + // rfc1345 , also known as "mnemonic+ascii+38" + // Reference: RFC1345 + Mnemonic MIB = 2080 + + // Mnem is the MIB identifier with IANA name MNEM. + // + // rfc1345 , also known as "mnemonic+ascii+8200" + // Reference: RFC1345 + Mnem MIB = 2081 + + // VISCII is the MIB identifier with IANA name VISCII. + // + // rfc1456 + // Reference: RFC1456 + VISCII MIB = 2082 + + // VIQR is the MIB identifier with IANA name VIQR. + // + // rfc1456 + // Reference: RFC1456 + VIQR MIB = 2083 + + // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R). + // + // rfc1489 , based on GOST-19768-74, ISO-6937/8, + // INIS-Cyrillic, ISO-5427. + // Reference: RFC1489 + KOI8R MIB = 2084 + + // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312. + // + // rfc1842 , rfc1843 rfc1843 rfc1842 + HZGB2312 MIB = 2085 + + // IBM866 is the MIB identifier with IANA name IBM866. + // + // IBM NLDG Volume 2 (SE09-8002-03) August 1994 + IBM866 MIB = 2086 + + // PC775Baltic is the MIB identifier with IANA name IBM775. + // + // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996 + PC775Baltic MIB = 2087 + + // KOI8U is the MIB identifier with IANA name KOI8-U. + // + // rfc2319 + // Reference: RFC2319 + KOI8U MIB = 2088 + + // IBM00858 is the MIB identifier with IANA name IBM00858. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM00858 + IBM00858 MIB = 2089 + + // IBM00924 is the MIB identifier with IANA name IBM00924. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM00924 + IBM00924 MIB = 2090 + + // IBM01140 is the MIB identifier with IANA name IBM01140. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01140 + IBM01140 MIB = 2091 + + // IBM01141 is the MIB identifier with IANA name IBM01141. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01141 + IBM01141 MIB = 2092 + + // IBM01142 is the MIB identifier with IANA name IBM01142. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01142 + IBM01142 MIB = 2093 + + // IBM01143 is the MIB identifier with IANA name IBM01143. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01143 + IBM01143 MIB = 2094 + + // IBM01144 is the MIB identifier with IANA name IBM01144. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01144 + IBM01144 MIB = 2095 + + // IBM01145 is the MIB identifier with IANA name IBM01145. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01145 + IBM01145 MIB = 2096 + + // IBM01146 is the MIB identifier with IANA name IBM01146. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01146 + IBM01146 MIB = 2097 + + // IBM01147 is the MIB identifier with IANA name IBM01147. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01147 + IBM01147 MIB = 2098 + + // IBM01148 is the MIB identifier with IANA name IBM01148. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01148 + IBM01148 MIB = 2099 + + // IBM01149 is the MIB identifier with IANA name IBM01149. + // + // IBM See https://www.iana.org/assignments/charset-reg/IBM01149 + IBM01149 MIB = 2100 + + // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. + // + // See https://www.iana.org/assignments/charset-reg/Big5-HKSCS + Big5HKSCS MIB = 2101 + + // IBM1047 is the MIB identifier with IANA name IBM1047. + // + // IBM1047 (EBCDIC Latin 1/Open Systems) https://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf + IBM1047 MIB = 2102 + + // PTCP154 is the MIB identifier with IANA name PTCP154. + // + // See https://www.iana.org/assignments/charset-reg/PTCP154 + PTCP154 MIB = 2103 + + // Amiga1251 is the MIB identifier with IANA name Amiga-1251. + // + // See https://www.amiga.ultranet.ru/Amiga-1251.html + Amiga1251 MIB = 2104 + + // KOI7switched is the MIB identifier with IANA name KOI7-switched. + // + // See https://www.iana.org/assignments/charset-reg/KOI7-switched + KOI7switched MIB = 2105 + + // BRF is the MIB identifier with IANA name BRF. + // + // See https://www.iana.org/assignments/charset-reg/BRF + BRF MIB = 2106 + + // TSCII is the MIB identifier with IANA name TSCII. + // + // See https://www.iana.org/assignments/charset-reg/TSCII + TSCII MIB = 2107 + + // CP51932 is the MIB identifier with IANA name CP51932. + // + // See https://www.iana.org/assignments/charset-reg/CP51932 + CP51932 MIB = 2108 + + // Windows874 is the MIB identifier with IANA name windows-874. + // + // See https://www.iana.org/assignments/charset-reg/windows-874 + Windows874 MIB = 2109 + + // Windows1250 is the MIB identifier with IANA name windows-1250. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1250 + Windows1250 MIB = 2250 + + // Windows1251 is the MIB identifier with IANA name windows-1251. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1251 + Windows1251 MIB = 2251 + + // Windows1252 is the MIB identifier with IANA name windows-1252. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1252 + Windows1252 MIB = 2252 + + // Windows1253 is the MIB identifier with IANA name windows-1253. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1253 + Windows1253 MIB = 2253 + + // Windows1254 is the MIB identifier with IANA name windows-1254. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1254 + Windows1254 MIB = 2254 + + // Windows1255 is the MIB identifier with IANA name windows-1255. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1255 + Windows1255 MIB = 2255 + + // Windows1256 is the MIB identifier with IANA name windows-1256. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1256 + Windows1256 MIB = 2256 + + // Windows1257 is the MIB identifier with IANA name windows-1257. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1257 + Windows1257 MIB = 2257 + + // Windows1258 is the MIB identifier with IANA name windows-1258. + // + // Microsoft https://www.iana.org/assignments/charset-reg/windows-1258 + Windows1258 MIB = 2258 + + // TIS620 is the MIB identifier with IANA name TIS-620. + // + // Thai Industrial Standards Institute (TISI) + TIS620 MIB = 2259 + + // CP50220 is the MIB identifier with IANA name CP50220. + // + // See https://www.iana.org/assignments/charset-reg/CP50220 + CP50220 MIB = 2260 +) diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go new file mode 100644 index 0000000..520b9ad --- /dev/null +++ b/vendor/golang.org/x/text/transform/transform.go @@ -0,0 +1,705 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package transform provides reader and writer wrappers that transform the +// bytes passing through as well as various transformations. Example +// transformations provided by other packages include normalization and +// conversion between character sets. +package transform // import "golang.org/x/text/transform" + +import ( + "bytes" + "errors" + "io" + "unicode/utf8" +) + +var ( + // ErrShortDst means that the destination buffer was too short to + // receive all of the transformed bytes. + ErrShortDst = errors.New("transform: short destination buffer") + + // ErrShortSrc means that the source buffer has insufficient data to + // complete the transformation. + ErrShortSrc = errors.New("transform: short source buffer") + + // ErrEndOfSpan means that the input and output (the transformed input) + // are not identical. + ErrEndOfSpan = errors.New("transform: input and output are not identical") + + // errInconsistentByteCount means that Transform returned success (nil + // error) but also returned nSrc inconsistent with the src argument. + errInconsistentByteCount = errors.New("transform: inconsistent byte count returned") + + // errShortInternal means that an internal buffer is not large enough + // to make progress and the Transform operation must be aborted. + errShortInternal = errors.New("transform: short internal buffer") +) + +// Transformer transforms bytes. +type Transformer interface { + // Transform writes to dst the transformed bytes read from src, and + // returns the number of dst bytes written and src bytes read. The + // atEOF argument tells whether src represents the last bytes of the + // input. + // + // Callers should always process the nDst bytes produced and account + // for the nSrc bytes consumed before considering the error err. + // + // A nil error means that all of the transformed bytes (whether freshly + // transformed from src or left over from previous Transform calls) + // were written to dst. A nil error can be returned regardless of + // whether atEOF is true. If err is nil then nSrc must equal len(src); + // the converse is not necessarily true. + // + // ErrShortDst means that dst was too short to receive all of the + // transformed bytes. ErrShortSrc means that src had insufficient data + // to complete the transformation. If both conditions apply, then + // either error may be returned. Other than the error conditions listed + // here, implementations are free to report other errors that arise. + Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) + + // Reset resets the state and allows a Transformer to be reused. + Reset() +} + +// SpanningTransformer extends the Transformer interface with a Span method +// that determines how much of the input already conforms to the Transformer. +type SpanningTransformer interface { + Transformer + + // Span returns a position in src such that transforming src[:n] results in + // identical output src[:n] for these bytes. It does not necessarily return + // the largest such n. The atEOF argument tells whether src represents the + // last bytes of the input. + // + // Callers should always account for the n bytes consumed before + // considering the error err. + // + // A nil error means that all input bytes are known to be identical to the + // output produced by the Transformer. A nil error can be returned + // regardless of whether atEOF is true. If err is nil, then n must + // equal len(src); the converse is not necessarily true. + // + // ErrEndOfSpan means that the Transformer output may differ from the + // input after n bytes. Note that n may be len(src), meaning that the output + // would contain additional bytes after otherwise identical output. + // ErrShortSrc means that src had insufficient data to determine whether the + // remaining bytes would change. Other than the error conditions listed + // here, implementations are free to report other errors that arise. + // + // Calling Span can modify the Transformer state as a side effect. In + // effect, it does the transformation just as calling Transform would, only + // without copying to a destination buffer and only up to a point it can + // determine the input and output bytes are the same. This is obviously more + // limited than calling Transform, but can be more efficient in terms of + // copying and allocating buffers. Calls to Span and Transform may be + // interleaved. + Span(src []byte, atEOF bool) (n int, err error) +} + +// NopResetter can be embedded by implementations of Transformer to add a nop +// Reset method. +type NopResetter struct{} + +// Reset implements the Reset method of the Transformer interface. +func (NopResetter) Reset() {} + +// Reader wraps another io.Reader by transforming the bytes read. +type Reader struct { + r io.Reader + t Transformer + err error + + // dst[dst0:dst1] contains bytes that have been transformed by t but + // not yet copied out via Read. + dst []byte + dst0, dst1 int + + // src[src0:src1] contains bytes that have been read from r but not + // yet transformed through t. + src []byte + src0, src1 int + + // transformComplete is whether the transformation is complete, + // regardless of whether or not it was successful. + transformComplete bool +} + +const defaultBufSize = 4096 + +// NewReader returns a new Reader that wraps r by transforming the bytes read +// via t. It calls Reset on t. +func NewReader(r io.Reader, t Transformer) *Reader { + t.Reset() + return &Reader{ + r: r, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Read implements the io.Reader interface. +func (r *Reader) Read(p []byte) (int, error) { + n, err := 0, error(nil) + for { + // Copy out any transformed bytes and return the final error if we are done. + if r.dst0 != r.dst1 { + n = copy(p, r.dst[r.dst0:r.dst1]) + r.dst0 += n + if r.dst0 == r.dst1 && r.transformComplete { + return n, r.err + } + return n, nil + } else if r.transformComplete { + return 0, r.err + } + + // Try to transform some source bytes, or to flush the transformer if we + // are out of source bytes. We do this even if r.r.Read returned an error. + // As the io.Reader documentation says, "process the n > 0 bytes returned + // before considering the error". + if r.src0 != r.src1 || r.err != nil { + r.dst0 = 0 + r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF) + r.src0 += n + + switch { + case err == nil: + if r.src0 != r.src1 { + r.err = errInconsistentByteCount + } + // The Transform call was successful; we are complete if we + // cannot read more bytes into src. + r.transformComplete = r.err != nil + continue + case err == ErrShortDst && (r.dst1 != 0 || n != 0): + // Make room in dst by copying out, and try again. + continue + case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil: + // Read more bytes into src via the code below, and try again. + default: + r.transformComplete = true + // The reader error (r.err) takes precedence over the + // transformer error (err) unless r.err is nil or io.EOF. + if r.err == nil || r.err == io.EOF { + r.err = err + } + continue + } + } + + // Move any untransformed source bytes to the start of the buffer + // and read more bytes. + if r.src0 != 0 { + r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1]) + } + n, r.err = r.r.Read(r.src[r.src1:]) + r.src1 += n + } +} + +// TODO: implement ReadByte (and ReadRune??). + +// Writer wraps another io.Writer by transforming the bytes read. +// The user needs to call Close to flush unwritten bytes that may +// be buffered. +type Writer struct { + w io.Writer + t Transformer + dst []byte + + // src[:n] contains bytes that have not yet passed through t. + src []byte + n int +} + +// NewWriter returns a new Writer that wraps w by transforming the bytes written +// via t. It calls Reset on t. +func NewWriter(w io.Writer, t Transformer) *Writer { + t.Reset() + return &Writer{ + w: w, + t: t, + dst: make([]byte, defaultBufSize), + src: make([]byte, defaultBufSize), + } +} + +// Write implements the io.Writer interface. If there are not enough +// bytes available to complete a Transform, the bytes will be buffered +// for the next write. Call Close to convert the remaining bytes. +func (w *Writer) Write(data []byte) (n int, err error) { + src := data + if w.n > 0 { + // Append bytes from data to the last remainder. + // TODO: limit the amount copied on first try. + n = copy(w.src[w.n:], data) + w.n += n + src = w.src[:w.n] + } + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, false) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return n, werr + } + src = src[nSrc:] + if w.n == 0 { + n += nSrc + } else if len(src) <= n { + // Enough bytes from w.src have been consumed. We make src point + // to data instead to reduce the copying. + w.n = 0 + n -= len(src) + src = data[n:] + if n < len(data) && (err == nil || err == ErrShortSrc) { + continue + } + } + switch err { + case ErrShortDst: + // This error is okay as long as we are making progress. + if nDst > 0 || nSrc > 0 { + continue + } + case ErrShortSrc: + if len(src) < len(w.src) { + m := copy(w.src, src) + // If w.n > 0, bytes from data were already copied to w.src and n + // was already set to the number of bytes consumed. + if w.n == 0 { + n += m + } + w.n = m + err = nil + } else if nDst > 0 || nSrc > 0 { + // Not enough buffer to store the remainder. Keep processing as + // long as there is progress. Without this case, transforms that + // require a lookahead larger than the buffer may result in an + // error. This is not something one may expect to be common in + // practice, but it may occur when buffers are set to small + // sizes during testing. + continue + } + case nil: + if w.n > 0 { + err = errInconsistentByteCount + } + } + return n, err + } +} + +// Close implements the io.Closer interface. +func (w *Writer) Close() error { + src := w.src[:w.n] + for { + nDst, nSrc, err := w.t.Transform(w.dst, src, true) + if _, werr := w.w.Write(w.dst[:nDst]); werr != nil { + return werr + } + if err != ErrShortDst { + return err + } + src = src[nSrc:] + } +} + +type nop struct{ NopResetter } + +func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + n := copy(dst, src) + if n < len(src) { + err = ErrShortDst + } + return n, n, err +} + +func (nop) Span(src []byte, atEOF bool) (n int, err error) { + return len(src), nil +} + +type discard struct{ NopResetter } + +func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return 0, len(src), nil +} + +var ( + // Discard is a Transformer for which all Transform calls succeed + // by consuming all bytes and writing nothing. + Discard Transformer = discard{} + + // Nop is a SpanningTransformer that copies src to dst. + Nop SpanningTransformer = nop{} +) + +// chain is a sequence of links. A chain with N Transformers has N+1 links and +// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst +// buffers given to chain.Transform and the middle N-1 buffers are intermediate +// buffers owned by the chain. The i'th link transforms bytes from the i'th +// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer +// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N). +type chain struct { + link []link + err error + // errStart is the index at which the error occurred plus 1. Processing + // errStart at this level at the next call to Transform. As long as + // errStart > 0, chain will not consume any more source bytes. + errStart int +} + +func (c *chain) fatalError(errIndex int, err error) { + if i := errIndex + 1; i > c.errStart { + c.errStart = i + c.err = err + } +} + +type link struct { + t Transformer + // b[p:n] holds the bytes to be transformed by t. + b []byte + p int + n int +} + +func (l *link) src() []byte { + return l.b[l.p:l.n] +} + +func (l *link) dst() []byte { + return l.b[l.n:] +} + +// Chain returns a Transformer that applies t in sequence. +func Chain(t ...Transformer) Transformer { + if len(t) == 0 { + return nop{} + } + c := &chain{link: make([]link, len(t)+1)} + for i, tt := range t { + c.link[i].t = tt + } + // Allocate intermediate buffers. + b := make([][defaultBufSize]byte, len(t)-1) + for i := range b { + c.link[i+1].b = b[i][:] + } + return c +} + +// Reset resets the state of Chain. It calls Reset on all the Transformers. +func (c *chain) Reset() { + for i, l := range c.link { + if l.t != nil { + l.t.Reset() + } + c.link[i].p, c.link[i].n = 0, 0 + } +} + +// TODO: make chain use Span (is going to be fun to implement!) + +// Transform applies the transformers of c in sequence. +func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + // Set up src and dst in the chain. + srcL := &c.link[0] + dstL := &c.link[len(c.link)-1] + srcL.b, srcL.p, srcL.n = src, 0, len(src) + dstL.b, dstL.n = dst, 0 + var lastFull, needProgress bool // for detecting progress + + // i is the index of the next Transformer to apply, for i in [low, high]. + // low is the lowest index for which c.link[low] may still produce bytes. + // high is the highest index for which c.link[high] has a Transformer. + // The error returned by Transform determines whether to increase or + // decrease i. We try to completely fill a buffer before converting it. + for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; { + in, out := &c.link[i], &c.link[i+1] + nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i) + out.n += nDst + in.p += nSrc + if i > 0 && in.p == in.n { + in.p, in.n = 0, 0 + } + needProgress, lastFull = lastFull, false + switch err0 { + case ErrShortDst: + // Process the destination buffer next. Return if we are already + // at the high index. + if i == high { + return dstL.n, srcL.p, ErrShortDst + } + if out.n != 0 { + i++ + // If the Transformer at the next index is not able to process any + // source bytes there is nothing that can be done to make progress + // and the bytes will remain unprocessed. lastFull is used to + // detect this and break out of the loop with a fatal error. + lastFull = true + continue + } + // The destination buffer was too small, but is completely empty. + // Return a fatal error as this transformation can never complete. + c.fatalError(i, errShortInternal) + case ErrShortSrc: + if i == 0 { + // Save ErrShortSrc in err. All other errors take precedence. + err = ErrShortSrc + break + } + // Source bytes were depleted before filling up the destination buffer. + // Verify we made some progress, move the remaining bytes to the errStart + // and try to get more source bytes. + if needProgress && nSrc == 0 || in.n-in.p == len(in.b) { + // There were not enough source bytes to proceed while the source + // buffer cannot hold any more bytes. Return a fatal error as this + // transformation can never complete. + c.fatalError(i, errShortInternal) + break + } + // in.b is an internal buffer and we can make progress. + in.p, in.n = 0, copy(in.b, in.src()) + fallthrough + case nil: + // if i == low, we have depleted the bytes at index i or any lower levels. + // In that case we increase low and i. In all other cases we decrease i to + // fetch more bytes before proceeding to the next index. + if i > low { + i-- + continue + } + default: + c.fatalError(i, err0) + } + // Exhausted level low or fatal error: increase low and continue + // to process the bytes accepted so far. + i++ + low = i + } + + // If c.errStart > 0, this means we found a fatal error. We will clear + // all upstream buffers. At this point, no more progress can be made + // downstream, as Transform would have bailed while handling ErrShortDst. + if c.errStart > 0 { + for i := 1; i < c.errStart; i++ { + c.link[i].p, c.link[i].n = 0, 0 + } + err, c.errStart, c.err = c.err, 0, nil + } + return dstL.n, srcL.p, err +} + +// Deprecated: Use runes.Remove instead. +func RemoveFunc(f func(r rune) bool) Transformer { + return removeF(f) +} + +type removeF func(r rune) bool + +func (removeF) Reset() {} + +// Transform implements the Transformer interface. +func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] { + + if r = rune(src[0]); r < utf8.RuneSelf { + sz = 1 + } else { + r, sz = utf8.DecodeRune(src) + + if sz == 1 { + // Invalid rune. + if !atEOF && !utf8.FullRune(src) { + err = ErrShortSrc + break + } + // We replace illegal bytes with RuneError. Not doing so might + // otherwise turn a sequence of invalid UTF-8 into valid UTF-8. + // The resulting byte sequence may subsequently contain runes + // for which t(r) is true that were passed unnoticed. + if !t(r) { + if nDst+3 > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], "\uFFFD") + } + nSrc++ + continue + } + } + + if !t(r) { + if nDst+sz > len(dst) { + err = ErrShortDst + break + } + nDst += copy(dst[nDst:], src[:sz]) + } + nSrc += sz + } + return +} + +// grow returns a new []byte that is longer than b, and copies the first n bytes +// of b to the start of the new slice. +func grow(b []byte, n int) []byte { + m := len(b) + if m <= 32 { + m = 64 + } else if m <= 256 { + m *= 2 + } else { + m += m >> 1 + } + buf := make([]byte, m) + copy(buf, b[:n]) + return buf +} + +const initialBufSize = 128 + +// String returns a string with the result of converting s[:n] using t, where +// n <= len(s). If err == nil, n will be len(s). It calls Reset on t. +func String(t Transformer, s string) (result string, n int, err error) { + t.Reset() + if s == "" { + // Fast path for the common case for empty input. Results in about a + // 86% reduction of running time for BenchmarkStringLowerEmpty. + if _, _, err := t.Transform(nil, nil, true); err == nil { + return "", 0, nil + } + } + + // Allocate only once. Note that both dst and src escape when passed to + // Transform. + buf := [2 * initialBufSize]byte{} + dst := buf[:initialBufSize:initialBufSize] + src := buf[initialBufSize : 2*initialBufSize] + + // The input string s is transformed in multiple chunks (starting with a + // chunk size of initialBufSize). nDst and nSrc are per-chunk (or + // per-Transform-call) indexes, pDst and pSrc are overall indexes. + nDst, nSrc := 0, 0 + pDst, pSrc := 0, 0 + + // pPrefix is the length of a common prefix: the first pPrefix bytes of the + // result will equal the first pPrefix bytes of s. It is not guaranteed to + // be the largest such value, but if pPrefix, len(result) and len(s) are + // all equal after the final transform (i.e. calling Transform with atEOF + // being true returned nil error) then we don't need to allocate a new + // result string. + pPrefix := 0 + for { + // Invariant: pDst == pPrefix && pSrc == pPrefix. + + n := copy(src, s[pSrc:]) + nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // TODO: let transformers implement an optional Spanner interface, akin + // to norm's QuickSpan. This would even allow us to avoid any allocation. + if !bytes.Equal(dst[:nDst], src[:nSrc]) { + break + } + pPrefix = pSrc + if err == ErrShortDst { + // A buffer can only be short if a transformer modifies its input. + break + } else if err == ErrShortSrc { + if nSrc == 0 { + // No progress was made. + break + } + // Equal so far and !atEOF, so continue checking. + } else if err != nil || pPrefix == len(s) { + return string(s[:pPrefix]), pPrefix, err + } + } + // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc. + + // We have transformed the first pSrc bytes of the input s to become pDst + // transformed bytes. Those transformed bytes are discontiguous: the first + // pPrefix of them equal s[:pPrefix] and the last nDst of them equal + // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so + // that they become one contiguous slice: dst[:pDst]. + if pPrefix != 0 { + newDst := dst + if pDst > len(newDst) { + newDst = make([]byte, len(s)+nDst-nSrc) + } + copy(newDst[pPrefix:pDst], dst[:nDst]) + copy(newDst[:pPrefix], s[:pPrefix]) + dst = newDst + } + + // Prevent duplicate Transform calls with atEOF being true at the end of + // the input. Also return if we have an unrecoverable error. + if (err == nil && pSrc == len(s)) || + (err != nil && err != ErrShortDst && err != ErrShortSrc) { + return string(dst[:pDst]), pSrc, err + } + + // Transform the remaining input, growing dst and src buffers as necessary. + for { + n := copy(src, s[pSrc:]) + nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s)) + pDst += nDst + pSrc += nSrc + + // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can + // make progress. This may avoid excessive allocations. + if err == ErrShortDst { + if nDst == 0 { + dst = grow(dst, pDst) + } + } else if err == ErrShortSrc { + if nSrc == 0 { + src = grow(src, 0) + } + } else if err != nil || pSrc == len(s) { + return string(dst[:pDst]), pSrc, err + } + } +} + +// Bytes returns a new byte slice with the result of converting b[:n] using t, +// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t. +func Bytes(t Transformer, b []byte) (result []byte, n int, err error) { + return doAppend(t, 0, make([]byte, len(b)), b) +} + +// Append appends the result of converting src[:n] using t to dst, where +// n <= len(src), If err == nil, n will be len(src). It calls Reset on t. +func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) { + if len(dst) == cap(dst) { + n := len(src) + len(dst) // It is okay for this to be 0. + b := make([]byte, n) + dst = b[:copy(b, dst)] + } + return doAppend(t, len(dst), dst[:cap(dst)], src) +} + +func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) { + t.Reset() + pSrc := 0 + for { + nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true) + pDst += nDst + pSrc += nSrc + if err != ErrShortDst { + return dst[:pDst], pSrc, err + } + + // Grow the destination buffer, but do not grow as long as we can make + // progress. This may avoid excessive allocations. + if nDst == 0 { + dst = grow(dst, pDst) + } + } +} diff --git a/vendor/modules.txt b/vendor/modules.txt index c92dae1..7eb83bf 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -15,8 +15,76 @@ github.com/davecgh/go-spew/spew github.com/dietsche/rfsnotify # github.com/fsnotify/fsnotify v1.4.9 ## explicit -# golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 +# github.com/gdamore/encoding v1.0.0 +github.com/gdamore/encoding +# github.com/gdamore/tcell v1.4.0 +## explicit +github.com/gdamore/tcell +github.com/gdamore/tcell/terminfo +github.com/gdamore/tcell/terminfo/a/adm3a +github.com/gdamore/tcell/terminfo/a/aixterm +github.com/gdamore/tcell/terminfo/a/alacritty +github.com/gdamore/tcell/terminfo/a/ansi +github.com/gdamore/tcell/terminfo/a/aterm +github.com/gdamore/tcell/terminfo/b/beterm +github.com/gdamore/tcell/terminfo/b/bsdos_pc +github.com/gdamore/tcell/terminfo/base +github.com/gdamore/tcell/terminfo/c/cygwin +github.com/gdamore/tcell/terminfo/d/d200 +github.com/gdamore/tcell/terminfo/d/d210 +github.com/gdamore/tcell/terminfo/d/dtterm +github.com/gdamore/tcell/terminfo/dynamic +github.com/gdamore/tcell/terminfo/e/emacs +github.com/gdamore/tcell/terminfo/e/eterm +github.com/gdamore/tcell/terminfo/extended +github.com/gdamore/tcell/terminfo/g/gnome +github.com/gdamore/tcell/terminfo/h/hpterm +github.com/gdamore/tcell/terminfo/h/hz1500 +github.com/gdamore/tcell/terminfo/k/konsole +github.com/gdamore/tcell/terminfo/k/kterm +github.com/gdamore/tcell/terminfo/l/linux +github.com/gdamore/tcell/terminfo/p/pcansi +github.com/gdamore/tcell/terminfo/r/rxvt +github.com/gdamore/tcell/terminfo/s/screen +github.com/gdamore/tcell/terminfo/s/simpleterm +github.com/gdamore/tcell/terminfo/s/sun +github.com/gdamore/tcell/terminfo/t/termite +github.com/gdamore/tcell/terminfo/t/tvi910 +github.com/gdamore/tcell/terminfo/t/tvi912 +github.com/gdamore/tcell/terminfo/t/tvi921 +github.com/gdamore/tcell/terminfo/t/tvi925 +github.com/gdamore/tcell/terminfo/t/tvi950 +github.com/gdamore/tcell/terminfo/t/tvi970 +github.com/gdamore/tcell/terminfo/v/vt100 +github.com/gdamore/tcell/terminfo/v/vt102 +github.com/gdamore/tcell/terminfo/v/vt220 +github.com/gdamore/tcell/terminfo/v/vt320 +github.com/gdamore/tcell/terminfo/v/vt400 +github.com/gdamore/tcell/terminfo/v/vt420 +github.com/gdamore/tcell/terminfo/v/vt52 +github.com/gdamore/tcell/terminfo/w/wy50 +github.com/gdamore/tcell/terminfo/w/wy60 +github.com/gdamore/tcell/terminfo/w/wy99_ansi +github.com/gdamore/tcell/terminfo/x/xfce +github.com/gdamore/tcell/terminfo/x/xnuppc +github.com/gdamore/tcell/terminfo/x/xterm +github.com/gdamore/tcell/terminfo/x/xterm_kitty +# github.com/lucasb-eyer/go-colorful v1.0.3 +github.com/lucasb-eyer/go-colorful +# github.com/mattn/go-runewidth v0.0.9 +github.com/mattn/go-runewidth +# github.com/rivo/tview v0.0.0-20200818120338-53d50e499bf9 +## explicit +github.com/rivo/tview +# github.com/rivo/uniseg v0.1.0 +github.com/rivo/uniseg +# golang.org/x/sys v0.0.0-20200817155316-9781c653f443 +golang.org/x/sys/internal/unsafeheader golang.org/x/sys/unix +# golang.org/x/text v0.3.2 +golang.org/x/text/encoding +golang.org/x/text/encoding/internal/identifier +golang.org/x/text/transform # gopkg.in/fsnotify.v1 v1.4.7 ## explicit gopkg.in/fsnotify.v1

    #VBW_{5$#Up)b}Ig*}DiqurNa^ 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%0AHGXPxdb@gt{vr5%NssK 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