linux

package
v0.0.0-...-4bf4b70 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2021 License: Apache-2.0, MIT Imports: 19 Imported by: 0

Documentation

Overview

Package linux contains the constants and types needed to interface with a Linux kernel.

Index

Constants

View Source
const (
	IOCB_CMD_PREAD  = 0
	IOCB_CMD_PWRITE = 1
	IOCB_CMD_FSYNC  = 2
	IOCB_CMD_FDSYNC = 3
	// 4 was the experimental IOCB_CMD_PREADX.
	IOCB_CMD_POLL    = 5
	IOCB_CMD_NOOP    = 6
	IOCB_CMD_PREADV  = 7
	IOCB_CMD_PWRITEV = 8
)

I/O commands.

View Source
const (
	IOCB_FLAG_RESFD  = 1
	IOCB_FLAG_IOPRIO = 2
)

I/O flags.

View Source
const (
	VSyscallStartAddr uint64 = 0xffffffffff600000
	VSyscallEndAddr   uint64 = 0xffffffffff601000
)

Start and end addresses of the vsyscall page.

View Source
const (
	// AUDIT_ARCH_X86_64 identifies AMD64.
	AUDIT_ARCH_X86_64 = 0xc000003e
	// AUDIT_ARCH_AARCH64 identifies ARM64.
	AUDIT_ARCH_AARCH64 = 0xc00000b7
)

Audit numbers identify different system call APIs, from <uapi/linux/audit.h>

View Source
const (
	CAP_CHOWN            = Capability(0)
	CAP_DAC_OVERRIDE     = Capability(1)
	CAP_DAC_READ_SEARCH  = Capability(2)
	CAP_FOWNER           = Capability(3)
	CAP_FSETID           = Capability(4)
	CAP_KILL             = Capability(5)
	CAP_SETGID           = Capability(6)
	CAP_SETUID           = Capability(7)
	CAP_SETPCAP          = Capability(8)
	CAP_LINUX_IMMUTABLE  = Capability(9)
	CAP_NET_BIND_SERVICE = Capability(10)
	CAP_NET_BROADCAST    = Capability(11)
	CAP_NET_ADMIN        = Capability(12)
	CAP_NET_RAW          = Capability(13)
	CAP_IPC_LOCK         = Capability(14)
	CAP_IPC_OWNER        = Capability(15)
	CAP_SYS_MODULE       = Capability(16)
	CAP_SYS_RAWIO        = Capability(17)
	CAP_SYS_CHROOT       = Capability(18)
	CAP_SYS_PTRACE       = Capability(19)
	CAP_SYS_PACCT        = Capability(20)
	CAP_SYS_ADMIN        = Capability(21)
	CAP_SYS_BOOT         = Capability(22)
	CAP_SYS_NICE         = Capability(23)
	CAP_SYS_RESOURCE     = Capability(24)
	CAP_SYS_TIME         = Capability(25)
	CAP_SYS_TTY_CONFIG   = Capability(26)
	CAP_MKNOD            = Capability(27)
	CAP_LEASE            = Capability(28)
	CAP_AUDIT_WRITE      = Capability(29)
	CAP_AUDIT_CONTROL    = Capability(30)
	CAP_SETFCAP          = Capability(31)
	CAP_MAC_OVERRIDE     = Capability(32)
	CAP_MAC_ADMIN        = Capability(33)
	CAP_SYSLOG           = Capability(34)
	CAP_WAKE_ALARM       = Capability(35)
	CAP_BLOCK_SUSPEND    = Capability(36)
	CAP_AUDIT_READ       = Capability(37)

	// CAP_LAST_CAP is the highest-numbered capability.
	// Seach for "CAP_LAST_CAP" to find other places that need to change.
	CAP_LAST_CAP = CAP_AUDIT_READ
)

Capabilities defined by Linux. Taken from the kernel's include/uapi/linux/capability.h. See capabilities(7) or that file for more detailed capability descriptions.

View Source
const (
	// LINUX_CAPABILITY_VERSION_1 causes the data pointer to be
	// interpreted as a pointer to a single cap_user_data_t. Since capability
	// sets are 64 bits and the "capability sets" in cap_user_data_t are 32
	// bits only, this causes the upper 32 bits to be implicitly 0.
	LINUX_CAPABILITY_VERSION_1 = 0x19980330

	// LINUX_CAPABILITY_VERSION_2 and LINUX_CAPABILITY_VERSION_3 cause the
	// data pointer to be interpreted as a pointer to an array of 2
	// cap_user_data_t, using the second to store the 32 MSB of each capability
	// set. Versions 2 and 3 are identical, but Linux printk's a warning on use
	// of version 2 due to a userspace API defect.
	LINUX_CAPABILITY_VERSION_2 = 0x20071026
	LINUX_CAPABILITY_VERSION_3 = 0x20080522

	// HighestCapabilityVersion is the highest supported
	// LINUX_CAPABILITY_VERSION_* version.
	HighestCapabilityVersion = LINUX_CAPABILITY_VERSION_3
)

Version numbers used by the capget/capset syscalls, defined in Linux's include/uapi/linux/capability.h.

View Source
const (
	CLONE_VM             = 0x100
	CLONE_FS             = 0x200
	CLONE_FILES          = 0x400
	CLONE_SIGHAND        = 0x800
	CLONE_PARENT         = 0x8000
	CLONE_PTRACE         = 0x2000
	CLONE_VFORK          = 0x4000
	CLONE_THREAD         = 0x10000
	CLONE_NEWNS          = 0x20000
	CLONE_SYSVSEM        = 0x40000
	CLONE_SETTLS         = 0x80000
	CLONE_PARENT_SETTID  = 0x100000
	CLONE_CHILD_CLEARTID = 0x200000
	CLONE_DETACHED       = 0x400000
	CLONE_UNTRACED       = 0x800000
	CLONE_CHILD_SETTID   = 0x1000000
	CLONE_NEWUTS         = 0x4000000
	CLONE_NEWIPC         = 0x8000000
	CLONE_NEWUSER        = 0x10000000
	CLONE_NEWPID         = 0x20000000
	CLONE_NEWNET         = 0x40000000
	CLONE_IO             = 0x80000000
)

Clone constants per clone(2).

View Source
const (
	// UNNAMED_MAJOR is the major device number for "unnamed" devices, whose
	// minor numbers are dynamically allocated by the kernel.
	UNNAMED_MAJOR = 0

	// MEM_MAJOR is the major device number for "memory" character devices.
	MEM_MAJOR = 1

	// TTYAUX_MAJOR is the major device number for alternate TTY devices.
	TTYAUX_MAJOR = 5

	// MISC_MAJOR is the major device number for non-serial mice, misc feature
	// devices.
	MISC_MAJOR = 10

	// UNIX98_PTY_MASTER_MAJOR is the initial major device number for
	// Unix98 PTY masters.
	UNIX98_PTY_MASTER_MAJOR = 128

	// UNIX98_PTY_REPLICA_MAJOR is the initial major device number for
	// Unix98 PTY replicas.
	UNIX98_PTY_REPLICA_MAJOR = 136
)

Character device IDs.

See Documentations/devices.txt and uapi/linux/major.h.

View Source
const (
	// AT_NULL is the end of the auxiliary vector.
	AT_NULL = 0

	// AT_IGNORE should be ignored.
	AT_IGNORE = 1

	// AT_EXECFD is the file descriptor of the program.
	AT_EXECFD = 2

	// AT_PHDR points to the program headers.
	AT_PHDR = 3

	// AT_PHENT is the size of a program header entry.
	AT_PHENT = 4

	// AT_PHNUM is the number of program headers.
	AT_PHNUM = 5

	// AT_PAGESZ is the system page size.
	AT_PAGESZ = 6

	// AT_BASE is the base address of the interpreter.
	AT_BASE = 7

	// AT_FLAGS are flags.
	AT_FLAGS = 8

	// AT_ENTRY is the program entry point.
	AT_ENTRY = 9

	// AT_NOTELF indicates that the program is not an ELF binary.
	AT_NOTELF = 10

	// AT_UID is the real UID.
	AT_UID = 11

	// AT_EUID is the effective UID.
	AT_EUID = 12

	// AT_GID is the real GID.
	AT_GID = 13

	// AT_EGID is the effective GID.
	AT_EGID = 14

	// AT_PLATFORM is a string identifying the CPU.
	AT_PLATFORM = 15

	// AT_HWCAP are arch-dependent CPU capabilities.
	AT_HWCAP = 16

	// AT_CLKTCK is the frequency used by times(2).
	AT_CLKTCK = 17

	// AT_SECURE indicate secure mode.
	AT_SECURE = 23

	// AT_BASE_PLATFORM is a string identifying the "real" platform. It may
	// differ from AT_PLATFORM.
	AT_BASE_PLATFORM = 24

	// AT_RANDOM points to 16-bytes of random data.
	AT_RANDOM = 25

	// AT_HWCAP2 is an extension of AT_HWCAP.
	AT_HWCAP2 = 26

	// AT_EXECFN is the path used to execute the program.
	AT_EXECFN = 31

	// AT_SYSINFO_EHDR is the address of the VDSO.
	AT_SYSINFO_EHDR = 33
)

Linux auxiliary vector entry types.

View Source
const (
	// NT_PRSTATUS is for general purpose register.
	NT_PRSTATUS = 0x1

	// NT_PRFPREG is for float point register.
	NT_PRFPREG = 0x2

	// NT_X86_XSTATE is for x86 extended state using xsave.
	NT_X86_XSTATE = 0x202

	// NT_ARM_TLS is for ARM TLS register.
	NT_ARM_TLS = 0x401
)

ELF ET_CORE and ptrace GETREGSET/SETREGSET register set types.

See include/uapi/linux/elf.h.

View Source
const (
	EPOLLIN     = 0x1
	EPOLLPRI    = 0x2
	EPOLLOUT    = 0x4
	EPOLLERR    = 0x8
	EPOLLHUP    = 0x10
	EPOLLRDNORM = 0x40
	EPOLLRDBAND = 0x80
	EPOLLWRNORM = 0x100
	EPOLLWRBAND = 0x200
	EPOLLMSG    = 0x400
	EPOLLRDHUP  = 0x2000
)

Event masks.

View Source
const (
	EPOLLEXCLUSIVE = 1 << 28
	EPOLLWAKEUP    = 1 << 29
	EPOLLONESHOT   = 1 << 30
	EPOLLET        = 1 << 31

	// EP_PRIVATE_BITS is fs/eventpoll.c:EP_PRIVATE_BITS, the set of all bits
	// in an epoll event mask that correspond to flags rather than I/O events.
	EP_PRIVATE_BITS = EPOLLEXCLUSIVE | EPOLLWAKEUP | EPOLLONESHOT | EPOLLET
)

Per-file descriptor flags.

View Source
const (
	EPOLL_CLOEXEC  = 0x80000
	EPOLL_NONBLOCK = 0x800
)

Operation flags.

View Source
const (
	EPOLL_CTL_ADD = 0x1
	EPOLL_CTL_DEL = 0x2
	EPOLL_CTL_MOD = 0x3
)

Control operations.

View Source
const (
	SO_EE_ORIGIN_NONE  = 0
	SO_EE_ORIGIN_LOCAL = 1
	SO_EE_ORIGIN_ICMP  = 2
	SO_EE_ORIGIN_ICMP6 = 3
)

Socket error origin codes as defined in include/uapi/linux/errqueue.h.

View Source
const (
	EFD_SEMAPHORE = 0x1
	EFD_CLOEXEC   = O_CLOEXEC
	EFD_NONBLOCK  = O_NONBLOCK
)

Constants for eventfd2(2).

View Source
const (
	POSIX_FADV_NORMAL     = 0
	POSIX_FADV_RANDOM     = 1
	POSIX_FADV_SEQUENTIAL = 2
	POSIX_FADV_WILLNEED   = 3
	POSIX_FADV_DONTNEED   = 4
	POSIX_FADV_NOREUSE    = 5
)

Fadvise constants.

View Source
const (
	F_DUPFD         = 0
	F_GETFD         = 1
	F_SETFD         = 2
	F_GETFL         = 3
	F_SETFL         = 4
	F_GETLK         = 5
	F_SETLK         = 6
	F_SETLKW        = 7
	F_SETOWN        = 8
	F_GETOWN        = 9
	F_SETSIG        = 10
	F_GETSIG        = 11
	F_SETOWN_EX     = 15
	F_GETOWN_EX     = 16
	F_DUPFD_CLOEXEC = 1024 + 6
	F_SETPIPE_SZ    = 1024 + 7
	F_GETPIPE_SZ    = 1024 + 8
)

Commands from linux/fcntl.h.

View Source
const (
	F_RDLCK = 0
	F_WRLCK = 1
	F_UNLCK = 2
)

Commands for F_SETLK.

View Source
const (
	F_OWNER_TID  = 0
	F_OWNER_PID  = 1
	F_OWNER_PGRP = 2
)

Owner types for F_SETOWN_EX and F_GETOWN_EX.

View Source
const (
	O_ACCMODE  = 000000003
	O_RDONLY   = 000000000
	O_WRONLY   = 000000001
	O_RDWR     = 000000002
	O_CREAT    = 000000100
	O_EXCL     = 000000200
	O_NOCTTY   = 000000400
	O_TRUNC    = 000001000
	O_APPEND   = 000002000
	O_NONBLOCK = 000004000
	O_DSYNC    = 000010000
	O_ASYNC    = 000020000
	O_NOATIME  = 001000000
	O_CLOEXEC  = 002000000
	O_SYNC     = 004000000 // __O_SYNC in Linux
	O_PATH     = 010000000
	O_TMPFILE  = 020000000 // __O_TMPFILE in Linux
)

Constants for open(2).

View Source
const (
	MS_RDONLY      = 0x1
	MS_NOSUID      = 0x2
	MS_NODEV       = 0x4
	MS_NOEXEC      = 0x8
	MS_SYNCHRONOUS = 0x10
	MS_REMOUNT     = 0x20
	MS_MANDLOCK    = 0x40
	MS_DIRSYNC     = 0x80
	MS_NOATIME     = 0x400
	MS_NODIRATIME  = 0x800
	MS_BIND        = 0x1000
	MS_MOVE        = 0x2000
	MS_REC         = 0x4000

	MS_POSIXACL    = 0x10000
	MS_UNBINDABLE  = 0x20000
	MS_PRIVATE     = 0x40000
	MS_SLAVE       = 0x80000
	MS_SHARED      = 0x100000
	MS_RELATIME    = 0x200000
	MS_KERNMOUNT   = 0x400000
	MS_I_VERSION   = 0x800000
	MS_STRICTATIME = 0x1000000

	MS_MGC_VAL = 0xC0ED0000
	MS_MGC_MSK = 0xffff0000
)

Constants for mount(2).

View Source
const (
	MNT_FORCE       = 0x1
	MNT_DETACH      = 0x2
	MNT_EXPIRE      = 0x4
	UMOUNT_NOFOLLOW = 0x8
)

Constants for umount2(2).

View Source
const (
	AT_SYMLINK_FOLLOW = 0x400
	AT_EMPTY_PATH     = 0x1000
)

Constants for linkat(2) and fchownat(2).

View Source
const (
	UTIME_NOW  = ((1 << 30) - 1)
	UTIME_OMIT = ((1 << 30) - 2)
)

Special values for the ns field in utimensat(2).

View Source
const (
	LOCK_SH = 1 // shared lock
	LOCK_EX = 2 // exclusive lock
	LOCK_NB = 4 // or'd with one of the above to prevent blocking
	LOCK_UN = 8 // remove lock
)

Constants for flock(2).

View Source
const (
	S_IFMT   = 0170000
	S_IFSOCK = 0140000
	S_IFLNK  = 0120000
	S_IFREG  = 0100000
	S_IFBLK  = 060000
	S_IFDIR  = 040000
	S_IFCHR  = 020000
	S_IFIFO  = 010000

	FileTypeMask        = S_IFMT
	ModeSocket          = S_IFSOCK
	ModeSymlink         = S_IFLNK
	ModeRegular         = S_IFREG
	ModeBlockDevice     = S_IFBLK
	ModeDirectory       = S_IFDIR
	ModeCharacterDevice = S_IFCHR
	ModeNamedPipe       = S_IFIFO

	S_ISUID = 04000
	S_ISGID = 02000
	S_ISVTX = 01000

	ModeSetUID = S_ISUID
	ModeSetGID = S_ISGID
	ModeSticky = S_ISVTX

	ModeUserAll     = 0700
	ModeUserRead    = 0400
	ModeUserWrite   = 0200
	ModeUserExec    = 0100
	ModeGroupAll    = 0070
	ModeGroupRead   = 0040
	ModeGroupWrite  = 0020
	ModeGroupExec   = 0010
	ModeOtherAll    = 0007
	ModeOtherRead   = 0004
	ModeOtherWrite  = 0002
	ModeOtherExec   = 0001
	PermissionsMask = 0777
)

Values for mode_t.

View Source
const (
	DT_UNKNOWN = 0
	DT_FIFO    = 1
	DT_CHR     = 2
	DT_DIR     = 4
	DT_BLK     = 6
	DT_REG     = 8
	DT_LNK     = 10
	DT_SOCK    = 12
	DT_WHT     = 14
)

Values for linux_dirent64.d_type.

View Source
const (
	// NOTE(b/120162627): gVisor does not implement the RWF_HIPRI feature, but
	// the flag is accepted as a valid flag argument for preadv2/pwritev2 and
	// silently ignored.
	RWF_HIPRI = 0x00000001
	RWF_DSYNC = 0x00000002
	RWF_SYNC  = 0x00000004
	RWF_VALID = RWF_HIPRI | RWF_DSYNC | RWF_SYNC
)

Values for preadv2/pwritev2.

View Source
const (
	AT_STATX_SYNC_TYPE    = 0x6000
	AT_STATX_SYNC_AS_STAT = 0x0000
	AT_STATX_FORCE_SYNC   = 0x2000
	AT_STATX_DONT_SYNC    = 0x4000
)

Flags for statx.

View Source
const (
	STATX_TYPE        = 0x00000001
	STATX_MODE        = 0x00000002
	STATX_NLINK       = 0x00000004
	STATX_UID         = 0x00000008
	STATX_GID         = 0x00000010
	STATX_ATIME       = 0x00000020
	STATX_MTIME       = 0x00000040
	STATX_CTIME       = 0x00000080
	STATX_INO         = 0x00000100
	STATX_SIZE        = 0x00000200
	STATX_BLOCKS      = 0x00000400
	STATX_BASIC_STATS = 0x000007ff
	STATX_BTIME       = 0x00000800
	STATX_ALL         = 0x00000fff
	STATX__RESERVED   = 0x80000000
)

Mask values for statx.

View Source
const (
	STATX_ATTR_COMPRESSED = 0x00000004
	STATX_ATTR_IMMUTABLE  = 0x00000010
	STATX_ATTR_APPEND     = 0x00000020
	STATX_ATTR_NODUMP     = 0x00000040
	STATX_ATTR_ENCRYPTED  = 0x00000800
	STATX_ATTR_AUTOMOUNT  = 0x00001000
)

Bitmasks for Statx.Attributes and Statx.AttributesMask, from include/uapi/linux/stat.h.

View Source
const (
	MFD_CLOEXEC       = 0x0001
	MFD_ALLOW_SEALING = 0x0002
)

Constants for memfd_create(2). Source: include/uapi/linux/memfd.h

View Source
const (
	F_LINUX_SPECIFIC_BASE = 1024
	F_ADD_SEALS           = F_LINUX_SPECIFIC_BASE + 9
	F_GET_SEALS           = F_LINUX_SPECIFIC_BASE + 10

	F_SEAL_SEAL   = 0x0001 // Prevent further seals from being set.
	F_SEAL_SHRINK = 0x0002 // Prevent file from shrinking.
	F_SEAL_GROW   = 0x0004 // Prevent file from growing.
	F_SEAL_WRITE  = 0x0008 // Prevent writes.
)

Constants related to file seals. Source: include/uapi/{asm-generic,linux}/fcntl.h

View Source
const (
	FALLOC_FL_KEEP_SIZE      = 0x01
	FALLOC_FL_PUNCH_HOLE     = 0x02
	FALLOC_FL_NO_HIDE_STALE  = 0x04
	FALLOC_FL_COLLAPSE_RANGE = 0x08
	FALLOC_FL_ZERO_RANGE     = 0x10
	FALLOC_FL_INSERT_RANGE   = 0x20
	FALLOC_FL_UNSHARE_RANGE  = 0x40
)

Constants related to fallocate(2). Source: include/uapi/linux/falloc.h

View Source
const (
	O_DIRECT    = 000040000
	O_LARGEFILE = 000100000
	O_DIRECTORY = 000200000
	O_NOFOLLOW  = 000400000
)

Constants for open(2).

View Source
const (
	ANON_INODE_FS_MAGIC   = 0x09041934
	DEVPTS_SUPER_MAGIC    = 0x00001cd1
	EXT_SUPER_MAGIC       = 0xef53
	OVERLAYFS_SUPER_MAGIC = 0x794c7630
	PIPEFS_MAGIC          = 0x50495045
	PROC_SUPER_MAGIC      = 0x9fa0
	RAMFS_MAGIC           = 0x09041934
	SOCKFS_MAGIC          = 0x534F434B
	SYSFS_MAGIC           = 0x62656572
	TMPFS_MAGIC           = 0x01021994
	V9FS_MAGIC            = 0x01021997
	FUSE_SUPER_MAGIC      = 0x65735546
)

Filesystem types used in statfs(2).

See linux/magic.h.

View Source
const (
	NAME_MAX = 255
	PATH_MAX = 4096
)

Filesystem path limits, from uapi/linux/limits.h.

View Source
const (
	SEEK_SET  = 0
	SEEK_CUR  = 1
	SEEK_END  = 2
	SEEK_DATA = 3
	SEEK_HOLE = 4
)

Whence argument to lseek(2), from include/uapi/linux/fs.h.

View Source
const (
	SYNC_FILE_RANGE_WAIT_BEFORE = 1
	SYNC_FILE_RANGE_WRITE       = 2
	SYNC_FILE_RANGE_WAIT_AFTER  = 4
)

Sync_file_range flags, from include/uapi/linux/fs.h

View Source
const (
	RENAME_NOREPLACE = (1 << 0) // Don't overwrite target.
	RENAME_EXCHANGE  = (1 << 1) // Exchange src and dst.
	RENAME_WHITEOUT  = (1 << 2) // Whiteout src.
)

Flag argument to renameat2(2), from include/uapi/linux/fs.h.

View Source
const (
	FUSE_LOOKUP   FUSEOpcode = 1
	FUSE_FORGET              = 2 /* no reply */
	FUSE_GETATTR             = 3
	FUSE_SETATTR             = 4
	FUSE_READLINK            = 5
	FUSE_SYMLINK             = 6

	FUSE_MKNOD   = 8
	FUSE_MKDIR   = 9
	FUSE_UNLINK  = 10
	FUSE_RMDIR   = 11
	FUSE_RENAME  = 12
	FUSE_LINK    = 13
	FUSE_OPEN    = 14
	FUSE_READ    = 15
	FUSE_WRITE   = 16
	FUSE_STATFS  = 17
	FUSE_RELEASE = 18

	FUSE_FSYNC        = 20
	FUSE_SETXATTR     = 21
	FUSE_GETXATTR     = 22
	FUSE_LISTXATTR    = 23
	FUSE_REMOVEXATTR  = 24
	FUSE_FLUSH        = 25
	FUSE_INIT         = 26
	FUSE_OPENDIR      = 27
	FUSE_READDIR      = 28
	FUSE_RELEASEDIR   = 29
	FUSE_FSYNCDIR     = 30
	FUSE_GETLK        = 31
	FUSE_SETLK        = 32
	FUSE_SETLKW       = 33
	FUSE_ACCESS       = 34
	FUSE_CREATE       = 35
	FUSE_INTERRUPT    = 36
	FUSE_BMAP         = 37
	FUSE_DESTROY      = 38
	FUSE_IOCTL        = 39
	FUSE_POLL         = 40
	FUSE_NOTIFY_REPLY = 41
	FUSE_BATCH_FORGET = 42
)

Opcodes for FUSE operations.

Analogous to the opcodes in include/linux/fuse.h.

View Source
const (
	FUSE_ASYNC_READ       = 1 << 0
	FUSE_POSIX_LOCKS      = 1 << 1
	FUSE_FILE_OPS         = 1 << 2
	FUSE_ATOMIC_O_TRUNC   = 1 << 3
	FUSE_EXPORT_SUPPORT   = 1 << 4
	FUSE_BIG_WRITES       = 1 << 5
	FUSE_DONT_MASK        = 1 << 6
	FUSE_SPLICE_WRITE     = 1 << 7
	FUSE_SPLICE_MOVE      = 1 << 8
	FUSE_SPLICE_READ      = 1 << 9
	FUSE_FLOCK_LOCKS      = 1 << 10
	FUSE_HAS_IOCTL_DIR    = 1 << 11
	FUSE_AUTO_INVAL_DATA  = 1 << 12
	FUSE_DO_READDIRPLUS   = 1 << 13
	FUSE_READDIRPLUS_AUTO = 1 << 14
	FUSE_ASYNC_DIO        = 1 << 15
	FUSE_WRITEBACK_CACHE  = 1 << 16
	FUSE_NO_OPEN_SUPPORT  = 1 << 17
	FUSE_MAX_PAGES        = 1 << 22 // From FUSE 7.28
)

FUSE_INIT flags, consistent with the ones in include/uapi/linux/fuse.h. Our taget version is 7.23 but we have few implemented in advance.

View Source
const (
	FUSE_KERNEL_VERSION       = 7
	FUSE_KERNEL_MINOR_VERSION = 31
)

currently supported FUSE protocol version numbers.

View Source
const (
	FUSE_NAME_MAX     = 1024
	FUSE_PAGE_SIZE    = 4096
	FUSE_DIRENT_ALIGN = 8
)

Constants relevant to FUSE operations.

View Source
const (
	// FOPEN_DIRECT_IO indicates bypassing page cache for this opened file.
	FOPEN_DIRECT_IO = 1 << 0
	// FOPEN_KEEP_CACHE avoids invalidate of data cache on open.
	FOPEN_KEEP_CACHE = 1 << 1
	// FOPEN_NONSEEKABLE indicates the file cannot be seeked.
	FOPEN_NONSEEKABLE = 1 << 2
)

flags returned by OPEN request.

View Source
const (
	FATTR_MODE      = (1 << 0)
	FATTR_UID       = (1 << 1)
	FATTR_GID       = (1 << 2)
	FATTR_SIZE      = (1 << 3)
	FATTR_ATIME     = (1 << 4)
	FATTR_MTIME     = (1 << 5)
	FATTR_FH        = (1 << 6)
	FATTR_ATIME_NOW = (1 << 7)
	FATTR_MTIME_NOW = (1 << 8)
	FATTR_LOCKOWNER = (1 << 9)
	FATTR_CTIME     = (1 << 10)
)

FATTR_* consts are the attribute flags defined in include/uapi/linux/fuse.h. These should be or-ed together for setattr to know what has been changed.

View Source
const (
	FUTEX_WAIT            = 0
	FUTEX_WAKE            = 1
	FUTEX_FD              = 2
	FUTEX_REQUEUE         = 3
	FUTEX_CMP_REQUEUE     = 4
	FUTEX_WAKE_OP         = 5
	FUTEX_LOCK_PI         = 6
	FUTEX_UNLOCK_PI       = 7
	FUTEX_TRYLOCK_PI      = 8
	FUTEX_WAIT_BITSET     = 9
	FUTEX_WAKE_BITSET     = 10
	FUTEX_WAIT_REQUEUE_PI = 11
	FUTEX_CMP_REQUEUE_PI  = 12

	FUTEX_PRIVATE_FLAG   = 128
	FUTEX_CLOCK_REALTIME = 256
)

From <linux/futex.h> and <sys/time.h>. Flags are used in syscall futex(2).

View Source
const (
	FUTEX_OP_SET         = 0
	FUTEX_OP_ADD         = 1
	FUTEX_OP_OR          = 2
	FUTEX_OP_ANDN        = 3
	FUTEX_OP_XOR         = 4
	FUTEX_OP_OPARG_SHIFT = 8
	FUTEX_OP_CMP_EQ      = 0
	FUTEX_OP_CMP_NE      = 1
	FUTEX_OP_CMP_LT      = 2
	FUTEX_OP_CMP_LE      = 3
	FUTEX_OP_CMP_GT      = 4
	FUTEX_OP_CMP_GE      = 5
)

These are flags are from <linux/futex.h> and are used in FUTEX_WAKE_OP to define the operations.

View Source
const (
	FUTEX_WAITERS    = 0x80000000
	FUTEX_OWNER_DIED = 0x40000000
)

Constants used for priority-inheritance futexes.

View Source
const (
	// IN_ACCESS indicates a file was accessed.
	IN_ACCESS = 0x00000001
	// IN_MODIFY indicates a file was modified.
	IN_MODIFY = 0x00000002
	// IN_ATTRIB indicates a watch target's metadata changed.
	IN_ATTRIB = 0x00000004
	// IN_CLOSE_WRITE indicates a writable file was closed.
	IN_CLOSE_WRITE = 0x00000008
	// IN_CLOSE_NOWRITE indicates a non-writable file was closed.
	IN_CLOSE_NOWRITE = 0x00000010
	// IN_OPEN indicates a file was opened.
	IN_OPEN = 0x00000020
	// IN_MOVED_FROM indicates a file was moved from X.
	IN_MOVED_FROM = 0x00000040
	// IN_MOVED_TO indicates a file was moved to Y.
	IN_MOVED_TO = 0x00000080
	// IN_CREATE indicates a file was created in a watched directory.
	IN_CREATE = 0x00000100
	// IN_DELETE indicates a file was deleted in a watched directory.
	IN_DELETE = 0x00000200
	// IN_DELETE_SELF indicates a watch target itself was deleted.
	IN_DELETE_SELF = 0x00000400
	// IN_MOVE_SELF indicates a watch target itself was moved.
	IN_MOVE_SELF = 0x00000800
	// IN_ALL_EVENTS is a mask for all observable userspace events.
	IN_ALL_EVENTS = 0x00000fff
)

Inotify events observable by userspace. These directly correspond to filesystem operations and there may only be a single of them per inotify event read from an inotify fd.

View Source
const (
	// IN_UNMOUNT indicates the backing filesystem was unmounted.
	IN_UNMOUNT = 0x00002000
	// IN_Q_OVERFLOW indicates the event queued overflowed.
	IN_Q_OVERFLOW = 0x00004000
	// IN_IGNORED indicates a watch was removed, either implicitly or through
	// inotify_rm_watch(2).
	IN_IGNORED = 0x00008000
	// IN_ISDIR indicates the subject of an event was a directory.
	IN_ISDIR = 0x40000000
)

Inotify control events. These may be present in their own events, or ORed with other observable events.

View Source
const (
	// IN_ONLYDIR indicates that a path should be watched only if it's a
	// directory.
	IN_ONLYDIR = 0x01000000
	// IN_DONT_FOLLOW indicates that the watch path shouldn't be resolved if
	// it's a symlink.
	IN_DONT_FOLLOW = 0x02000000
	// IN_EXCL_UNLINK indicates events to this watch from unlinked objects
	// should be filtered out.
	IN_EXCL_UNLINK = 0x04000000
	// IN_MASK_ADD indicates the provided mask should be ORed into any existing
	// watch on the provided path.
	IN_MASK_ADD = 0x20000000
	// IN_ONESHOT indicates the watch should be removed after one event.
	IN_ONESHOT = 0x80000000
)

Feature flags for inotify_add_watch(2).

View Source
const (
	// IN_CLOEXEC is an alias for O_CLOEXEC. It indicates that the inotify
	// fd should be closed on exec(2) and friends.
	IN_CLOEXEC = 0x00080000
	// IN_NONBLOCK is an alias for O_NONBLOCK. It indicates I/O syscall on the
	// inotify fd should not block.
	IN_NONBLOCK = 0x00000800
)

Feature flags for inotify_init1(2).

View Source
const (
	TCGETS      = 0x00005401
	TCSETS      = 0x00005402
	TCSETSW     = 0x00005403
	TCSETSF     = 0x00005404
	TCSBRK      = 0x00005409
	TIOCEXCL    = 0x0000540c
	TIOCNXCL    = 0x0000540d
	TIOCSCTTY   = 0x0000540e
	TIOCGPGRP   = 0x0000540f
	TIOCSPGRP   = 0x00005410
	TIOCOUTQ    = 0x00005411
	TIOCSTI     = 0x00005412
	TIOCGWINSZ  = 0x00005413
	TIOCSWINSZ  = 0x00005414
	TIOCMGET    = 0x00005415
	TIOCMBIS    = 0x00005416
	TIOCMBIC    = 0x00005417
	TIOCMSET    = 0x00005418
	TIOCINQ     = 0x0000541b
	FIONREAD    = TIOCINQ
	FIONBIO     = 0x00005421
	TIOCSETD    = 0x00005423
	TIOCNOTTY   = 0x00005422
	TIOCGETD    = 0x00005424
	TCSBRKP     = 0x00005425
	TIOCSBRK    = 0x00005427
	TIOCCBRK    = 0x00005428
	TIOCGSID    = 0x00005429
	TIOCGPTN    = 0x80045430
	TIOCSPTLCK  = 0x40045431
	TIOCGDEV    = 0x80045432
	TIOCVHANGUP = 0x00005437
	TCFLSH      = 0x0000540b
	TIOCCONS    = 0x0000541d
	TIOCSSERIAL = 0x0000541f
	TIOCGEXCL   = 0x80045440
	TIOCGPTPEER = 0x80045441
	TIOCGICOUNT = 0x0000545d
	FIONCLEX    = 0x00005450
	FIOCLEX     = 0x00005451
	FIOASYNC    = 0x00005452
	FIOSETOWN   = 0x00008901
	SIOCSPGRP   = 0x00008902
	FIOGETOWN   = 0x00008903
	SIOCGPGRP   = 0x00008904
)

ioctl(2) requests provided by asm-generic/ioctls.h

These are ordered by request number (low byte).

View Source
const (
	SIOCGIFNAME    = 0x8910
	SIOCGIFCONF    = 0x8912
	SIOCGIFFLAGS   = 0x8913
	SIOCGIFADDR    = 0x8915
	SIOCGIFDSTADDR = 0x8917
	SIOCGIFBRDADDR = 0x8919
	SIOCGIFNETMASK = 0x891b
	SIOCGIFMETRIC  = 0x891d
	SIOCGIFMTU     = 0x8921
	SIOCGIFMEM     = 0x891f
	SIOCGIFHWADDR  = 0x8927
	SIOCGIFINDEX   = 0x8933
	SIOCGIFPFLAGS  = 0x8935
	SIOCGIFTXQLEN  = 0x8942
	SIOCETHTOOL    = 0x8946
	SIOCGMIIPHY    = 0x8947
	SIOCGMIIREG    = 0x8948
	SIOCGIFMAP     = 0x8970
)

ioctl(2) requests provided by uapi/linux/sockios.h

View Source
const (
	FS_IOC_GETFLAGS = 2148034049
	FS_VERITY_FL    = 1048576
)

Constants from uapi/linux/fs.h.

View Source
const (
	FS_VERITY_HASH_ALG_SHA256 = 1
	FS_VERITY_HASH_ALG_SHA512 = 2

	FS_IOC_ENABLE_VERITY  = 1082156677
	FS_IOC_MEASURE_VERITY = 3221513862
)

Constants from uapi/linux/fsverity.h.

View Source
const (
	KCOV_TRACE_PC  = 0
	KCOV_TRACE_CMP = 1
)

Kcov trace types from kernel/kcov.h.

View Source
const (
	KCOV_MODE_DISABLED  = 0
	KCOV_MODE_INIT      = 1
	KCOV_MODE_TRACE_PC  = 2
	KCOV_MODE_TRACE_CMP = 3
)

Kcov state constants from kernel/kcov.h.

View Source
const (
	IFF_TUN      = 0x0001
	IFF_TAP      = 0x0002
	IFF_NO_PI    = 0x1000
	IFF_NOFILTER = 0x1000
)

Flags from net/if_tun.h

View Source
const (
	IPPROTO_IP      = 0
	IPPROTO_ICMP    = 1
	IPPROTO_IGMP    = 2
	IPPROTO_IPIP    = 4
	IPPROTO_TCP     = 6
	IPPROTO_EGP     = 8
	IPPROTO_PUP     = 12
	IPPROTO_UDP     = 17
	IPPROTO_IDP     = 22
	IPPROTO_TP      = 29
	IPPROTO_DCCP    = 33
	IPPROTO_IPV6    = 41
	IPPROTO_RSVP    = 46
	IPPROTO_GRE     = 47
	IPPROTO_ESP     = 50
	IPPROTO_AH      = 51
	IPPROTO_MTP     = 92
	IPPROTO_BEETPH  = 94
	IPPROTO_ENCAP   = 98
	IPPROTO_PIM     = 103
	IPPROTO_COMP    = 108
	IPPROTO_SCTP    = 132
	IPPROTO_UDPLITE = 136
	IPPROTO_MPLS    = 137
	IPPROTO_RAW     = 255
)

IP protocols

View Source
const (
	IP_TOS                    = 1
	IP_TTL                    = 2
	IP_HDRINCL                = 3
	IP_OPTIONS                = 4
	IP_ROUTER_ALERT           = 5
	IP_RECVOPTS               = 6
	IP_RETOPTS                = 7
	IP_PKTINFO                = 8
	IP_PKTOPTIONS             = 9
	IP_MTU_DISCOVER           = 10
	IP_RECVERR                = 11
	IP_RECVTTL                = 12
	IP_RECVTOS                = 13
	IP_MTU                    = 14
	IP_FREEBIND               = 15
	IP_IPSEC_POLICY           = 16
	IP_XFRM_POLICY            = 17
	IP_PASSSEC                = 18
	IP_TRANSPARENT            = 19
	IP_ORIGDSTADDR            = 20
	IP_RECVORIGDSTADDR        = IP_ORIGDSTADDR
	IP_MINTTL                 = 21
	IP_NODEFRAG               = 22
	IP_CHECKSUM               = 23
	IP_BIND_ADDRESS_NO_PORT   = 24
	IP_RECVFRAGSIZE           = 25
	IP_MULTICAST_IF           = 32
	IP_MULTICAST_TTL          = 33
	IP_MULTICAST_LOOP         = 34
	IP_ADD_MEMBERSHIP         = 35
	IP_DROP_MEMBERSHIP        = 36
	IP_UNBLOCK_SOURCE         = 37
	IP_BLOCK_SOURCE           = 38
	IP_ADD_SOURCE_MEMBERSHIP  = 39
	IP_DROP_SOURCE_MEMBERSHIP = 40
	IP_MSFILTER               = 41
	MCAST_JOIN_GROUP          = 42
	MCAST_BLOCK_SOURCE        = 43
	MCAST_UNBLOCK_SOURCE      = 44
	MCAST_LEAVE_GROUP         = 45
	MCAST_JOIN_SOURCE_GROUP   = 46
	MCAST_LEAVE_SOURCE_GROUP  = 47
	MCAST_MSFILTER            = 48
	IP_MULTICAST_ALL          = 49
	IP_UNICAST_IF             = 50
)

Socket options from uapi/linux/in.h

View Source
const (
	IP_PMTUDISC_DONT      = 0
	IP_PMTUDISC_WANT      = 1
	IP_PMTUDISC_DO        = 2
	IP_PMTUDISC_PROBE     = 3
	IP_PMTUDISC_INTERFACE = 4
	IP_PMTUDISC_OMIT      = 5
)

IP_MTU_DISCOVER values from uapi/linux/in.h

View Source
const (
	IPV6_ADDRFORM         = 1
	IPV6_2292PKTINFO      = 2
	IPV6_2292HOPOPTS      = 3
	IPV6_2292DSTOPTS      = 4
	IPV6_2292RTHDR        = 5
	IPV6_2292PKTOPTIONS   = 6
	IPV6_CHECKSUM         = 7
	IPV6_2292HOPLIMIT     = 8
	IPV6_NEXTHOP          = 9
	IPV6_FLOWINFO         = 11
	IPV6_UNICAST_HOPS     = 16
	IPV6_MULTICAST_IF     = 17
	IPV6_MULTICAST_HOPS   = 18
	IPV6_MULTICAST_LOOP   = 19
	IPV6_ADD_MEMBERSHIP   = 20
	IPV6_DROP_MEMBERSHIP  = 21
	IPV6_ROUTER_ALERT     = 22
	IPV6_MTU_DISCOVER     = 23
	IPV6_MTU              = 24
	IPV6_RECVERR          = 25
	IPV6_V6ONLY           = 26
	IPV6_JOIN_ANYCAST     = 27
	IPV6_LEAVE_ANYCAST    = 28
	IPV6_MULTICAST_ALL    = 29
	IPV6_FLOWLABEL_MGR    = 32
	IPV6_FLOWINFO_SEND    = 33
	IPV6_IPSEC_POLICY     = 34
	IPV6_XFRM_POLICY      = 35
	IPV6_HDRINCL          = 36
	IPV6_RECVPKTINFO      = 49
	IPV6_PKTINFO          = 50
	IPV6_RECVHOPLIMIT     = 51
	IPV6_HOPLIMIT         = 52
	IPV6_RECVHOPOPTS      = 53
	IPV6_HOPOPTS          = 54
	IPV6_RTHDRDSTOPTS     = 55
	IPV6_RECVRTHDR        = 56
	IPV6_RTHDR            = 57
	IPV6_RECVDSTOPTS      = 58
	IPV6_DSTOPTS          = 59
	IPV6_RECVPATHMTU      = 60
	IPV6_PATHMTU          = 61
	IPV6_DONTFRAG         = 62
	IPV6_RECVTCLASS       = 66
	IPV6_TCLASS           = 67
	IPV6_AUTOFLOWLABEL    = 70
	IPV6_ADDR_PREFERENCES = 72
	IPV6_MINHOPCOUNT      = 73
	IPV6_ORIGDSTADDR      = 74
	IPV6_RECVORIGDSTADDR  = IPV6_ORIGDSTADDR
	IPV6_TRANSPARENT      = 75
	IPV6_UNICAST_IF       = 76
	IPV6_RECVFRAGSIZE     = 77
	IPV6_FREEBIND         = 78
)

Socket options from uapi/linux/in6.h

View Source
const (
	IPC_RMID = 0
	IPC_SET  = 1
	IPC_STAT = 2
	IPC_INFO = 3
)

Control commands used with semctl, shmctl, and msgctl.

Source: include/uapi/linux/ipc.h.

View Source
const (
	IPC_CREAT  = 00001000
	IPC_EXCL   = 00002000
	IPC_NOWAIT = 00004000
)

Resource get request flags.

Source: include/uapi/linux/ipc.h

View Source
const (
	RLIMIT_CPU        = 0
	RLIMIT_FSIZE      = 1
	RLIMIT_DATA       = 2
	RLIMIT_STACK      = 3
	RLIMIT_CORE       = 4
	RLIMIT_RSS        = 5
	RLIMIT_NPROC      = 6
	RLIMIT_NOFILE     = 7
	RLIMIT_MEMLOCK    = 8
	RLIMIT_AS         = 9
	RLIMIT_LOCKS      = 10
	RLIMIT_SIGPENDING = 11
	RLIMIT_MSGQUEUE   = 12
	RLIMIT_NICE       = 13
	RLIMIT_RTPRIO     = 14
	RLIMIT_RTTIME     = 15
)

Resources for getrlimit(2)/setrlimit(2)/prlimit(2).

View Source
const (
	// RLimInfinity is RLIM_INFINITY on Linux.
	RLimInfinity = ^uint64(0)

	// DefaultStackSoftLimit is called _STK_LIM in Linux.
	DefaultStackSoftLimit = 8 * 1024 * 1024

	// DefaultNprocLimit is defined in kernel/fork.c:set_max_threads, and
	// called MAX_THREADS / 2 in Linux.
	DefaultNprocLimit = FUTEX_TID_MASK / 2

	// DefaultNofileSoftLimit is called INR_OPEN_CUR in Linux.
	DefaultNofileSoftLimit = 1024

	// DefaultNofileHardLimit is called INR_OPEN_MAX in Linux.
	DefaultNofileHardLimit = 4096

	// DefaultMemlockLimit is called MLOCK_LIMIT in Linux.
	DefaultMemlockLimit = 64 * 1024

	// DefaultMsgqueueLimit is called MQ_BYTES_MAX in Linux.
	DefaultMsgqueueLimit = 819200
)
View Source
const (
	MEMBARRIER_CMD_QUERY                                = 0
	MEMBARRIER_CMD_GLOBAL                               = (1 << 0)
	MEMBARRIER_CMD_GLOBAL_EXPEDITED                     = (1 << 1)
	MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED            = (1 << 2)
	MEMBARRIER_CMD_PRIVATE_EXPEDITED                    = (1 << 3)
	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED           = (1 << 4)
	MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE          = (1 << 5)
	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6)
	MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ               = (1 << 7)
	MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ      = (1 << 8)
)

membarrier(2) commands, from include/uapi/linux/membarrier.h.

View Source
const (
	PROT_NONE      = 0
	PROT_READ      = 1 << 0
	PROT_WRITE     = 1 << 1
	PROT_EXEC      = 1 << 2
	PROT_SEM       = 1 << 3
	PROT_GROWSDOWN = 1 << 24
	PROT_GROWSUP   = 1 << 25
)

Protections for mmap(2).

View Source
const (
	MAP_SHARED     = 1 << 0
	MAP_PRIVATE    = 1 << 1
	MAP_FIXED      = 1 << 4
	MAP_ANONYMOUS  = 1 << 5
	MAP_32BIT      = 1 << 6 // arch/x86/include/uapi/asm/mman.h
	MAP_GROWSDOWN  = 1 << 8
	MAP_DENYWRITE  = 1 << 11
	MAP_EXECUTABLE = 1 << 12
	MAP_LOCKED     = 1 << 13
	MAP_NORESERVE  = 1 << 14
	MAP_POPULATE   = 1 << 15
	MAP_NONBLOCK   = 1 << 16
	MAP_STACK      = 1 << 17
	MAP_HUGETLB    = 1 << 18
)

Flags for mmap(2).

View Source
const (
	MREMAP_MAYMOVE = 1 << 0
	MREMAP_FIXED   = 1 << 1
)

Flags for mremap(2).

View Source
const (
	MCL_CURRENT = 1
	MCL_FUTURE  = 2
	MCL_ONFAULT = 4
)

Flags for mlockall(2).

View Source
const (
	MADV_NORMAL       = 0
	MADV_RANDOM       = 1
	MADV_SEQUENTIAL   = 2
	MADV_WILLNEED     = 3
	MADV_DONTNEED     = 4
	MADV_REMOVE       = 9
	MADV_DONTFORK     = 10
	MADV_DOFORK       = 11
	MADV_MERGEABLE    = 12
	MADV_UNMERGEABLE  = 13
	MADV_HUGEPAGE     = 14
	MADV_NOHUGEPAGE   = 15
	MADV_DONTDUMP     = 16
	MADV_DODUMP       = 17
	MADV_HWPOISON     = 100
	MADV_SOFT_OFFLINE = 101
	MADV_NOMAJFAULT   = 200
	MADV_DONTCHGME    = 201
)

Advice for madvise(2).

View Source
const (
	MS_ASYNC      = 1 << 0
	MS_INVALIDATE = 1 << 1
	MS_SYNC       = 1 << 2
)

Flags for msync(2).

View Source
const (
	MPOL_F_NODE         = 1 << 0
	MPOL_F_ADDR         = 1 << 1
	MPOL_F_MEMS_ALLOWED = 1 << 2
)

Flags for get_mempolicy(2).

View Source
const (
	MPOL_F_RELATIVE_NODES = 1 << 14
	MPOL_F_STATIC_NODES   = 1 << 15

	MPOL_MODE_FLAGS = (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES)
)

Flags for set_mempolicy(2).

View Source
const (
	MPOL_MF_STRICT   = 1 << 0
	MPOL_MF_MOVE     = 1 << 1
	MPOL_MF_MOVE_ALL = 1 << 2

	MPOL_MF_VALID = MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL
)

Flags for mbind(2).

View Source
const (
	NF_INET_PRE_ROUTING  = 0
	NF_INET_LOCAL_IN     = 1
	NF_INET_FORWARD      = 2
	NF_INET_LOCAL_OUT    = 3
	NF_INET_POST_ROUTING = 4
	NF_INET_NUMHOOKS     = 5
)

Hooks into the network stack. These correspond to values in include/uapi/linux/netfilter.h.

View Source
const (
	NF_DROP        = 0
	NF_ACCEPT      = 1
	NF_STOLEN      = 2
	NF_QUEUE       = 3
	NF_REPEAT      = 4
	NF_STOP        = 5
	NF_MAX_VERDICT = NF_STOP
	// NF_RETURN is defined in include/uapi/linux/netfilter/x_tables.h.
	NF_RETURN = -NF_REPEAT - 1
)

Verdicts that can be returned by targets. These correspond to values in include/uapi/linux/netfilter.h

View Source
const (
	IPT_BASE_CTL            = 64
	IPT_SO_SET_REPLACE      = IPT_BASE_CTL
	IPT_SO_SET_ADD_COUNTERS = IPT_BASE_CTL + 1
	IPT_SO_SET_MAX          = IPT_SO_SET_ADD_COUNTERS

	IPT_SO_GET_INFO            = IPT_BASE_CTL
	IPT_SO_GET_ENTRIES         = IPT_BASE_CTL + 1
	IPT_SO_GET_REVISION_MATCH  = IPT_BASE_CTL + 2
	IPT_SO_GET_REVISION_TARGET = IPT_BASE_CTL + 3
	IPT_SO_GET_MAX             = IPT_SO_GET_REVISION_TARGET
)

Socket options for SOL_SOCKET. These correspond to values in include/uapi/linux/netfilter_ipv4/ip_tables.h.

View Source
const (
	XT_FUNCTION_MAXNAMELEN  = 30
	XT_EXTENSION_MAXNAMELEN = 29
	XT_TABLE_MAXNAMELEN     = 32
)

Name lengths. These correspond to values in include/uapi/linux/netfilter/x_tables.h.

View Source
const (
	// Invert the meaning of InputInterface.
	IPT_INV_VIA_IN = 0x01
	// Invert the meaning of OutputInterface.
	IPT_INV_VIA_OUT = 0x02
	// Unclear what this is, as no references to it exist in the kernel.
	IPT_INV_TOS = 0x04
	// Invert the meaning of Src.
	IPT_INV_SRCIP = 0x08
	// Invert the meaning of Dst.
	IPT_INV_DSTIP = 0x10
	// Invert the meaning of the IPT_F_FRAG flag.
	IPT_INV_FRAG = 0x20
	// Invert the meaning of the Protocol field.
	IPT_INV_PROTO = 0x40
	// Enable all flags.
	IPT_INV_MASK = 0x7F
)

Flags in IPTIP.InverseFlags. Corresponding constants are in include/uapi/linux/netfilter_ipv4/ip_tables.h.

View Source
const (
	NF_NAT_RANGE_MAP_IPS            = 1 << 0
	NF_NAT_RANGE_PROTO_SPECIFIED    = 1 << 1
	NF_NAT_RANGE_PROTO_RANDOM       = 1 << 2
	NF_NAT_RANGE_PERSISTENT         = 1 << 3
	NF_NAT_RANGE_PROTO_RANDOM_FULLY = 1 << 4
	NF_NAT_RANGE_PROTO_RANDOM_ALL   = (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
	NF_NAT_RANGE_MASK               = (NF_NAT_RANGE_MAP_IPS |
		NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM |
		NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
)

Flag values for NfNATIPV4Range. The values indicate whether to map protocol specific part(ports) or IPs. It corresponds to values in include/uapi/linux/netfilter/nf_nat.h.

View Source
const (
	// Invert the meaning of SourcePortStart/End.
	XT_TCP_INV_SRCPT = 0x01
	// Invert the meaning of DestinationPortStart/End.
	XT_TCP_INV_DSTPT = 0x02
	// Invert the meaning of FlagCompare.
	XT_TCP_INV_FLAGS = 0x04
	// Invert the meaning of Option.
	XT_TCP_INV_OPTION = 0x08
	// Enable all flags.
	XT_TCP_INV_MASK = 0x0F
)

Flags in XTTCP.InverseFlags. Corresponding constants are in include/uapi/linux/netfilter/xt_tcpudp.h.

View Source
const (
	// Invert the meaning of SourcePortStart/End.
	XT_UDP_INV_SRCPT = 0x01
	// Invert the meaning of DestinationPortStart/End.
	XT_UDP_INV_DSTPT = 0x02
	// Enable all flags.
	XT_UDP_INV_MASK = 0x03
)

Flags in XTUDP.InverseFlags. Corresponding constants are in include/uapi/linux/netfilter/xt_tcpudp.h.

View Source
const (
	// Match the UID of the packet.
	XT_OWNER_UID = 1 << 0
	// Match the GID of the packet.
	XT_OWNER_GID = 1 << 1
	// Match if the socket exists for the packet. Forwarded
	// packets do not have an associated socket.
	XT_OWNER_SOCKET = 1 << 2
)

Flags in IPTOwnerInfo.Match. Corresponding constants are in include/uapi/linux/netfilter/xt_owner.h.

View Source
const (
	IP6T_BASE_CTL            = 64
	IP6T_SO_SET_REPLACE      = IPT_BASE_CTL
	IP6T_SO_SET_ADD_COUNTERS = IPT_BASE_CTL + 1
	IP6T_SO_SET_MAX          = IPT_SO_SET_ADD_COUNTERS

	IP6T_SO_GET_INFO            = IPT_BASE_CTL
	IP6T_SO_GET_ENTRIES         = IPT_BASE_CTL + 1
	IP6T_SO_GET_REVISION_MATCH  = IPT_BASE_CTL + 4
	IP6T_SO_GET_REVISION_TARGET = IPT_BASE_CTL + 5
	IP6T_SO_GET_MAX             = IP6T_SO_GET_REVISION_TARGET
)

Socket options for SOL_SOCLET. These correspond to values in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

View Source
const (
	// Whether to check the Protocol field.
	IP6T_F_PROTO = 0x01
	// Whether to match the TOS field.
	IP6T_F_TOS = 0x02
	// Indicates that the jump target is an aboslute GOTO, not an offset.
	IP6T_F_GOTO = 0x04
	// Enables all flags.
	IP6T_F_MASK = 0x07
)

Flags in IP6TIP.Flags. Corresponding constants are in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

View Source
const (
	// Invert the meaning of InputInterface.
	IP6T_INV_VIA_IN = 0x01
	// Invert the meaning of OutputInterface.
	IP6T_INV_VIA_OUT = 0x02
	// Invert the meaning of TOS.
	IP6T_INV_TOS = 0x04
	// Invert the meaning of Src.
	IP6T_INV_SRCIP = 0x08
	// Invert the meaning of Dst.
	IP6T_INV_DSTIP = 0x10
	// Invert the meaning of the IPT_F_FRAG flag.
	IP6T_INV_FRAG = 0x20
	// Enable all flags.
	IP6T_INV_MASK = 0x7F
)

Flags in IP6TIP.InverseFlags. Corresponding constants are in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

View Source
const (
	NETLINK_ROUTE          = 0
	NETLINK_UNUSED         = 1
	NETLINK_USERSOCK       = 2
	NETLINK_FIREWALL       = 3
	NETLINK_SOCK_DIAG      = 4
	NETLINK_NFLOG          = 5
	NETLINK_XFRM           = 6
	NETLINK_SELINUX        = 7
	NETLINK_ISCSI          = 8
	NETLINK_AUDIT          = 9
	NETLINK_FIB_LOOKUP     = 10
	NETLINK_CONNECTOR      = 11
	NETLINK_NETFILTER      = 12
	NETLINK_IP6_FW         = 13
	NETLINK_DNRTMSG        = 14
	NETLINK_KOBJECT_UEVENT = 15
	NETLINK_GENERIC        = 16
	NETLINK_SCSITRANSPORT  = 18
	NETLINK_ECRYPTFS       = 19
	NETLINK_RDMA           = 20
	NETLINK_CRYPTO         = 21
)

Netlink protocols, from uapi/linux/netlink.h.

View Source
const (
	NLM_F_REQUEST   = 0x1
	NLM_F_MULTI     = 0x2
	NLM_F_ACK       = 0x4
	NLM_F_ECHO      = 0x8
	NLM_F_DUMP_INTR = 0x10
	NLM_F_ROOT      = 0x100
	NLM_F_MATCH     = 0x200
	NLM_F_ATOMIC    = 0x400
	NLM_F_DUMP      = NLM_F_ROOT | NLM_F_MATCH
	NLM_F_REPLACE   = 0x100
	NLM_F_EXCL      = 0x200
	NLM_F_CREATE    = 0x400
	NLM_F_APPEND    = 0x800
)

Netlink message header flags, from uapi/linux/netlink.h.

View Source
const (
	NLMSG_NOOP    = 0x1
	NLMSG_ERROR   = 0x2
	NLMSG_DONE    = 0x3
	NLMSG_OVERRUN = 0x4

	// NLMSG_MIN_TYPE is the first value for protocol-level types.
	NLMSG_MIN_TYPE = 0x10
)

Standard netlink message types, from uapi/linux/netlink.h.

View Source
const (
	NETLINK_ADD_MEMBERSHIP   = 1
	NETLINK_DROP_MEMBERSHIP  = 2
	NETLINK_PKTINFO          = 3
	NETLINK_BROADCAST_ERROR  = 4
	NETLINK_NO_ENOBUFS       = 5
	NETLINK_LISTEN_ALL_NSID  = 8
	NETLINK_LIST_MEMBERSHIPS = 9
	NETLINK_CAP_ACK          = 10
	NETLINK_EXT_ACK          = 11
	NETLINK_DUMP_STRICT_CHK  = 12
)

Socket options, from uapi/linux/netlink.h.

View Source
const (
	RTM_NEWLINK = 16
	RTM_DELLINK = 17
	RTM_GETLINK = 18
	RTM_SETLINK = 19

	RTM_NEWADDR = 20
	RTM_DELADDR = 21
	RTM_GETADDR = 22

	RTM_NEWROUTE = 24
	RTM_DELROUTE = 25
	RTM_GETROUTE = 26

	RTM_NEWNEIGH = 28
	RTM_DELNEIGH = 29
	RTM_GETNEIGH = 30

	RTM_NEWRULE = 32
	RTM_DELRULE = 33
	RTM_GETRULE = 34

	RTM_NEWQDISC = 36
	RTM_DELQDISC = 37
	RTM_GETQDISC = 38

	RTM_NEWTCLASS = 40
	RTM_DELTCLASS = 41
	RTM_GETTCLASS = 42

	RTM_NEWTFILTER = 44
	RTM_DELTFILTER = 45
	RTM_GETTFILTER = 46

	RTM_NEWACTION = 48
	RTM_DELACTION = 49
	RTM_GETACTION = 50

	RTM_NEWPREFIX = 52

	RTM_GETMULTICAST = 58

	RTM_GETANYCAST = 62

	RTM_NEWNEIGHTBL = 64
	RTM_GETNEIGHTBL = 66
	RTM_SETNEIGHTBL = 67

	RTM_NEWNDUSEROPT = 68

	RTM_NEWADDRLABEL = 72
	RTM_DELADDRLABEL = 73
	RTM_GETADDRLABEL = 74

	RTM_GETDCB = 78
	RTM_SETDCB = 79

	RTM_NEWNETCONF = 80
	RTM_GETNETCONF = 82

	RTM_NEWMDB = 84
	RTM_DELMDB = 85
	RTM_GETMDB = 86

	RTM_NEWNSID = 88
	RTM_DELNSID = 89
	RTM_GETNSID = 90
)

Netlink message types for NETLINK_ROUTE sockets, from uapi/linux/rtnetlink.h.

View Source
const (
	IFF_UP          = 1 << 0
	IFF_BROADCAST   = 1 << 1
	IFF_DEBUG       = 1 << 2
	IFF_LOOPBACK    = 1 << 3
	IFF_POINTOPOINT = 1 << 4
	IFF_NOTRAILERS  = 1 << 5
	IFF_RUNNING     = 1 << 6
	IFF_NOARP       = 1 << 7
	IFF_PROMISC     = 1 << 8
	IFF_ALLMULTI    = 1 << 9
	IFF_MASTER      = 1 << 10
	IFF_SLAVE       = 1 << 11
	IFF_MULTICAST   = 1 << 12
	IFF_PORTSEL     = 1 << 13
	IFF_AUTOMEDIA   = 1 << 14
	IFF_DYNAMIC     = 1 << 15
	IFF_LOWER_UP    = 1 << 16
	IFF_DORMANT     = 1 << 17
	IFF_ECHO        = 1 << 18
)

Interface flags, from uapi/linux/if.h.

View Source
const (
	IFLA_UNSPEC          = 0
	IFLA_ADDRESS         = 1
	IFLA_BROADCAST       = 2
	IFLA_IFNAME          = 3
	IFLA_MTU             = 4
	IFLA_LINK            = 5
	IFLA_QDISC           = 6
	IFLA_STATS           = 7
	IFLA_COST            = 8
	IFLA_PRIORITY        = 9
	IFLA_MASTER          = 10
	IFLA_WIRELESS        = 11
	IFLA_PROTINFO        = 12
	IFLA_TXQLEN          = 13
	IFLA_MAP             = 14
	IFLA_WEIGHT          = 15
	IFLA_OPERSTATE       = 16
	IFLA_LINKMODE        = 17
	IFLA_LINKINFO        = 18
	IFLA_NET_NS_PID      = 19
	IFLA_IFALIAS         = 20
	IFLA_NUM_VF          = 21
	IFLA_VFINFO_LIST     = 22
	IFLA_STATS64         = 23
	IFLA_VF_PORTS        = 24
	IFLA_PORT_SELF       = 25
	IFLA_AF_SPEC         = 26
	IFLA_GROUP           = 27
	IFLA_NET_NS_FD       = 28
	IFLA_EXT_MASK        = 29
	IFLA_PROMISCUITY     = 30
	IFLA_NUM_TX_QUEUES   = 31
	IFLA_NUM_RX_QUEUES   = 32
	IFLA_CARRIER         = 33
	IFLA_PHYS_PORT_ID    = 34
	IFLA_CARRIER_CHANGES = 35
	IFLA_PHYS_SWITCH_ID  = 36
	IFLA_LINK_NETNSID    = 37
	IFLA_PHYS_PORT_NAME  = 38
	IFLA_PROTO_DOWN      = 39
	IFLA_GSO_MAX_SEGS    = 40
	IFLA_GSO_MAX_SIZE    = 41
)

Interface link attributes, from uapi/linux/if_link.h.

View Source
const (
	IFA_UNSPEC    = 0
	IFA_ADDRESS   = 1
	IFA_LOCAL     = 2
	IFA_LABEL     = 3
	IFA_BROADCAST = 4
	IFA_ANYCAST   = 5
	IFA_CACHEINFO = 6
	IFA_MULTICAST = 7
	IFA_FLAGS     = 8
)

Interface attributes, from uapi/linux/if_addr.h.

View Source
const (
	ARPHRD_NONE     = 65534
	ARPHRD_ETHER    = 1
	ARPHRD_LOOPBACK = 772
)

Device types, from uapi/linux/if_arp.h.

View Source
const (
	// RTN_UNSPEC represents an unspecified route type.
	RTN_UNSPEC = 0

	// RTN_UNICAST represents a unicast route.
	RTN_UNICAST = 1

	// RTN_LOCAL represents a route that is accepted locally.
	RTN_LOCAL = 2

	// RTN_BROADCAST represents a broadcast route (Traffic is accepted locally
	// as broadcast, and sent as broadcast).
	RTN_BROADCAST = 3

	// RTN_ANYCAST represents a anycast route (Traffic is accepted locally as
	// broadcast but sent as unicast).
	RTN_ANYCAST = 6

	// RTN_MULTICAST represents a multicast route.
	RTN_MULTICAST = 5

	// RTN_BLACKHOLE represents a route where all traffic is dropped.
	RTN_BLACKHOLE = 6

	// RTN_UNREACHABLE represents a route where the destination is unreachable.
	RTN_UNREACHABLE = 7

	RTN_PROHIBIT = 8
	RTN_THROW    = 9
	RTN_NAT      = 10
	RTN_XRESOLVE = 11
)

Route types, from uapi/linux/rtnetlink.h.

View Source
const (
	RTPROT_UNSPEC   = 0
	RTPROT_REDIRECT = 1
	RTPROT_KERNEL   = 2
	RTPROT_BOOT     = 3
	RTPROT_STATIC   = 4
	RTPROT_GATED    = 8
	RTPROT_RA       = 9
	RTPROT_MRT      = 10
	RTPROT_ZEBRA    = 11
	RTPROT_BIRD     = 12
	RTPROT_DNROUTED = 13
	RTPROT_XORP     = 14
	RTPROT_NTK      = 15
	RTPROT_DHCP     = 16
	RTPROT_MROUTED  = 17
	RTPROT_BABEL    = 42
	RTPROT_BGP      = 186
	RTPROT_ISIS     = 187
	RTPROT_OSPF     = 188
	RTPROT_RIP      = 189
	RTPROT_EIGRP    = 192
)

Route protocols/origins, from uapi/linux/rtnetlink.h.

View Source
const (
	RT_SCOPE_UNIVERSE = 0
	RT_SCOPE_SITE     = 200
	RT_SCOPE_LINK     = 253
	RT_SCOPE_HOST     = 254
	RT_SCOPE_NOWHERE  = 255
)

Route scopes, from uapi/linux/rtnetlink.h.

View Source
const (
	RTM_F_NOTIFY       = 0x100
	RTM_F_CLONED       = 0x200
	RTM_F_EQUALIZE     = 0x400
	RTM_F_PREFIX       = 0x800
	RTM_F_LOOKUP_TABLE = 0x1000
	RTM_F_FIB_MATCH    = 0x2000
)

Route flags, from uapi/linux/rtnetlink.h.

View Source
const (
	RT_TABLE_UNSPEC  = 0
	RT_TABLE_COMPAT  = 252
	RT_TABLE_DEFAULT = 253
	RT_TABLE_MAIN    = 254
	RT_TABLE_LOCAL   = 255
)

Route tables, from uapi/linux/rtnetlink.h.

View Source
const (
	RTA_UNSPEC        = 0
	RTA_DST           = 1
	RTA_SRC           = 2
	RTA_IIF           = 3
	RTA_OIF           = 4
	RTA_GATEWAY       = 5
	RTA_PRIORITY      = 6
	RTA_PREFSRC       = 7
	RTA_METRICS       = 8
	RTA_MULTIPATH     = 9
	RTA_PROTOINFO     = 10
	RTA_FLOW          = 11
	RTA_CACHEINFO     = 12
	RTA_SESSION       = 13
	RTA_MP_ALGO       = 14
	RTA_TABLE         = 15
	RTA_MARK          = 16
	RTA_MFC_STATS     = 17
	RTA_VIA           = 18
	RTA_NEWDST        = 19
	RTA_PREF          = 20
	RTA_ENCAP_TYPE    = 21
	RTA_ENCAP         = 22
	RTA_EXPIRES       = 23
	RTA_PAD           = 24
	RTA_UID           = 25
	RTA_TTL_PROPAGATE = 26
	RTA_IP_PROTO      = 27
	RTA_SPORT         = 28
	RTA_DPORT         = 29
)

Route attributes, from uapi/linux/rtnetlink.h.

View Source
const (
	RTF_GATEWAY = 0x2
	RTF_UP      = 0x1
)

Route flags, from include/uapi/linux/route.h.

View Source
const (
	POLLIN         = 0x0001
	POLLPRI        = 0x0002
	POLLOUT        = 0x0004
	POLLERR        = 0x0008
	POLLHUP        = 0x0010
	POLLNVAL       = 0x0020
	POLLRDNORM     = 0x0040
	POLLRDBAND     = 0x0080
	POLLWRNORM     = 0x0100
	POLLWRBAND     = 0x0200
	POLLMSG        = 0x0400
	POLLREMOVE     = 0x1000
	POLLRDHUP      = 0x2000
	POLLFREE       = 0x4000
	POLL_BUSY_LOOP = 0x8000
)

Poll event flags, used by poll(2)/ppoll(2) and/or epoll_ctl(2)/epoll_wait(2), from uapi/asm-generic/poll.h.

View Source
const (
	// PR_SET_PDEATHSIG sets the process' death signal.
	PR_SET_PDEATHSIG = 1

	// PR_GET_PDEATHSIG gets the process' death signal.
	PR_GET_PDEATHSIG = 2

	// PR_GET_DUMPABLE gets the process' dumpable flag.
	PR_GET_DUMPABLE = 3

	// PR_SET_DUMPABLE sets the process' dumpable flag.
	PR_SET_DUMPABLE = 4

	// PR_GET_KEEPCAPS gets the value of the keep capabilities flag.
	PR_GET_KEEPCAPS = 7

	// PR_SET_KEEPCAPS sets the value of the keep capabilities flag.
	PR_SET_KEEPCAPS = 8

	// PR_GET_TIMING gets the process' timing method.
	PR_GET_TIMING = 13

	// PR_SET_TIMING sets the process' timing method.
	PR_SET_TIMING = 14

	// PR_SET_NAME sets the process' name.
	PR_SET_NAME = 15

	// PR_GET_NAME gets the process' name.
	PR_GET_NAME = 16

	// PR_GET_SECCOMP gets a process' seccomp mode.
	PR_GET_SECCOMP = 21

	// PR_SET_SECCOMP sets a process' seccomp mode.
	PR_SET_SECCOMP = 22

	// PR_CAPBSET_READ gets the capability bounding set.
	PR_CAPBSET_READ = 23

	// PR_CAPBSET_DROP sets the capability bounding set.
	PR_CAPBSET_DROP = 24

	// PR_GET_TSC gets the value of the flag determining whether the
	// timestamp counter can be read.
	PR_GET_TSC = 25

	// PR_SET_TSC sets the value of the flag determining whether the
	// timestamp counter can be read.
	PR_SET_TSC = 26

	// PR_SET_TIMERSLACK sets the process' time slack.
	PR_SET_TIMERSLACK = 29

	// PR_GET_TIMERSLACK gets the process' time slack.
	PR_GET_TIMERSLACK = 30

	// PR_TASK_PERF_EVENTS_DISABLE disables all performance counters
	// attached to the calling process.
	PR_TASK_PERF_EVENTS_DISABLE = 31

	// PR_TASK_PERF_EVENTS_ENABLE enables all performance counters attached
	// to the calling process.
	PR_TASK_PERF_EVENTS_ENABLE = 32

	// PR_MCE_KILL sets the machine check memory corruption kill policy for
	// the calling thread.
	PR_MCE_KILL = 33

	// PR_MCE_KILL_GET gets the machine check memory corruption kill policy
	// for the calling thread.
	PR_MCE_KILL_GET = 34

	// PR_SET_MM modifies certain kernel memory map descriptor fields of
	// the calling process. See prctl(2) for more information.
	PR_SET_MM = 35

	PR_SET_MM_START_CODE  = 1
	PR_SET_MM_END_CODE    = 2
	PR_SET_MM_START_DATA  = 3
	PR_SET_MM_END_DATA    = 4
	PR_SET_MM_START_STACK = 5
	PR_SET_MM_START_BRK   = 6
	PR_SET_MM_BRK         = 7
	PR_SET_MM_ARG_START   = 8
	PR_SET_MM_ARG_END     = 9
	PR_SET_MM_ENV_START   = 10
	PR_SET_MM_ENV_END     = 11
	PR_SET_MM_AUXV        = 12
	// PR_SET_MM_EXE_FILE supersedes the /proc/pid/exe symbolic link with a
	// new one pointing to a new executable file identified by the file
	// descriptor provided in arg3 argument. See prctl(2) for more
	// information.
	PR_SET_MM_EXE_FILE = 13
	PR_SET_MM_MAP      = 14
	PR_SET_MM_MAP_SIZE = 15

	// PR_SET_CHILD_SUBREAPER sets the "child subreaper" attribute of the
	// calling process.
	PR_SET_CHILD_SUBREAPER = 36

	// PR_GET_CHILD_SUBREAPER gets the "child subreaper" attribute of the
	// calling process.
	PR_GET_CHILD_SUBREAPER = 37

	// PR_SET_NO_NEW_PRIVS sets the calling thread's no_new_privs bit.
	PR_SET_NO_NEW_PRIVS = 38

	// PR_GET_NO_NEW_PRIVS gets the calling thread's no_new_privs bit.
	PR_GET_NO_NEW_PRIVS = 39

	// PR_GET_TID_ADDRESS retrieves the clear_child_tid address.
	PR_GET_TID_ADDRESS = 40

	// PR_SET_THP_DISABLE sets the state of the "THP disable" flag for the
	// calling thread.
	PR_SET_THP_DISABLE = 41

	// PR_GET_THP_DISABLE gets the state of the "THP disable" flag for the
	// calling thread.
	PR_GET_THP_DISABLE = 42

	// PR_MPX_ENABLE_MANAGEMENT enables kernel management of Memory
	// Protection eXtensions (MPX) bounds tables.
	PR_MPX_ENABLE_MANAGEMENT = 43

	// PR_MPX_DISABLE_MANAGEMENT disables kernel management of Memory
	// Protection eXtensions (MPX) bounds tables.
	PR_MPX_DISABLE_MANAGEMENT = 44
)

PR_* flags, from <linux/pcrtl.h> for prctl(2).

View Source
const (
	ARCH_SET_GS    = 0x1001
	ARCH_SET_FS    = 0x1002
	ARCH_GET_FS    = 0x1003
	ARCH_GET_GS    = 0x1004
	ARCH_SET_CPUID = 0x1012
)

From <asm/prctl.h> Flags are used in syscall arch_prctl(2).

View Source
const (
	SUID_DUMP_DISABLE = 0
	SUID_DUMP_USER    = 1
	SUID_DUMP_ROOT    = 2
)

Flags for prctl(PR_SET_DUMPABLE), defined in include/linux/sched/coredump.h.

View Source
const (
	PTRACE_TRACEME              = 0
	PTRACE_PEEKTEXT             = 1
	PTRACE_PEEKDATA             = 2
	PTRACE_PEEKUSR              = 3
	PTRACE_POKETEXT             = 4
	PTRACE_POKEDATA             = 5
	PTRACE_POKEUSR              = 6
	PTRACE_CONT                 = 7
	PTRACE_KILL                 = 8
	PTRACE_SINGLESTEP           = 9
	PTRACE_ATTACH               = 16
	PTRACE_DETACH               = 17
	PTRACE_SYSCALL              = 24
	PTRACE_SETOPTIONS           = 0x4200
	PTRACE_GETEVENTMSG          = 0x4201
	PTRACE_GETSIGINFO           = 0x4202
	PTRACE_SETSIGINFO           = 0x4203
	PTRACE_GETREGSET            = 0x4204
	PTRACE_SETREGSET            = 0x4205
	PTRACE_SEIZE                = 0x4206
	PTRACE_INTERRUPT            = 0x4207
	PTRACE_LISTEN               = 0x4208
	PTRACE_PEEKSIGINFO          = 0x4209
	PTRACE_GETSIGMASK           = 0x420a
	PTRACE_SETSIGMASK           = 0x420b
	PTRACE_SECCOMP_GET_FILTER   = 0x420c
	PTRACE_SECCOMP_GET_METADATA = 0x420d
)

ptrace commands from include/uapi/linux/ptrace.h.

View Source
const (
	PTRACE_GETREGS           = 12
	PTRACE_SETREGS           = 13
	PTRACE_GETFPREGS         = 14
	PTRACE_SETFPREGS         = 15
	PTRACE_GETFPXREGS        = 18
	PTRACE_SETFPXREGS        = 19
	PTRACE_OLDSETOPTIONS     = 21
	PTRACE_GET_THREAD_AREA   = 25
	PTRACE_SET_THREAD_AREA   = 26
	PTRACE_ARCH_PRCTL        = 30
	PTRACE_SYSEMU            = 31
	PTRACE_SYSEMU_SINGLESTEP = 32
	PTRACE_SINGLEBLOCK       = 33
)

ptrace commands from arch/x86/include/uapi/asm/ptrace-abi.h.

View Source
const (
	PTRACE_EVENT_FORK       = 1
	PTRACE_EVENT_VFORK      = 2
	PTRACE_EVENT_CLONE      = 3
	PTRACE_EVENT_EXEC       = 4
	PTRACE_EVENT_VFORK_DONE = 5
	PTRACE_EVENT_EXIT       = 6
	PTRACE_EVENT_SECCOMP    = 7
	PTRACE_EVENT_STOP       = 128
)

ptrace event codes from include/uapi/linux/ptrace.h.

View Source
const (
	PTRACE_O_TRACESYSGOOD    = 1
	PTRACE_O_TRACEFORK       = 1 << PTRACE_EVENT_FORK
	PTRACE_O_TRACEVFORK      = 1 << PTRACE_EVENT_VFORK
	PTRACE_O_TRACECLONE      = 1 << PTRACE_EVENT_CLONE
	PTRACE_O_TRACEEXEC       = 1 << PTRACE_EVENT_EXEC
	PTRACE_O_TRACEVFORKDONE  = 1 << PTRACE_EVENT_VFORK_DONE
	PTRACE_O_TRACEEXIT       = 1 << PTRACE_EVENT_EXIT
	PTRACE_O_TRACESECCOMP    = 1 << PTRACE_EVENT_SECCOMP
	PTRACE_O_EXITKILL        = 1 << 20
	PTRACE_O_SUSPEND_SECCOMP = 1 << 21
)

PTRACE_SETOPTIONS options from include/uapi/linux/ptrace.h.

View Source
const (
	// RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT inhibits restart on preemption.
	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1 << 0

	// RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL inhibits restart on signal
	// delivery.
	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 1 << 1

	// RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE inhibits restart on CPU
	// migration.
	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 1 << 2
)

Critical section flags used in RSeqCriticalSection.Flags and RSeq.Flags.

Defined in include/uapi/linux/rseq.h.

View Source
const (
	// SizeOfRSeqCriticalSection is the size of RSeqCriticalSection.
	SizeOfRSeqCriticalSection = 32

	// SizeOfRSeqSignature is the size of the signature immediately
	// preceding RSeqCriticalSection.Abort.
	SizeOfRSeqSignature = 4
)
View Source
const (
	// RSEQ_CPU_ID_UNINITIALIZED indicates that this thread has not
	// performed rseq initialization.
	RSEQ_CPU_ID_UNINITIALIZED = ^uint32(0) // -1

	// RSEQ_CPU_ID_REGISTRATION_FAILED indicates that rseq initialization
	// failed.
	RSEQ_CPU_ID_REGISTRATION_FAILED = ^uint32(1) // -2
)

Special values for RSeq.CPUID, defined in include/uapi/linux/rseq.h.

View Source
const (
	// SizeOfRSeq is the size of RSeq.
	//
	// Note that RSeq is naively 24 bytes. However, it has 32-byte
	// alignment, which in C increases sizeof to 32. That is the size that
	// the Linux kernel uses.
	SizeOfRSeq = 32

	// AlignOfRSeq is the standard alignment of RSeq.
	AlignOfRSeq = 32

	// OffsetOfRSeqCriticalSection is the offset of RSeqCriticalSection in RSeq.
	OffsetOfRSeqCriticalSection = 8
)
View Source
const (
	// wait4(2) uses this to aggregate RUSAGE_SELF and RUSAGE_CHILDREN.
	RUSAGE_BOTH = -0x2

	// getrusage(2) flags.
	RUSAGE_CHILDREN = -0x1
	RUSAGE_SELF     = 0x0
	RUSAGE_THREAD   = 0x1
)

Flags that may be used with wait4(2) and getrusage(2).

View Source
const (
	SCHED_NORMAL   = 0
	SCHED_FIFO     = 1
	SCHED_RR       = 2
	SCHED_BATCH    = 3
	SCHED_IDLE     = 5
	SCHED_DEADLINE = 6
	SCHED_MICROQ   = 16

	// SCHED_RESET_ON_FORK is a flag that indicates that the process is
	// reverted back to SCHED_NORMAL on fork.
	SCHED_RESET_ON_FORK = 0x40000000
)

Scheduling policies, exposed by sched_getscheduler(2)/sched_setscheduler(2).

View Source
const (
	PRIO_PGRP    = 0x1
	PRIO_PROCESS = 0x0
	PRIO_USER    = 0x2
)

Scheduling priority group selectors.

View Source
const (
	SECCOMP_MODE_NONE   = 0
	SECCOMP_MODE_FILTER = 2

	SECCOMP_RET_ACTION_FULL = 0xffff0000
	SECCOMP_RET_ACTION      = 0x7fff0000
	SECCOMP_RET_DATA        = 0x0000ffff

	SECCOMP_SET_MODE_FILTER   = 1
	SECCOMP_FILTER_FLAG_TSYNC = 1
	SECCOMP_GET_ACTION_AVAIL  = 2
)

Seccomp constants taken from <linux/seccomp.h>.

View Source
const (
	GETPID  = 11
	GETVAL  = 12
	GETALL  = 13
	GETNCNT = 14
	GETZCNT = 15
	SETVAL  = 16
	SETALL  = 17
)

semctl Command Definitions. Source: include/uapi/linux/sem.h

View Source
const (
	SEM_STAT     = 18
	SEM_INFO     = 19
	SEM_STAT_ANY = 20
)

ipcs ctl cmds. Source: include/uapi/linux/sem.h

View Source
const (
	SEMMNI = 32000
	SEMMSL = 32000
	SEMMNS = SEMMNI * SEMMSL
	SEMOPM = 500
	SEMVMX = 32767
	SEMAEM = SEMVMX

	SEMUME = SEMOPM
	SEMMNU = SEMMNS
	SEMMAP = SEMMNS
	SEMUSZ = 20
)

Information about system-wide sempahore limits and parameters.

Source: include/uapi/linux/sem.h

View Source
const (
	SHM_RDONLY = 010000  // Read-only access.
	SHM_RND    = 020000  // Round attach address to SHMLBA boundary.
	SHM_REMAP  = 040000  // Take-over region on attach.
	SHM_EXEC   = 0100000 // Execution access.
)

shmat(2) flags. Source: include/uapi/linux/shm.h

View Source
const (
	SHM_DEST      = 01000  // Segment will be destroyed on last detach.
	SHM_LOCKED    = 02000  // Segment will not be swapped.
	SHM_HUGETLB   = 04000  // Segment will use huge TLB pages.
	SHM_NORESERVE = 010000 // Don't check for reservations.
)

IPCPerm.Mode upper byte flags. Source: include/linux/shm.h

View Source
const (
	SHM_LOCK   = 11
	SHM_UNLOCK = 12
	SHM_STAT   = 13
	SHM_INFO   = 14
)

Additional Linux-only flags for shmctl(2). Source: include/uapi/linux/shm.h

View Source
const (
	SHMMIN = 1
	SHMMNI = 4096
	SHMMAX = math.MaxUint64 - 1<<24
	SHMALL = math.MaxUint64 - 1<<24
	SHMSEG = 4096
)

SHM defaults as specified by linux. Source: include/uapi/linux/shm.h

View Source
const (
	// SignalMaximum is the highest valid signal number.
	SignalMaximum = 64

	// FirstStdSignal is the lowest standard signal number.
	FirstStdSignal = 1

	// LastStdSignal is the highest standard signal number.
	LastStdSignal = 31

	// FirstRTSignal is the lowest real-time signal number.
	//
	// 32 (SIGCANCEL) and 33 (SIGSETXID) are used internally by glibc.
	FirstRTSignal = 32

	// LastRTSignal is the highest real-time signal number.
	LastRTSignal = 64

	// NumStdSignals is the number of standard signals.
	NumStdSignals = LastStdSignal - FirstStdSignal + 1

	// NumRTSignals is the number of realtime signals.
	NumRTSignals = LastRTSignal - FirstRTSignal + 1
)
View Source
const (
	SIGABRT   = Signal(6)
	SIGALRM   = Signal(14)
	SIGBUS    = Signal(7)
	SIGCHLD   = Signal(17)
	SIGCLD    = Signal(17)
	SIGCONT   = Signal(18)
	SIGFPE    = Signal(8)
	SIGHUP    = Signal(1)
	SIGILL    = Signal(4)
	SIGINT    = Signal(2)
	SIGIO     = Signal(29)
	SIGIOT    = Signal(6)
	SIGKILL   = Signal(9)
	SIGPIPE   = Signal(13)
	SIGPOLL   = Signal(29)
	SIGPROF   = Signal(27)
	SIGPWR    = Signal(30)
	SIGQUIT   = Signal(3)
	SIGSEGV   = Signal(11)
	SIGSTKFLT = Signal(16)
	SIGSTOP   = Signal(19)
	SIGSYS    = Signal(31)
	SIGTERM   = Signal(15)
	SIGTRAP   = Signal(5)
	SIGTSTP   = Signal(20)
	SIGTTIN   = Signal(21)
	SIGTTOU   = Signal(22)
	SIGUNUSED = Signal(31)
	SIGURG    = Signal(23)
	SIGUSR1   = Signal(10)
	SIGUSR2   = Signal(12)
	SIGVTALRM = Signal(26)
	SIGWINCH  = Signal(28)
	SIGXCPU   = Signal(24)
	SIGXFSZ   = Signal(25)
)

Signals.

View Source
const (
	// SIG_BLOCK blocks the signals in the set.
	SIG_BLOCK = 0

	// SIG_UNBLOCK blocks the signals in the set.
	SIG_UNBLOCK = 1

	// SIG_SETMASK sets the signal mask to set.
	SIG_SETMASK = 2
)

'how' values for rt_sigprocmask(2).

View Source
const (
	// SIG_DFL performs the default action.
	SIG_DFL = 0

	// SIG_IGN ignores the signal.
	SIG_IGN = 1
)

Signal actions for rt_sigaction(2), from uapi/asm-generic/signal-defs.h.

View Source
const (
	SA_NOCLDSTOP = 0x00000001
	SA_NOCLDWAIT = 0x00000002
	SA_SIGINFO   = 0x00000004
	SA_RESTORER  = 0x04000000
	SA_ONSTACK   = 0x08000000
	SA_RESTART   = 0x10000000
	SA_NODEFER   = 0x40000000
	SA_RESETHAND = 0x80000000
	SA_NOMASK    = SA_NODEFER
	SA_ONESHOT   = SA_RESETHAND
)

Signal action flags for rt_sigaction(2), from uapi/asm-generic/signal.h

View Source
const (
	SI_MASK  = 0xffff0000
	SI_KILL  = 0 << 16
	SI_TIMER = 1 << 16
	SI_POLL  = 2 << 16
	SI_FAULT = 3 << 16
	SI_CHLD  = 4 << 16
	SI_RT    = 5 << 16
	SI_MESGQ = 6 << 16
	SI_SYS   = 7 << 16
)

Signal info types.

View Source
const (
	// POLL_IN indicates that data input available.
	POLL_IN = SI_POLL | 1

	// POLL_OUT indicates that output buffers available.
	POLL_OUT = SI_POLL | 2

	// POLL_MSG indicates that an input message available.
	POLL_MSG = SI_POLL | 3

	// POLL_ERR indicates that there was an i/o error.
	POLL_ERR = SI_POLL | 4

	// POLL_PRI indicates that a high priority input available.
	POLL_PRI = SI_POLL | 5

	// POLL_HUP indicates that a device disconnected.
	POLL_HUP = SI_POLL | 6
)

SIGPOLL si_codes.

View Source
const (
	SIGEV_SIGNAL    = 0
	SIGEV_NONE      = 1
	SIGEV_THREAD    = 2
	SIGEV_THREAD_ID = 4
)

Possible values for Sigevent.Notify, aka struct sigevent::sigev_notify.

View Source
const (
	// SFD_NONBLOCK is a signalfd(2) flag.
	SFD_NONBLOCK = 00004000

	// SFD_CLOEXEC is a signalfd(2) flag.
	SFD_CLOEXEC = 02000000
)
View Source
const (
	AF_UNSPEC     = 0
	AF_UNIX       = 1
	AF_INET       = 2
	AF_AX25       = 3
	AF_IPX        = 4
	AF_APPLETALK  = 5
	AF_NETROM     = 6
	AF_BRIDGE     = 7
	AF_ATMPVC     = 8
	AF_X25        = 9
	AF_INET6      = 10
	AF_ROSE       = 11
	AF_DECnet     = 12
	AF_NETBEUI    = 13
	AF_SECURITY   = 14
	AF_KEY        = 15
	AF_NETLINK    = 16
	AF_PACKET     = 17
	AF_ASH        = 18
	AF_ECONET     = 19
	AF_ATMSVC     = 20
	AF_RDS        = 21
	AF_SNA        = 22
	AF_IRDA       = 23
	AF_PPPOX      = 24
	AF_WANPIPE    = 25
	AF_LLC        = 26
	AF_IB         = 27
	AF_MPLS       = 28
	AF_CAN        = 29
	AF_TIPC       = 30
	AF_BLUETOOTH  = 31
	AF_IUCV       = 32
	AF_RXRPC      = 33
	AF_ISDN       = 34
	AF_PHONET     = 35
	AF_IEEE802154 = 36
	AF_CAIF       = 37
	AF_ALG        = 38
	AF_NFC        = 39
	AF_VSOCK      = 40
)

Address families, from linux/socket.h.

View Source
const (
	MSG_OOB              = 0x1
	MSG_PEEK             = 0x2
	MSG_DONTROUTE        = 0x4
	MSG_TRYHARD          = 0x4
	MSG_CTRUNC           = 0x8
	MSG_PROBE            = 0x10
	MSG_TRUNC            = 0x20
	MSG_DONTWAIT         = 0x40
	MSG_EOR              = 0x80
	MSG_WAITALL          = 0x100
	MSG_FIN              = 0x200
	MSG_EOF              = MSG_FIN
	MSG_SYN              = 0x400
	MSG_CONFIRM          = 0x800
	MSG_RST              = 0x1000
	MSG_ERRQUEUE         = 0x2000
	MSG_NOSIGNAL         = 0x4000
	MSG_MORE             = 0x8000
	MSG_WAITFORONE       = 0x10000
	MSG_SENDPAGE_NOTLAST = 0x20000
	MSG_ZEROCOPY         = 0x4000000
	MSG_FASTOPEN         = 0x20000000
	MSG_CMSG_CLOEXEC     = 0x40000000
)

sendmsg(2)/recvmsg(2) flags, from linux/socket.h.

View Source
const (
	SOL_IP      = 0
	SOL_SOCKET  = 1
	SOL_TCP     = 6
	SOL_UDP     = 17
	SOL_IPV6    = 41
	SOL_ICMPV6  = 58
	SOL_RAW     = 255
	SOL_PACKET  = 263
	SOL_NETLINK = 270
)

Set/get socket option levels, from socket.h.

View Source
const (
	SOCK_CLOEXEC  = O_CLOEXEC
	SOCK_NONBLOCK = O_NONBLOCK
)

socket(2)/socketpair(2)/accept4(2) flags, from linux/net.h.

View Source
const (
	SHUT_RD   = 0
	SHUT_WR   = 1
	SHUT_RDWR = 2
)

shutdown(2) how commands, from <linux/net.h>.

View Source
const (
	PACKET_HOST      = 0 // To us
	PACKET_BROADCAST = 1 // To all
	PACKET_MULTICAST = 2 // To group
	PACKET_OTHERHOST = 3 // To someone else
	PACKET_OUTGOING  = 4 // Outgoing of any type
)

Packet types from <linux/if_packet.h>

View Source
const (
	SO_DEBUG                 = 1
	SO_REUSEADDR             = 2
	SO_TYPE                  = 3
	SO_ERROR                 = 4
	SO_DONTROUTE             = 5
	SO_BROADCAST             = 6
	SO_SNDBUF                = 7
	SO_RCVBUF                = 8
	SO_KEEPALIVE             = 9
	SO_OOBINLINE             = 10
	SO_NO_CHECK              = 11
	SO_PRIORITY              = 12
	SO_LINGER                = 13
	SO_BSDCOMPAT             = 14
	SO_REUSEPORT             = 15
	SO_PASSCRED              = 16
	SO_PEERCRED              = 17
	SO_RCVLOWAT              = 18
	SO_SNDLOWAT              = 19
	SO_RCVTIMEO              = 20
	SO_SNDTIMEO              = 21
	SO_BINDTODEVICE          = 25
	SO_ATTACH_FILTER         = 26
	SO_DETACH_FILTER         = 27
	SO_GET_FILTER            = SO_ATTACH_FILTER
	SO_PEERNAME              = 28
	SO_TIMESTAMP             = 29
	SO_ACCEPTCONN            = 30
	SO_PEERSEC               = 31
	SO_SNDBUFFORCE           = 32
	SO_RCVBUFFORCE           = 33
	SO_PASSSEC               = 34
	SO_TIMESTAMPNS           = 35
	SO_MARK                  = 36
	SO_TIMESTAMPING          = 37
	SO_PROTOCOL              = 38
	SO_DOMAIN                = 39
	SO_RXQ_OVFL              = 40
	SO_WIFI_STATUS           = 41
	SO_PEEK_OFF              = 42
	SO_NOFCS                 = 43
	SO_LOCK_FILTER           = 44
	SO_SELECT_ERR_QUEUE      = 45
	SO_BUSY_POLL             = 46
	SO_MAX_PACING_RATE       = 47
	SO_BPF_EXTENSIONS        = 48
	SO_INCOMING_CPU          = 49
	SO_ATTACH_BPF            = 50
	SO_ATTACH_REUSEPORT_CBPF = 51
	SO_ATTACH_REUSEPORT_EBPF = 52
	SO_CNX_ADVICE            = 53
	SO_MEMINFO               = 55
	SO_INCOMING_NAPI_ID      = 56
	SO_COOKIE                = 57
	SO_PEERGROUPS            = 59
	SO_ZEROCOPY              = 60
	SO_TXTIME                = 61
)

Socket options from socket.h.

View Source
const (
	SS_FREE          = 0 // Not allocated.
	SS_UNCONNECTED   = 1 // Unconnected to any socket.
	SS_CONNECTING    = 2 // In process of connecting.
	SS_CONNECTED     = 3 // Connected to socket.
	SS_DISCONNECTING = 4 // In process of disconnecting.
)

enum socket_state, from uapi/linux/net.h.

View Source
const (
	TCP_ESTABLISHED uint32 = iota + 1
	TCP_SYN_SENT
	TCP_SYN_RECV
	TCP_FIN_WAIT1
	TCP_FIN_WAIT2
	TCP_TIME_WAIT
	TCP_CLOSE
	TCP_CLOSE_WAIT
	TCP_LAST_ACK
	TCP_LISTEN
	TCP_CLOSING
	TCP_NEW_SYN_RECV
)

TCP protocol states, from include/net/tcp_states.h.

View Source
const (
	SCM_CREDENTIALS = 0x2
	SCM_RIGHTS      = 0x1
)

Control message types, from linux/socket.h.

View Source
const (
	SPLICE_F_MOVE = 1 << iota
	SPLICE_F_NONBLOCK
	SPLICE_F_MORE
	SPLICE_F_GIFT
)

Constants for splice(2), sendfile(2) and tee(2).

View Source
const (
	TCP_NODELAY              = 1
	TCP_MAXSEG               = 2
	TCP_CORK                 = 3
	TCP_KEEPIDLE             = 4
	TCP_KEEPINTVL            = 5
	TCP_KEEPCNT              = 6
	TCP_SYNCNT               = 7
	TCP_LINGER2              = 8
	TCP_DEFER_ACCEPT         = 9
	TCP_WINDOW_CLAMP         = 10
	TCP_INFO                 = 11
	TCP_QUICKACK             = 12
	TCP_CONGESTION           = 13
	TCP_MD5SIG               = 14
	TCP_THIN_LINEAR_TIMEOUTS = 16
	TCP_THIN_DUPACK          = 17
	TCP_USER_TIMEOUT         = 18
	TCP_REPAIR               = 19
	TCP_REPAIR_QUEUE         = 20
	TCP_QUEUE_SEQ            = 21
	TCP_REPAIR_OPTIONS       = 22
	TCP_FASTOPEN             = 23
	TCP_TIMESTAMP            = 24
	TCP_NOTSENT_LOWAT        = 25
	TCP_CC_INFO              = 26
	TCP_SAVE_SYN             = 27
	TCP_SAVED_SYN            = 28
	TCP_REPAIR_WINDOW        = 29
	TCP_FASTOPEN_CONNECT     = 30
	TCP_ULP                  = 31
	TCP_MD5SIG_EXT           = 32
	TCP_FASTOPEN_KEY         = 33
	TCP_FASTOPEN_NO_COOKIE   = 34
	TCP_ZEROCOPY_RECEIVE     = 35
	TCP_INQ                  = 36
)

Socket options from uapi/linux/tcp.h.

View Source
const (
	MAX_TCP_KEEPIDLE  = 32767
	MAX_TCP_KEEPINTVL = 32767
	MAX_TCP_KEEPCNT   = 127
)

Socket constants from include/net/tcp.h.

View Source
const (
	// ClockTick is the length of time represented by a single clock tick, as
	// used by times(2) and /proc/[pid]/stat.
	ClockTick = time.Second / CLOCKS_PER_SEC

	// CLOCKS_PER_SEC is the number of ClockTicks per second.
	//
	// Linux defines this to be 100 on most architectures, irrespective of
	// CONFIG_HZ. Userspace obtains the value through sysconf(_SC_CLK_TCK),
	// which uses the AT_CLKTCK entry in the auxiliary vector if one is
	// provided, and assumes 100 otherwise (glibc:
	// sysdeps/posix/sysconf.c:__sysconf() =>
	// sysdeps/unix/sysv/linux/getclktck.c, elf/dl-support.c:_dl_aux_init()).
	//
	// Not to be confused with POSIX CLOCKS_PER_SEC, as used by clock(3); "XSI
	// requires that [POSIX] CLOCKS_PER_SEC equals 1000000 independent of the
	// actual resolution" - clock(3).
	CLOCKS_PER_SEC = 100
)
View Source
const (
	CPUCLOCK_PROF  = 0
	CPUCLOCK_VIRT  = 1
	CPUCLOCK_SCHED = 2
	CPUCLOCK_MAX   = 3
	CLOCKFD        = CPUCLOCK_MAX

	CPUCLOCK_CLOCK_MASK     = 3
	CPUCLOCK_PERTHREAD_MASK = 4
)

CPU clock types for use with clock_gettime(2) et al.

The 29 most significant bits of a 32 bit clock ID are either a PID or a FD.

Bits 1 and 0 give the type: PROF=0, VIRT=1, SCHED=2, or FD=3.

Bit 2 indicates whether a cpu clock refers to a thread or a process.

View Source
const (
	CLOCK_REALTIME           = 0
	CLOCK_MONOTONIC          = 1
	CLOCK_PROCESS_CPUTIME_ID = 2
	CLOCK_THREAD_CPUTIME_ID  = 3
	CLOCK_MONOTONIC_RAW      = 4
	CLOCK_REALTIME_COARSE    = 5
	CLOCK_MONOTONIC_COARSE   = 6
	CLOCK_BOOTTIME           = 7
	CLOCK_REALTIME_ALARM     = 8
	CLOCK_BOOTTIME_ALARM     = 9
)

Clock identifiers for use with clock_gettime(2), clock_getres(2), clock_nanosleep(2).

View Source
const (
	// TFD_CLOEXEC is a timerfd_create flag.
	TFD_CLOEXEC = O_CLOEXEC

	// TFD_NONBLOCK is a timerfd_create flag.
	TFD_NONBLOCK = O_NONBLOCK

	// TFD_TIMER_ABSTIME is a timerfd_settime flag.
	TFD_TIMER_ABSTIME = 1
)

Flags for timerfd syscalls (timerfd_create(2), timerfd_settime(2)).

View Source
const (
	ITIMER_REAL    = 0
	ITIMER_VIRTUAL = 1
	ITIMER_PROF    = 2
)

itimer types for getitimer(2) and setitimer(2), from include/uapi/linux/time.h.

View Source
const (
	IGNBRK  = 0000001
	BRKINT  = 0000002
	IGNPAR  = 0000004
	PARMRK  = 0000010
	INPCK   = 0000020
	ISTRIP  = 0000040
	INLCR   = 0000100
	IGNCR   = 0000200
	ICRNL   = 0000400
	IUCLC   = 0001000
	IXON    = 0002000
	IXANY   = 0004000
	IXOFF   = 0010000
	IMAXBEL = 0020000
	IUTF8   = 0040000
)

Input flags.

View Source
const (
	OPOST  = 0000001
	OLCUC  = 0000002
	ONLCR  = 0000004
	OCRNL  = 0000010
	ONOCR  = 0000020
	ONLRET = 0000040
	OFILL  = 0000100
	OFDEL  = 0000200
	NLDLY  = 0000400
	NL0    = 0000000
	NL1    = 0000400
	CRDLY  = 0003000
	CR0    = 0000000
	CR1    = 0001000
	CR2    = 0002000
	CR3    = 0003000
	TABDLY = 0014000
	TAB0   = 0000000
	TAB1   = 0004000
	TAB2   = 0010000
	TAB3   = 0014000
	XTABS  = 0014000
	BSDLY  = 0020000
	BS0    = 0000000
	BS1    = 0020000
	VTDLY  = 0040000
	VT0    = 0000000
	VT1    = 0040000
	FFDLY  = 0100000
	FF0    = 0000000
	FF1    = 0100000
)

Output flags.

View Source
const (
	CBAUD    = 0010017
	B0       = 0000000
	B50      = 0000001
	B75      = 0000002
	B110     = 0000003
	B134     = 0000004
	B150     = 0000005
	B200     = 0000006
	B300     = 0000007
	B600     = 0000010
	B1200    = 0000011
	B1800    = 0000012
	B2400    = 0000013
	B4800    = 0000014
	B9600    = 0000015
	B19200   = 0000016
	B38400   = 0000017
	EXTA     = B19200
	EXTB     = B38400
	CSIZE    = 0000060
	CS5      = 0000000
	CS6      = 0000020
	CS7      = 0000040
	CS8      = 0000060
	CSTOPB   = 0000100
	CREAD    = 0000200
	PARENB   = 0000400
	PARODD   = 0001000
	HUPCL    = 0002000
	CLOCAL   = 0004000
	CBAUDEX  = 0010000
	BOTHER   = 0010000
	B57600   = 0010001
	B115200  = 0010002
	B230400  = 0010003
	B460800  = 0010004
	B500000  = 0010005
	B576000  = 0010006
	B921600  = 0010007
	B1000000 = 0010010
	B1152000 = 0010011
	B1500000 = 0010012
	B2000000 = 0010013
	B2500000 = 0010014
	B3000000 = 0010015
	B3500000 = 0010016
	B4000000 = 0010017
	CIBAUD   = 002003600000
	CMSPAR   = 010000000000
	CRTSCTS  = 020000000000

	// IBSHIFT is the shift from CBAUD to CIBAUD.
	IBSHIFT = 16
)

Control flags.

View Source
const (
	ISIG    = 0000001
	ICANON  = 0000002
	XCASE   = 0000004
	ECHO    = 0000010
	ECHOE   = 0000020
	ECHOK   = 0000040
	ECHONL  = 0000100
	NOFLSH  = 0000200
	TOSTOP  = 0000400
	ECHOCTL = 0001000
	ECHOPRT = 0002000
	ECHOKE  = 0004000
	FLUSHO  = 0010000
	PENDIN  = 0040000
	IEXTEN  = 0100000
	EXTPROC = 0200000
)

Local flags.

View Source
const (
	VINTR    = 0
	VQUIT    = 1
	VERASE   = 2
	VKILL    = 3
	VEOF     = 4
	VTIME    = 5
	VMIN     = 6
	VSWTC    = 7
	VSTART   = 8
	VSTOP    = 9
	VSUSP    = 10
	VEOL     = 11
	VREPRINT = 12
	VDISCARD = 13
	VWERASE  = 14
	VLNEXT   = 15
	VEOL2    = 16
)

Control Character indices.

View Source
const (
	WNOHANG    = 0x00000001
	WUNTRACED  = 0x00000002
	WSTOPPED   = WUNTRACED
	WEXITED    = 0x00000004
	WCONTINUED = 0x00000008
	WNOWAIT    = 0x01000000
	WNOTHREAD  = 0x20000000
	WALL       = 0x40000000
	WCLONE     = 0x80000000
)

Options for waitpid(2), wait4(2), and/or waitid(2), from include/uapi/linux/wait.h.

View Source
const (
	P_ALL  = 0x0
	P_PID  = 0x1
	P_PGID = 0x2
)

ID types for waitid(2), from include/uapi/linux/wait.h.

View Source
const (
	XATTR_NAME_MAX = 255
	XATTR_SIZE_MAX = 65536
	XATTR_LIST_MAX = 65536

	XATTR_CREATE  = 1
	XATTR_REPLACE = 2

	XATTR_TRUSTED_PREFIX     = "trusted."
	XATTR_TRUSTED_PREFIX_LEN = len(XATTR_TRUSTED_PREFIX)

	XATTR_USER_PREFIX     = "user."
	XATTR_USER_PREFIX_LEN = len(XATTR_USER_PREFIX)
)

Constants for extended attributes.

View Source
const AIORingSize = 32

AIORingSize is sizeof(struct aio_ring).

ALL_INOTIFY_BITS contains all the bits for all possible inotify events. It's defined in the Linux source at "include/linux/inotify.h".

View Source
const (
	AT_FDCWD = -100
)

Constants for all file-related ...at(2) syscalls.

View Source
const (
	AT_REMOVEDIR = 0x200
)

Constants for unlinkat(2).

View Source
const (
	AT_SYMLINK_NOFOLLOW = 0x100
)

Constants for fstatat(2).

View Source
const (
	FD_CLOEXEC = 00000001
)

Flags for fcntl.

View Source
const FUSE_GETATTR_FH = (1 << 0)

FUSE_GETATTR_FH is currently the only flag of FUSEGetAttrIn.GetAttrFlags. If it is set, the file handle (FUSEGetAttrIn.Fh) is used to indicate the object instead of the node id attribute in the request header.

View Source
const (
	// FUSE_MIN_READ_BUFFER is the minimum size the read can be for any FUSE filesystem.
	// This is the minimum size Linux supports. See linux.fuse.h.
	FUSE_MIN_READ_BUFFER uint32 = 8192
)
View Source
const (
	FUSE_READ_LOCKOWNER = 1 << 1
)

FUSE_READ flags, consistent with the ones in include/uapi/linux/fuse.h.

View Source
const FUSE_ROOT_ID = 1

FUSE_ROOT_ID is the id of root inode.

View Source
const FUTEX_BITSET_MATCH_ANY = 0xffffffff

FUTEX_BITSET_MATCH_ANY has all bits set.

View Source
const FUTEX_TID_MASK = 0x3fffffff

FUTEX_TID_MASK is the TID portion of a PI futex word.

View Source
const (
	// IFNAMSIZ is the size of the name field for IFReq.
	IFNAMSIZ = 16
)
View Source
const IP6T_ORIGINAL_DST = 80

IP6T_ORIGINAL_DST is the ip6tables SOL_IPV6 socket option. Corresponds to the value in include/uapi/linux/netfilter_ipv6/ip6_tables.h. TODO(gvisor.dev/issue/3549): Support IPv6 original destination.

View Source
const (
	IPC_PRIVATE = 0
)

IPC flags.

View Source
const MAX_NON_LFS = ((1 << 31) - 1)

MAX_NON_LFS indicates the maximum offset without large file support.

View Source
const (
	MEMBARRIER_CMD_FLAG_CPU = (1 << 0)
)

membarrier(2) flags, from include/uapi/linux/membarrier.h.

View Source
const (
	MLOCK_ONFAULT = 0x01
)

Flags for mlock2(2).

View Source
const MaxSymlinkTraversals = 40

MaxSymlinkTraversals is the maximum number of links that will be followed by the kernel to resolve a symlink.

View Source
const NLA_ALIGNTO = 4

NLA_ALIGNTO is the alignment of netlink attributes, from uapi/linux/netlink.h.

View Source
const NLMSG_ALIGNTO = 4

NLMSG_ALIGNTO is the alignment of netlink messages, from uapi/linux/netlink.h.

View Source
const NetlinkAttrHeaderSize = 4

NetlinkAttrHeaderSize is the size of NetlinkAttrHeader.

View Source
const NetlinkMessageHeaderSize = 16

NetlinkMessageHeaderSize is the size of NetlinkMessageHeader.

View Source
const (
	// NumControlCharacters is the number of control characters in Termios.
	NumControlCharacters = 19
)
View Source
const NumSoftIRQ = 10

NumSoftIRQ is the number of software IRQs, exposed via /proc/stat.

Defined in linux/interrupt.h.

View Source
const (
	// PTMX_MINOR is the minor device number for /dev/ptmx.
	PTMX_MINOR = 2
)

Minor device numbers for TTYAUX_MAJOR.

View Source
const ROBUST_LIST_LIMIT = 2048

ROBUST_LIST_LIMIT protects against a deliberately circular list.

View Source
const (
	// RSEQ_FLAG_UNREGISTER unregisters the current thread.
	RSEQ_FLAG_UNREGISTER = 1 << 0
)

Flags passed to rseq(2).

Defined in include/uapi/linux/rseq.h.

View Source
const SCM_MAX_FD = 253

SCM_MAX_FD is the maximum number of FDs accepted in a single sendmsg call. From net/scm.h.

View Source
const (
	SEM_UNDO = 0x1000
)

Semaphore flags.

View Source
const (
	SIOCGSTAMP = 0x8906
)

ioctl(2) requests provided by uapi/asm-generic/sockios.h

View Source
const SOCK_TYPE_MASK = 0xf

SOCK_TYPE_MASK covers all of the above socket types. The remaining bits are flags. From linux/net.h.

View Source
const SO_ACCEPTCON = 1 << 16

SO_ACCEPTCON is defined as __SO_ACCEPTCON in include/uapi/linux/net.h, which represents a listening socket state. Note that this is distinct from SO_ACCEPTCONN, which is a socket option for querying whether a socket is in a listening state.

View Source
const (
	SO_ORIGINAL_DST = 80
)

Socket option for SOL_IP. This corresponds to the value in include/uapi/linux/netfilter_ipv4.h.

View Source
const SignalSetSize = 8

SignalSetSize is the size in bytes of a SignalSet.

View Source
const SizeOfControlMessageIPPacketInfo = 12

SizeOfControlMessageIPPacketInfo is the size of an IP_PKTINFO control message.

View Source
const SizeOfControlMessageInq = 4

SizeOfControlMessageInq is the size of a TCP_INQ control message.

View Source
const SizeOfControlMessageRight = 4

SizeOfControlMessageRight is the size of a single element in ControlMessageRights.

View Source
const SizeOfControlMessageTClass = 4

SizeOfControlMessageTClass is the size of an IPV6_TCLASS control message.

View Source
const SizeOfControlMessageTOS = 1

SizeOfControlMessageTOS is the size of an IP_TOS control message.

View Source
const SizeOfDigestMetadata = 4

SizeOfDigestMetadata is the size of struct DigestMetadata.

View Source
const SizeOfIP6TEntry = 168

SizeOfIP6TEntry is the size of an IP6TEntry.

View Source
const SizeOfIP6TIP = 136

SizeOfIP6TIP is the size of an IP6 header.

View Source
const SizeOfIP6TReplace = 96

SizeOfIP6TReplace is the size of an IP6TReplace.

View Source
const SizeOfIPTEntry = 112

SizeOfIPTEntry is the size of an IPTEntry.

View Source
const SizeOfIPTGetEntries = 40

SizeOfIPTGetEntries is the size of an IPTGetEntries.

View Source
const SizeOfIPTGetinfo = 84

SizeOfIPTGetinfo is the size of an IPTGetinfo.

View Source
const SizeOfIPTIP = 84

SizeOfIPTIP is the size of an IPTIP.

View Source
const SizeOfIPTOwnerInfo = 34

SizeOfIPTOwnerInfo is the size of an XTOwnerMatchInfo.

View Source
const SizeOfIPTReplace = 96

SizeOfIPTReplace is the size of an IPTReplace.

View Source
const SizeOfLinger = 8

SizeOfLinger is the binary size of a Linger struct.

View Source
const SizeOfNFNATRange = 40

SizeOfNFNATRange is the size of NFNATRange.

View Source
const SizeOfRouteMessage = 12

SizeOfRouteMessage is the size of RouteMessage.

View Source
const SizeOfRtAttr = 4

SizeOfRtAttr is the size of RtAttr.

View Source
const SizeOfTimeval = 16

SizeOfTimeval is the size of a Timeval struct in bytes.

View Source
const SizeOfXTCounters = 16

SizeOfXTCounters is the size of an XTCounters.

View Source
const SizeOfXTEntryMatch = 32

SizeOfXTEntryMatch is the size of an XTEntryMatch.

View Source
const SizeOfXTEntryTarget = 32

SizeOfXTEntryTarget is the size of an XTEntryTarget.

View Source
const SizeOfXTErrorTarget = 64

SizeOfXTErrorTarget is the size of an XTErrorTarget.

View Source
const SizeOfXTGetRevision = 30

SizeOfXTGetRevision is the size of an XTGetRevision.

View Source
const SizeOfXTRedirectTarget = 56

SizeOfXTRedirectTarget is the size of an XTRedirectTarget.

View Source
const SizeOfXTStandardTarget = 40

SizeOfXTStandardTarget is the size of an XTStandardTarget.

View Source
const SizeOfXTTCP = 12

SizeOfXTTCP is the size of an XTTCP.

View Source
const SizeOfXTUDP = 10

SizeOfXTUDP is the size of an XTUDP.

View Source
const SockAddrMax = 128

SockAddrMax is the maximum size of a struct sockaddr, from uapi/linux/socket.h.

View Source
const SockAddrNetlinkSize = 12

SockAddrNetlinkSize is the size of SockAddrNetlink.

View Source
const TASK_COMM_LEN = 16

TASK_COMM_LEN is the task command name length.

View Source
const (
	TIMER_ABSTIME = 1
)

Flags for clock_nanosleep(2).

View Source
const UIO_MAXIOV = 1024

UIO_MAXIOV is the maximum number of struct iovecs in a struct iovec array.

View Source
const (
	// UTSLen is the maximum length of strings contained in fields of
	// UtsName.
	UTSLen = 64
)
View Source
const UnixPathMax = 108

UnixPathMax is the maximum length of the path in an AF_UNIX socket.

From uapi/linux/un.h.

Variables

View Source
var (
	EPERM   = &Errno{1, "operation not permitted"}
	ENOENT  = &Errno{2, "no such file or directory"}
	ESRCH   = &Errno{3, "no such process"}
	EINTR   = &Errno{4, "interrupted system call"}
	EIO     = &Errno{5, "I/O error"}
	ENXIO   = &Errno{6, "no such device or address"}
	E2BIG   = &Errno{7, "argument list too long"}
	ENOEXEC = &Errno{8, "exec format error"}
	EBADF   = &Errno{9, "bad file number"}
	ECHILD  = &Errno{10, "no child processes"}
	EAGAIN  = &Errno{11, "try again"}
	ENOMEM  = &Errno{12, "out of memory"}
	EACCES  = &Errno{13, "permission denied"}
	EFAULT  = &Errno{14, "bad address"}
	ENOTBLK = &Errno{15, "block device required"}
	EBUSY   = &Errno{16, "device or resource busy"}
	EEXIST  = &Errno{17, "file exists"}
	EXDEV   = &Errno{18, "cross-device link"}
	ENODEV  = &Errno{19, "no such device"}
	ENOTDIR = &Errno{20, "not a directory"}
	EISDIR  = &Errno{21, "is a directory"}
	EINVAL  = &Errno{22, "invalid argument"}
	ENFILE  = &Errno{23, "file table overflow"}
	EMFILE  = &Errno{24, "too many open files"}
	ENOTTY  = &Errno{25, "not a typewriter"}
	ETXTBSY = &Errno{26, "text file busy"}
	EFBIG   = &Errno{27, "file too large"}
	ENOSPC  = &Errno{28, "no space left on device"}
	ESPIPE  = &Errno{29, "illegal seek"}
	EROFS   = &Errno{30, "read-only file system"}
	EMLINK  = &Errno{31, "too many links"}
	EPIPE   = &Errno{32, "broken pipe"}
	EDOM    = &Errno{33, "math argument out of domain of func"}
	ERANGE  = &Errno{34, "math result not representable"}
)

Errno values from include/uapi/asm-generic/errno-base.h.

View Source
var (
	EDEADLK         = &Errno{35, "resource deadlock would occur"}
	ENAMETOOLONG    = &Errno{36, "file name too long"}
	ENOLCK          = &Errno{37, "no record locks available"}
	ENOSYS          = &Errno{38, "invalid system call number"}
	ENOTEMPTY       = &Errno{39, "directory not empty"}
	ELOOP           = &Errno{40, "too many symbolic links encountered"}
	EWOULDBLOCK     = &Errno{EAGAIN.number, "operation would block"}
	ENOMSG          = &Errno{42, "no message of desired type"}
	EIDRM           = &Errno{43, "identifier removed"}
	ECHRNG          = &Errno{44, "channel number out of range"}
	EL2NSYNC        = &Errno{45, "level 2 not synchronized"}
	EL3HLT          = &Errno{46, "level 3 halted"}
	EL3RST          = &Errno{47, "level 3 reset"}
	ELNRNG          = &Errno{48, "link number out of range"}
	EUNATCH         = &Errno{49, "protocol driver not attached"}
	ENOCSI          = &Errno{50, "no CSI structure available"}
	EL2HLT          = &Errno{51, "level 2 halted"}
	EBADE           = &Errno{52, "invalid exchange"}
	EBADR           = &Errno{53, "invalid request descriptor"}
	EXFULL          = &Errno{54, "exchange full"}
	ENOANO          = &Errno{55, "no anode"}
	EBADRQC         = &Errno{56, "invalid request code"}
	EBADSLT         = &Errno{57, "invalid slot"}
	EDEADLOCK       = EDEADLK
	EBFONT          = &Errno{59, "bad font file format"}
	ENOSTR          = &Errno{60, "device not a stream"}
	ENODATA         = &Errno{61, "no data available"}
	ETIME           = &Errno{62, "timer expired"}
	ENOSR           = &Errno{63, "out of streams resources"}
	ENONET          = &Errno{64, "machine is not on the network"}
	ENOPKG          = &Errno{65, "package not installed"}
	EREMOTE         = &Errno{66, "object is remote"}
	ENOLINK         = &Errno{67, "link has been severed"}
	EADV            = &Errno{68, "advertise error"}
	ESRMNT          = &Errno{69, "srmount error"}
	ECOMM           = &Errno{70, "communication error on send"}
	EPROTO          = &Errno{71, "protocol error"}
	EMULTIHOP       = &Errno{72, "multihop attempted"}
	EDOTDOT         = &Errno{73, "RFS specific error"}
	EBADMSG         = &Errno{74, "not a data message"}
	EOVERFLOW       = &Errno{75, "value too large for defined data type"}
	ENOTUNIQ        = &Errno{76, "name not unique on network"}
	EBADFD          = &Errno{77, "file descriptor in bad state"}
	EREMCHG         = &Errno{78, "remote address changed"}
	ELIBACC         = &Errno{79, "can not access a needed shared library"}
	ELIBBAD         = &Errno{80, "accessing a corrupted shared library"}
	ELIBSCN         = &Errno{81, ".lib section in a.out corrupted"}
	ELIBMAX         = &Errno{82, "attempting to link in too many shared libraries"}
	ELIBEXEC        = &Errno{83, "cannot exec a shared library directly"}
	EILSEQ          = &Errno{84, "illegal byte sequence"}
	ERESTART        = &Errno{85, "interrupted system call should be restarted"}
	ESTRPIPE        = &Errno{86, "streams pipe error"}
	EUSERS          = &Errno{87, "too many users"}
	ENOTSOCK        = &Errno{88, "socket operation on non-socket"}
	EDESTADDRREQ    = &Errno{89, "destination address required"}
	EMSGSIZE        = &Errno{90, "message too long"}
	EPROTOTYPE      = &Errno{91, "protocol wrong type for socket"}
	ENOPROTOOPT     = &Errno{92, "protocol not available"}
	EPROTONOSUPPORT = &Errno{93, "protocol not supported"}
	ESOCKTNOSUPPORT = &Errno{94, "socket type not supported"}
	EOPNOTSUPP      = &Errno{95, "operation not supported on transport endpoint"}
	EPFNOSUPPORT    = &Errno{96, "protocol family not supported"}
	EAFNOSUPPORT    = &Errno{97, "address family not supported by protocol"}
	EADDRINUSE      = &Errno{98, "address already in use"}
	EADDRNOTAVAIL   = &Errno{99, "cannot assign requested address"}
	ENETDOWN        = &Errno{100, "network is down"}
	ENETUNREACH     = &Errno{101, "network is unreachable"}
	ENETRESET       = &Errno{102, "network dropped connection because of reset"}
	ECONNABORTED    = &Errno{103, "software caused connection abort"}
	ECONNRESET      = &Errno{104, "connection reset by peer"}
	ENOBUFS         = &Errno{105, "no buffer space available"}
	EISCONN         = &Errno{106, "transport endpoint is already connected"}
	ENOTCONN        = &Errno{107, "transport endpoint is not connected"}
	ESHUTDOWN       = &Errno{108, "cannot send after transport endpoint shutdown"}
	ETOOMANYREFS    = &Errno{109, "too many references: cannot splice"}
	ETIMEDOUT       = &Errno{110, "connection timed out"}
	ECONNREFUSED    = &Errno{111, "connection refused"}
	EHOSTDOWN       = &Errno{112, "host is down"}
	EHOSTUNREACH    = &Errno{113, "no route to host"}
	EALREADY        = &Errno{114, "operation already in progress"}
	EINPROGRESS     = &Errno{115, "operation now in progress"}
	ESTALE          = &Errno{116, "stale file handle"}
	EUCLEAN         = &Errno{117, "structure needs cleaning"}
	ENOTNAM         = &Errno{118, "not a XENIX named type file"}
	ENAVAIL         = &Errno{119, "no XENIX semaphores available"}
	EISNAM          = &Errno{120, "is a named type file"}
	EREMOTEIO       = &Errno{121, "remote I/O error"}
	EDQUOT          = &Errno{122, "quota exceeded"}
	ENOMEDIUM       = &Errno{123, "no medium found"}
	EMEDIUMTYPE     = &Errno{124, "wrong medium type"}
	ECANCELED       = &Errno{125, "operation Canceled"}
	ENOKEY          = &Errno{126, "required key not available"}
	EKEYEXPIRED     = &Errno{127, "key has expired"}
	EKEYREVOKED     = &Errno{128, "key has been revoked"}
	EKEYREJECTED    = &Errno{129, "key was rejected by service"}
	EOWNERDEAD      = &Errno{130, "owner died"}
	ENOTRECOVERABLE = &Errno{131, "state not recoverable"}
	ERFKILL         = &Errno{132, "operation not possible due to RF-kill"}
	EHWPOISON       = &Errno{133, "memory page has hardware error"}
)

Errno values from include/uapi/asm-generic/errno.h.

View Source
var (
	KCOV_INIT_TRACE = IOC(_IOC_READ, 'c', 1, 8)
	KCOV_ENABLE     = IOC(_IOC_NONE, 'c', 100, 0)
	KCOV_DISABLE    = IOC(_IOC_NONE, 'c', 101, 0)
)

Kcov ioctls from kernel/kcov.h.

View Source
var (
	TUNSETIFF = IOC(_IOC_WRITE, 'T', 202, 4)
	TUNGETIFF = IOC(_IOC_READ, 'T', 210, 4)
)

ioctl(2) request numbers from linux/if_tun.h

DefaultControlCharacters is the default set of Termios control characters.

View Source
var DefaultReplicaTermios = KernelTermios{
	InputFlags:        ICRNL | IXON,
	OutputFlags:       OPOST | ONLCR,
	ControlFlags:      B38400 | CS8 | CREAD,
	LocalFlags:        ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHOCTL | ECHOKE | IEXTEN,
	ControlCharacters: DefaultControlCharacters,
	InputSpeed:        38400,
	OutputSpeed:       38400,
}

DefaultReplicaTermios is the default terminal configuration of the replica end of a Unix98 pseudoterminal.

View Source
var DirentType = abi.ValueSet{
	DT_UNKNOWN: "DT_UNKNOWN",
	DT_FIFO:    "DT_FIFO",
	DT_CHR:     "DT_CHR",
	DT_DIR:     "DT_DIR",
	DT_BLK:     "DT_BLK",
	DT_REG:     "DT_REG",
	DT_LNK:     "DT_LNK",
	DT_SOCK:    "DT_SOCK",
	DT_WHT:     "DT_WHT",
}

DirentType are the friendly strings for linux_dirent64.d_type.

View Source
var IOEventSize = binary.Size(IOEvent{})

IOEventSize is the size of an ioEvent encoded.

InitRLimits is a map of initial rlimits set by Linux in include/asm-generic/resource.h.

View Source
var MasterTermios = KernelTermios{
	ControlFlags:      B38400 | CS8 | CREAD,
	ControlCharacters: DefaultControlCharacters,
	InputSpeed:        38400,
	OutputSpeed:       38400,
}

MasterTermios is the terminal configuration of the master end of a Unix98 pseudoterminal.

View Source
var SizeOfControlMessageCredentials = int(binary.Size(ControlMessageCredentials{}))

SizeOfControlMessageCredentials is the binary size of a ControlMessageCredentials struct.

View Source
var SizeOfControlMessageHeader = int(binary.Size(ControlMessageHeader{}))

SizeOfControlMessageHeader is the binary size of a ControlMessageHeader struct.

View Source
var SizeOfEpollEvent = int(binary.Size(EpollEvent{}))

SizeOfEpollEvent is the size of EpollEvent struct.

View Source
var SizeOfIFReq = binary.Size(IFReq{})

SizeOfIFReq is the binary size of an IFReq struct (40 bytes).

View Source
var SizeOfRobustListHead = (*RobustListHead)(nil).SizeBytes()

SizeOfRobustListHead is the size of a RobustListHead struct.

View Source
var SizeOfStat = binary.Size(Stat{})

SizeOfStat is the size of a Stat struct.

View Source
var SizeOfStatx = binary.Size(Statx{})

SizeOfStatx is the size of a Statx struct.

View Source
var SizeOfTCPInfo = int(binary.Size(TCPInfo{}))

SizeOfTCPInfo is the binary size of a TCPInfo struct.

View Source
var VerdictStrings = map[int32]string{
	-NF_DROP - 1:   "DROP",
	-NF_ACCEPT - 1: "ACCEPT",
	-NF_QUEUE - 1:  "QUEUE",
	NF_RETURN:      "RETURN",
}

VerdictStrings maps int verdicts to the strings they represent. It is used for debugging.

Functions

func ControlCharacter

func ControlCharacter(c byte) uint8

ControlCharacter returns the termios-style control character for the passed character.

e.g., for Ctrl-C, i.e., ^C, call ControlCharacter('C').

Standard control characters are ASCII bytes 0 through 31.

func CopyBPFInstructionSliceIn

func CopyBPFInstructionSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []BPFInstruction) (int, error)

CopyBPFInstructionSliceIn copies in a slice of BPFInstruction objects from the task's memory.

func CopyBPFInstructionSliceOut

func CopyBPFInstructionSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []BPFInstruction) (int, error)

CopyBPFInstructionSliceOut copies a slice of BPFInstruction objects to the task's memory.

func CopyCapUserDataSliceIn

func CopyCapUserDataSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []CapUserData) (int, error)

CopyCapUserDataSliceIn copies in a slice of CapUserData objects from the task's memory.

func CopyCapUserDataSliceOut

func CopyCapUserDataSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []CapUserData) (int, error)

CopyCapUserDataSliceOut copies a slice of CapUserData objects to the task's memory.

func CopyEpollEventSliceIn

func CopyEpollEventSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []EpollEvent) (int, error)

CopyEpollEventSliceIn copies in a slice of EpollEvent objects from the task's memory.

func CopyEpollEventSliceOut

func CopyEpollEventSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []EpollEvent) (int, error)

CopyEpollEventSliceOut copies a slice of EpollEvent objects to the task's memory.

func CopyPollFDSliceIn

func CopyPollFDSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []PollFD) (int, error)

CopyPollFDSliceIn copies in a slice of PollFD objects from the task's memory.

func CopyPollFDSliceOut

func CopyPollFDSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []PollFD) (int, error)

CopyPollFDSliceOut copies a slice of PollFD objects to the task's memory.

func CopySembufSliceIn

func CopySembufSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []Sembuf) (int, error)

CopySembufSliceIn copies in a slice of Sembuf objects from the task's memory.

func CopySembufSliceOut

func CopySembufSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []Sembuf) (int, error)

CopySembufSliceOut copies a slice of Sembuf objects to the task's memory.

func CopyTimespecSliceIn

func CopyTimespecSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []Timespec) (int, error)

CopyTimespecSliceIn copies in a slice of Timespec objects from the task's memory.

func CopyTimespecSliceOut

func CopyTimespecSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []Timespec) (int, error)

CopyTimespecSliceOut copies a slice of Timespec objects to the task's memory.

func CopyTimevalSliceIn

func CopyTimevalSliceIn(cc marshal.CopyContext, addr usermem.Addr, dst []Timeval) (int, error)

CopyTimevalSliceIn copies in a slice of Timeval objects from the task's memory.

func CopyTimevalSliceOut

func CopyTimevalSliceOut(cc marshal.CopyContext, addr usermem.Addr, src []Timeval) (int, error)

CopyTimevalSliceOut copies a slice of Timeval objects to the task's memory.

func DecodeDeviceID

func DecodeDeviceID(rdev uint32) (uint16, uint32)

DecodeDeviceID decodes a device ID into major and minor device numbers.

func ForEachSignal

func ForEachSignal(mask SignalSet, f func(sig Signal))

ForEachSignal invokes f for each signal set in the given mask.

func IOC

func IOC(dir, typ, nr, size uint32) uint32

IOC outputs the result of _IOC macro in asm-generic/ioctl.h.

func MakeDeviceID

func MakeDeviceID(major uint16, minor uint32) uint32

MakeDeviceID encodes a major and minor device number into a single device ID.

Format (see linux/kdev_t.h:new_encode_dev):

Bits 7:0 - minor bits 7:0 Bits 19:8 - major bits 11:0 Bits 31:20 - minor bits 19:8

func MarshalUnsafeBPFInstructionSlice

func MarshalUnsafeBPFInstructionSlice(src []BPFInstruction, dst []byte) (int, error)

MarshalUnsafeBPFInstructionSlice is like BPFInstruction.MarshalUnsafe, but for a []BPFInstruction.

func MarshalUnsafeCapUserDataSlice

func MarshalUnsafeCapUserDataSlice(src []CapUserData, dst []byte) (int, error)

MarshalUnsafeCapUserDataSlice is like CapUserData.MarshalUnsafe, but for a []CapUserData.

func MarshalUnsafeEpollEventSlice

func MarshalUnsafeEpollEventSlice(src []EpollEvent, dst []byte) (int, error)

MarshalUnsafeEpollEventSlice is like EpollEvent.MarshalUnsafe, but for a []EpollEvent.

func MarshalUnsafePollFDSlice

func MarshalUnsafePollFDSlice(src []PollFD, dst []byte) (int, error)

MarshalUnsafePollFDSlice is like PollFD.MarshalUnsafe, but for a []PollFD.

func MarshalUnsafeSembufSlice

func MarshalUnsafeSembufSlice(src []Sembuf, dst []byte) (int, error)

MarshalUnsafeSembufSlice is like Sembuf.MarshalUnsafe, but for a []Sembuf.

func MarshalUnsafeTimespecSlice

func MarshalUnsafeTimespecSlice(src []Timespec, dst []byte) (int, error)

MarshalUnsafeTimespecSlice is like Timespec.MarshalUnsafe, but for a []Timespec.

func MarshalUnsafeTimevalSlice

func MarshalUnsafeTimevalSlice(src []Timeval, dst []byte) (int, error)

MarshalUnsafeTimevalSlice is like Timeval.MarshalUnsafe, but for a []Timeval.

func UnmarshalUnsafeBPFInstructionSlice

func UnmarshalUnsafeBPFInstructionSlice(dst []BPFInstruction, src []byte) (int, error)

UnmarshalUnsafeBPFInstructionSlice is like BPFInstruction.UnmarshalUnsafe, but for a []BPFInstruction.

func UnmarshalUnsafeCapUserDataSlice

func UnmarshalUnsafeCapUserDataSlice(dst []CapUserData, src []byte) (int, error)

UnmarshalUnsafeCapUserDataSlice is like CapUserData.UnmarshalUnsafe, but for a []CapUserData.

func UnmarshalUnsafeEpollEventSlice

func UnmarshalUnsafeEpollEventSlice(dst []EpollEvent, src []byte) (int, error)

UnmarshalUnsafeEpollEventSlice is like EpollEvent.UnmarshalUnsafe, but for a []EpollEvent.

func UnmarshalUnsafePollFDSlice

func UnmarshalUnsafePollFDSlice(dst []PollFD, src []byte) (int, error)

UnmarshalUnsafePollFDSlice is like PollFD.UnmarshalUnsafe, but for a []PollFD.

func UnmarshalUnsafeSembufSlice

func UnmarshalUnsafeSembufSlice(dst []Sembuf, src []byte) (int, error)

UnmarshalUnsafeSembufSlice is like Sembuf.UnmarshalUnsafe, but for a []Sembuf.

func UnmarshalUnsafeTimespecSlice

func UnmarshalUnsafeTimespecSlice(dst []Timespec, src []byte) (int, error)

UnmarshalUnsafeTimespecSlice is like Timespec.UnmarshalUnsafe, but for a []Timespec.

func UnmarshalUnsafeTimevalSlice

func UnmarshalUnsafeTimevalSlice(dst []Timeval, src []byte) (int, error)

UnmarshalUnsafeTimevalSlice is like Timeval.UnmarshalUnsafe, but for a []Timeval.

Types

type BPFAction

type BPFAction uint32

BPFAction is an action for a BPF filter.

const (
	SECCOMP_RET_KILL_PROCESS BPFAction = 0x80000000
	SECCOMP_RET_KILL_THREAD  BPFAction = 0x00000000
	SECCOMP_RET_TRAP         BPFAction = 0x00030000
	SECCOMP_RET_ERRNO        BPFAction = 0x00050000
	SECCOMP_RET_TRACE        BPFAction = 0x7ff00000
	SECCOMP_RET_ALLOW        BPFAction = 0x7fff0000
)

BPFAction definitions.

func (BPFAction) Data

func (a BPFAction) Data() uint16

Data returns the SECCOMP_RET_DATA portion of the action.

func (BPFAction) String

func (a BPFAction) String() string

func (BPFAction) WithReturnCode

func (a BPFAction) WithReturnCode(code uint16) BPFAction

WithReturnCode sets the lower 16 bits of the SECCOMP_RET_ERRNO or SECCOMP_RET_TRACE actions to the provided return code, overwriting the previous action, and returns a new BPFAction. If not SECCOMP_RET_ERRNO or SECCOMP_RET_TRACE then this panics.

type BPFInstruction

type BPFInstruction struct {
	// OpCode is the operation to execute.
	OpCode uint16

	// JumpIfTrue is the number of instructions to skip if OpCode is a
	// conditional instruction and the condition is true.
	JumpIfTrue uint8

	// JumpIfFalse is the number of instructions to skip if OpCode is a
	// conditional instruction and the condition is false.
	JumpIfFalse uint8

	// K is a constant parameter. The meaning depends on the value of OpCode.
	K uint32
}

BPFInstruction is a raw BPF virtual machine instruction.

+marshal slice:BPFInstructionSlice +stateify savable

func (*BPFInstruction) CopyIn

func (b *BPFInstruction) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*BPFInstruction) CopyOut

func (b *BPFInstruction) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*BPFInstruction) CopyOutN

func (b *BPFInstruction) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*BPFInstruction) MarshalBytes

func (b *BPFInstruction) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*BPFInstruction) MarshalUnsafe

func (b *BPFInstruction) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*BPFInstruction) Packed

func (b *BPFInstruction) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*BPFInstruction) SizeBytes

func (b *BPFInstruction) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*BPFInstruction) StateFields

func (b *BPFInstruction) StateFields() []string

func (*BPFInstruction) StateLoad

func (b *BPFInstruction) StateLoad(stateSourceObject state.Source)

func (*BPFInstruction) StateSave

func (b *BPFInstruction) StateSave(stateSinkObject state.Sink)

func (*BPFInstruction) StateTypeName

func (b *BPFInstruction) StateTypeName() string

func (*BPFInstruction) UnmarshalBytes

func (b *BPFInstruction) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*BPFInstruction) UnmarshalUnsafe

func (b *BPFInstruction) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*BPFInstruction) WriteTo

func (b *BPFInstruction) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type CapUserData

type CapUserData struct {
	Effective   uint32
	Permitted   uint32
	Inheritable uint32
}

CapUserData is equivalent to Linux's cap_user_data_t.

+marshal slice:CapUserDataSlice

func (*CapUserData) CopyIn

func (c *CapUserData) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*CapUserData) CopyOut

func (c *CapUserData) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*CapUserData) CopyOutN

func (c *CapUserData) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*CapUserData) MarshalBytes

func (c *CapUserData) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*CapUserData) MarshalUnsafe

func (c *CapUserData) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*CapUserData) Packed

func (c *CapUserData) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*CapUserData) SizeBytes

func (c *CapUserData) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*CapUserData) UnmarshalBytes

func (c *CapUserData) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*CapUserData) UnmarshalUnsafe

func (c *CapUserData) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*CapUserData) WriteTo

func (c *CapUserData) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type CapUserHeader

type CapUserHeader struct {
	Version uint32
	Pid     int32
}

CapUserHeader is equivalent to Linux's cap_user_header_t.

+marshal

func (*CapUserHeader) CopyIn

func (c *CapUserHeader) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*CapUserHeader) CopyOut

func (c *CapUserHeader) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*CapUserHeader) CopyOutN

func (c *CapUserHeader) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*CapUserHeader) MarshalBytes

func (c *CapUserHeader) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*CapUserHeader) MarshalUnsafe

func (c *CapUserHeader) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*CapUserHeader) Packed

func (c *CapUserHeader) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*CapUserHeader) SizeBytes

func (c *CapUserHeader) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*CapUserHeader) UnmarshalBytes

func (c *CapUserHeader) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*CapUserHeader) UnmarshalUnsafe

func (c *CapUserHeader) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*CapUserHeader) WriteTo

func (c *CapUserHeader) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Capability

type Capability int

A Capability represents the ability to perform a privileged operation.

func (Capability) Ok

func (cp Capability) Ok() bool

Ok returns true if cp is a supported capability.

func (Capability) String

func (cp Capability) String() string

String returns the capability name.

type ClockT

type ClockT int64

ClockT represents type clock_t.

+marshal

func ClockTFromDuration

func ClockTFromDuration(d time.Duration) ClockT

ClockTFromDuration converts time.Duration to clock_t.

func (*ClockT) CopyIn

func (c *ClockT) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ClockT) CopyOut

func (c *ClockT) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ClockT) CopyOutN

func (c *ClockT) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ClockT) MarshalBytes

func (c *ClockT) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ClockT) MarshalUnsafe

func (c *ClockT) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ClockT) Packed

func (c *ClockT) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ClockT) SizeBytes

func (c *ClockT) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ClockT) UnmarshalBytes

func (c *ClockT) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ClockT) UnmarshalUnsafe

func (c *ClockT) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ClockT) WriteTo

func (c *ClockT) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type ControlMessageCredentials

type ControlMessageCredentials struct {
	PID int32
	UID uint32
	GID uint32
}

A ControlMessageCredentials is an SCM_CREDENTIALS socket control message.

ControlMessageCredentials represents struct ucred from linux/socket.h.

+marshal

func (*ControlMessageCredentials) CopyIn

CopyIn implements marshal.Marshallable.CopyIn.

func (*ControlMessageCredentials) CopyOut

CopyOut implements marshal.Marshallable.CopyOut.

func (*ControlMessageCredentials) CopyOutN

func (c *ControlMessageCredentials) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ControlMessageCredentials) MarshalBytes

func (c *ControlMessageCredentials) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ControlMessageCredentials) MarshalUnsafe

func (c *ControlMessageCredentials) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ControlMessageCredentials) Packed

func (c *ControlMessageCredentials) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ControlMessageCredentials) SizeBytes

func (c *ControlMessageCredentials) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ControlMessageCredentials) UnmarshalBytes

func (c *ControlMessageCredentials) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ControlMessageCredentials) UnmarshalUnsafe

func (c *ControlMessageCredentials) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ControlMessageCredentials) WriteTo

func (c *ControlMessageCredentials) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type ControlMessageHeader

type ControlMessageHeader struct {
	Length uint64
	Level  int32
	Type   int32
}

A ControlMessageHeader is the header for a socket control message.

ControlMessageHeader represents struct cmsghdr from linux/socket.h.

type ControlMessageIPPacketInfo

type ControlMessageIPPacketInfo struct {
	NIC             int32
	LocalAddr       InetAddr
	DestinationAddr InetAddr
}

A ControlMessageIPPacketInfo is IP_PKTINFO socket control message.

ControlMessageIPPacketInfo represents struct in_pktinfo from linux/in.h.

+stateify savable

func (*ControlMessageIPPacketInfo) StateFields

func (c *ControlMessageIPPacketInfo) StateFields() []string

func (*ControlMessageIPPacketInfo) StateLoad

func (c *ControlMessageIPPacketInfo) StateLoad(stateSourceObject state.Source)

func (*ControlMessageIPPacketInfo) StateSave

func (c *ControlMessageIPPacketInfo) StateSave(stateSinkObject state.Sink)

func (*ControlMessageIPPacketInfo) StateTypeName

func (c *ControlMessageIPPacketInfo) StateTypeName() string

type ControlMessageRights

type ControlMessageRights []int32

A ControlMessageRights is an SCM_RIGHTS socket control message.

type DigestMetadata

type DigestMetadata struct {
	DigestAlgorithm uint16
	DigestSize      uint16
}

DigestMetadata is a helper struct for VerityDigest.

+marshal

func (*DigestMetadata) CopyIn

func (d *DigestMetadata) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*DigestMetadata) CopyOut

func (d *DigestMetadata) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*DigestMetadata) CopyOutN

func (d *DigestMetadata) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*DigestMetadata) MarshalBytes

func (d *DigestMetadata) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*DigestMetadata) MarshalUnsafe

func (d *DigestMetadata) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*DigestMetadata) Packed

func (d *DigestMetadata) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*DigestMetadata) SizeBytes

func (d *DigestMetadata) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*DigestMetadata) UnmarshalBytes

func (d *DigestMetadata) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*DigestMetadata) UnmarshalUnsafe

func (d *DigestMetadata) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*DigestMetadata) WriteTo

func (d *DigestMetadata) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type EpollEvent

type EpollEvent struct {
	Events uint32
	// Linux makes struct epoll_event::data a __u64. We represent it as
	// [2]int32 because, on amd64, Linux also makes struct epoll_event
	// __attribute__((packed)), such that there is no padding between Events
	// and Data.
	Data [2]int32
}

EpollEvent is equivalent to struct epoll_event from epoll(2).

+marshal slice:EpollEventSlice

func (*EpollEvent) CopyIn

func (e *EpollEvent) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*EpollEvent) CopyOut

func (e *EpollEvent) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*EpollEvent) CopyOutN

func (e *EpollEvent) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*EpollEvent) MarshalBytes

func (e *EpollEvent) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*EpollEvent) MarshalUnsafe

func (e *EpollEvent) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*EpollEvent) Packed

func (e *EpollEvent) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*EpollEvent) SizeBytes

func (e *EpollEvent) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*EpollEvent) UnmarshalBytes

func (e *EpollEvent) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*EpollEvent) UnmarshalUnsafe

func (e *EpollEvent) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*EpollEvent) WriteTo

func (e *EpollEvent) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Errno

type Errno struct {
	// contains filtered or unexported fields
}

Errno represents a Linux errno value.

func (*Errno) Number

func (e *Errno) Number() int

Number returns the errno number.

func (*Errno) String

func (e *Errno) String() string

String implements fmt.Stringer.String.

type ErrorName

type ErrorName [XT_FUNCTION_MAXNAMELEN]byte

ErrorName holds the name of a netfilter error. These can also hold user-defined chains.

func (ErrorName) String

func (en ErrorName) String() string

String implements fmt.Stringer.

type ExtensionName

type ExtensionName [XT_EXTENSION_MAXNAMELEN]byte

ExtensionName holds the name of a netfilter extension.

+marshal

func (*ExtensionName) CopyIn

func (en *ExtensionName) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ExtensionName) CopyOut

func (en *ExtensionName) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ExtensionName) CopyOutN

func (en *ExtensionName) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ExtensionName) MarshalBytes

func (en *ExtensionName) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ExtensionName) MarshalUnsafe

func (en *ExtensionName) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ExtensionName) Packed

func (en *ExtensionName) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ExtensionName) SizeBytes

func (en *ExtensionName) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (ExtensionName) String

func (en ExtensionName) String() string

String implements fmt.Stringer.

func (*ExtensionName) UnmarshalBytes

func (en *ExtensionName) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ExtensionName) UnmarshalUnsafe

func (en *ExtensionName) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ExtensionName) WriteTo

func (en *ExtensionName) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FOwnerEx

type FOwnerEx struct {
	Type int32
	PID  int32
}

FOwnerEx is the owner structure for F_SETOWN_EX and F_GETOWN_EX.

+marshal

func (*FOwnerEx) CopyIn

func (f *FOwnerEx) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FOwnerEx) CopyOut

func (f *FOwnerEx) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FOwnerEx) CopyOutN

func (f *FOwnerEx) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FOwnerEx) MarshalBytes

func (f *FOwnerEx) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FOwnerEx) MarshalUnsafe

func (f *FOwnerEx) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FOwnerEx) Packed

func (f *FOwnerEx) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FOwnerEx) SizeBytes

func (f *FOwnerEx) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FOwnerEx) UnmarshalBytes

func (f *FOwnerEx) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FOwnerEx) UnmarshalUnsafe

func (f *FOwnerEx) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FOwnerEx) WriteTo

func (f *FOwnerEx) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEAttr

type FUSEAttr struct {
	// Ino is the inode number of this file.
	Ino uint64

	// Size is the size of this file.
	Size uint64

	// Blocks is the number of the 512B blocks allocated by this file.
	Blocks uint64

	// Atime is the time of last access.
	Atime uint64

	// Mtime is the time of last modification.
	Mtime uint64

	// Ctime is the time of last status change.
	Ctime uint64

	// AtimeNsec is the nano second part of Atime.
	AtimeNsec uint32

	// MtimeNsec is the nano second part of Mtime.
	MtimeNsec uint32

	// CtimeNsec is the nano second part of Ctime.
	CtimeNsec uint32

	// Mode contains the file type and mode.
	Mode uint32

	// Nlink is the number of the hard links.
	Nlink uint32

	// UID is user ID of the owner.
	UID uint32

	// GID is group ID of the owner.
	GID uint32

	// Rdev is the device ID if this is a special file.
	Rdev uint32

	// BlkSize is the block size for filesystem I/O.
	BlkSize uint32
	// contains filtered or unexported fields
}

FUSEAttr is the struct used in the reponse FUSEGetAttrOut.

+marshal

func (*FUSEAttr) CopyIn

func (f *FUSEAttr) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEAttr) CopyOut

func (f *FUSEAttr) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEAttr) CopyOutN

func (f *FUSEAttr) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEAttr) MarshalBytes

func (f *FUSEAttr) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEAttr) MarshalUnsafe

func (f *FUSEAttr) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEAttr) Packed

func (f *FUSEAttr) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEAttr) SizeBytes

func (f *FUSEAttr) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEAttr) UnmarshalBytes

func (f *FUSEAttr) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEAttr) UnmarshalUnsafe

func (f *FUSEAttr) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEAttr) WriteTo

func (f *FUSEAttr) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSECreateIn

type FUSECreateIn struct {
	marshal.StubMarshallable

	// CreateMeta contains mode, rdev and umash field for FUSE_MKNODS.
	CreateMeta FUSECreateMeta

	// Name is the name of the node to create.
	Name string
}

FUSECreateIn contains all the arguments sent by the kernel to the daemon, to atomically create and open a new regular file.

Dynamically-sized objects cannot be marshalled.

func (*FUSECreateIn) MarshalBytes

func (r *FUSECreateIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.CreateMeta and r.Name to the dst buffer.

func (*FUSECreateIn) SizeBytes

func (r *FUSECreateIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSECreateIn. 1 extra byte for null-terminated string.

type FUSECreateMeta

type FUSECreateMeta struct {
	// Flags of the creating file.
	Flags uint32

	// Mode is the mode of the creating file.
	Mode uint32

	// Umask is the current file mode creation mask.
	Umask uint32
	// contains filtered or unexported fields
}

FUSECreateMeta contains all the static fields of FUSECreateIn, which is used for FUSE_CREATE.

+marshal

func (*FUSECreateMeta) CopyIn

func (f *FUSECreateMeta) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSECreateMeta) CopyOut

func (f *FUSECreateMeta) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSECreateMeta) CopyOutN

func (f *FUSECreateMeta) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSECreateMeta) MarshalBytes

func (f *FUSECreateMeta) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSECreateMeta) MarshalUnsafe

func (f *FUSECreateMeta) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSECreateMeta) Packed

func (f *FUSECreateMeta) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSECreateMeta) SizeBytes

func (f *FUSECreateMeta) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSECreateMeta) UnmarshalBytes

func (f *FUSECreateMeta) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSECreateMeta) UnmarshalUnsafe

func (f *FUSECreateMeta) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSECreateMeta) WriteTo

func (f *FUSECreateMeta) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEDirent

type FUSEDirent struct {
	marshal.StubMarshallable

	// Meta contains all the static fields of FUSEDirent.
	Meta FUSEDirentMeta

	// Name is the filename of the dirent.
	Name string
}

FUSEDirent is a Dirent received from the FUSE daemon server. It is used for FUSE_READDIR.

Dynamically-sized objects cannot be marshalled.

func (*FUSEDirent) SizeBytes

func (r *FUSEDirent) SizeBytes() int

SizeBytes is the size of the memory representation of FUSEDirent.

func (*FUSEDirent) UnmarshalBytes

func (r *FUSEDirent) UnmarshalBytes(src []byte)

UnmarshalBytes deserializes FUSEDirent from the src buffer.

type FUSEDirentMeta

type FUSEDirentMeta struct {
	// Inode of the dirent.
	Ino uint64

	// Offset of the dirent.
	Off uint64

	// NameLen is the length of the dirent name.
	NameLen uint32

	// Type of the dirent.
	Type uint32
}

FUSEDirentMeta contains all the static fields of FUSEDirent. It is used for FUSE_READDIR.

+marshal

func (*FUSEDirentMeta) CopyIn

func (f *FUSEDirentMeta) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEDirentMeta) CopyOut

func (f *FUSEDirentMeta) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEDirentMeta) CopyOutN

func (f *FUSEDirentMeta) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEDirentMeta) MarshalBytes

func (f *FUSEDirentMeta) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEDirentMeta) MarshalUnsafe

func (f *FUSEDirentMeta) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEDirentMeta) Packed

func (f *FUSEDirentMeta) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEDirentMeta) SizeBytes

func (f *FUSEDirentMeta) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEDirentMeta) UnmarshalBytes

func (f *FUSEDirentMeta) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEDirentMeta) UnmarshalUnsafe

func (f *FUSEDirentMeta) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEDirentMeta) WriteTo

func (f *FUSEDirentMeta) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEDirents

type FUSEDirents struct {
	marshal.StubMarshallable

	Dirents []*FUSEDirent
}

FUSEDirents is a list of Dirents received from the FUSE daemon server. It is used for FUSE_READDIR.

Dynamically-sized objects cannot be marshalled.

func (*FUSEDirents) SizeBytes

func (r *FUSEDirents) SizeBytes() int

SizeBytes is the size of the memory representation of FUSEDirents.

func (*FUSEDirents) UnmarshalBytes

func (r *FUSEDirents) UnmarshalBytes(src []byte)

UnmarshalBytes deserializes FUSEDirents from the src buffer.

type FUSEEmptyIn

type FUSEEmptyIn struct{ marshal.StubMarshallable }

FUSEEmptyIn is used by operations without request body.

func (*FUSEEmptyIn) MarshalBytes

func (r *FUSEEmptyIn) MarshalBytes(buf []byte)

MarshalBytes do nothing for marshal.

func (*FUSEEmptyIn) SizeBytes

func (r *FUSEEmptyIn) SizeBytes() int

SizeBytes is 0 for empty request.

type FUSEEntryOut

type FUSEEntryOut struct {
	// NodeID is the ID for current inode.
	NodeID uint64

	// Generation is the generation number of inode.
	// Used to identify an inode that have different ID at different time.
	Generation uint64

	// EntryValid indicates timeout for an entry.
	EntryValid uint64

	// AttrValid indicates timeout for an entry's attributes.
	AttrValid uint64

	// EntryValidNsec indicates timeout for an entry in nanosecond.
	EntryValidNSec uint32

	// AttrValidNsec indicates timeout for an entry's attributes in nanosecond.
	AttrValidNSec uint32

	// Attr contains the attributes of an entry.
	Attr FUSEAttr
}

FUSEEntryOut is the reply sent by the daemon to the kernel for FUSE_MKNOD, FUSE_MKDIR, FUSE_SYMLINK, FUSE_LINK and FUSE_LOOKUP.

+marshal

func (*FUSEEntryOut) CopyIn

func (f *FUSEEntryOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEEntryOut) CopyOut

func (f *FUSEEntryOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEEntryOut) CopyOutN

func (f *FUSEEntryOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEEntryOut) MarshalBytes

func (f *FUSEEntryOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEEntryOut) MarshalUnsafe

func (f *FUSEEntryOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEEntryOut) Packed

func (f *FUSEEntryOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEEntryOut) SizeBytes

func (f *FUSEEntryOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEEntryOut) UnmarshalBytes

func (f *FUSEEntryOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEEntryOut) UnmarshalUnsafe

func (f *FUSEEntryOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEEntryOut) WriteTo

func (f *FUSEEntryOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEGetAttrIn

type FUSEGetAttrIn struct {
	// GetAttrFlags specifies whether getattr request is sent with a nodeid or
	// with a file handle.
	GetAttrFlags uint32

	// Fh is the file handler when GetAttrFlags has FUSE_GETATTR_FH bit. If
	// used, the operation is analogous to fstat(2).
	Fh uint64
	// contains filtered or unexported fields
}

FUSEGetAttrIn is the request sent by the kernel to the daemon, to get the attribute of a inode.

+marshal

func (*FUSEGetAttrIn) CopyIn

func (f *FUSEGetAttrIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEGetAttrIn) CopyOut

func (f *FUSEGetAttrIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEGetAttrIn) CopyOutN

func (f *FUSEGetAttrIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEGetAttrIn) MarshalBytes

func (f *FUSEGetAttrIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEGetAttrIn) MarshalUnsafe

func (f *FUSEGetAttrIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEGetAttrIn) Packed

func (f *FUSEGetAttrIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEGetAttrIn) SizeBytes

func (f *FUSEGetAttrIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEGetAttrIn) UnmarshalBytes

func (f *FUSEGetAttrIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEGetAttrIn) UnmarshalUnsafe

func (f *FUSEGetAttrIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEGetAttrIn) WriteTo

func (f *FUSEGetAttrIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEGetAttrOut

type FUSEGetAttrOut struct {
	// AttrValid and AttrValidNsec describe the attribute cache duration
	AttrValid uint64

	// AttrValidNsec is the nanosecond part of the attribute cache duration
	AttrValidNsec uint32

	// Attr contains the metadata returned from the FUSE server
	Attr FUSEAttr
	// contains filtered or unexported fields
}

FUSEGetAttrOut is the reply sent by the daemon to the kernel for FUSEGetAttrIn.

+marshal

func (*FUSEGetAttrOut) CopyIn

func (f *FUSEGetAttrOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEGetAttrOut) CopyOut

func (f *FUSEGetAttrOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEGetAttrOut) CopyOutN

func (f *FUSEGetAttrOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEGetAttrOut) MarshalBytes

func (f *FUSEGetAttrOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEGetAttrOut) MarshalUnsafe

func (f *FUSEGetAttrOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEGetAttrOut) Packed

func (f *FUSEGetAttrOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEGetAttrOut) SizeBytes

func (f *FUSEGetAttrOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEGetAttrOut) UnmarshalBytes

func (f *FUSEGetAttrOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEGetAttrOut) UnmarshalUnsafe

func (f *FUSEGetAttrOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEGetAttrOut) WriteTo

func (f *FUSEGetAttrOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEHeaderIn

type FUSEHeaderIn struct {
	// Len specifies the total length of the data, including this header.
	Len uint32

	// Opcode specifies the kind of operation of the request.
	Opcode FUSEOpcode

	// Unique specifies the unique identifier for this request.
	Unique FUSEOpID

	// NodeID is the ID of the filesystem object being operated on.
	NodeID uint64

	// UID is the UID of the requesting process.
	UID uint32

	// GID is the GID of the requesting process.
	GID uint32

	// PID is the PID of the requesting process.
	PID uint32
	// contains filtered or unexported fields
}

FUSEHeaderIn is the header read by the daemon with each request.

+marshal

func (*FUSEHeaderIn) CopyIn

func (f *FUSEHeaderIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEHeaderIn) CopyOut

func (f *FUSEHeaderIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEHeaderIn) CopyOutN

func (f *FUSEHeaderIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEHeaderIn) MarshalBytes

func (f *FUSEHeaderIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEHeaderIn) MarshalUnsafe

func (f *FUSEHeaderIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEHeaderIn) Packed

func (f *FUSEHeaderIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEHeaderIn) SizeBytes

func (f *FUSEHeaderIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEHeaderIn) UnmarshalBytes

func (f *FUSEHeaderIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEHeaderIn) UnmarshalUnsafe

func (f *FUSEHeaderIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEHeaderIn) WriteTo

func (f *FUSEHeaderIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEHeaderOut

type FUSEHeaderOut struct {
	// Len specifies the total length of the data, including this header.
	Len uint32

	// Error specifies the error that occurred (0 if none).
	Error int32

	// Unique specifies the unique identifier of the corresponding request.
	Unique FUSEOpID
}

FUSEHeaderOut is the header written by the daemon when it processes a request and wants to send a reply (almost all operations require a reply; if they do not, this will be explicitly documented).

+marshal

func (*FUSEHeaderOut) CopyIn

func (f *FUSEHeaderOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEHeaderOut) CopyOut

func (f *FUSEHeaderOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEHeaderOut) CopyOutN

func (f *FUSEHeaderOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEHeaderOut) MarshalBytes

func (f *FUSEHeaderOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEHeaderOut) MarshalUnsafe

func (f *FUSEHeaderOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEHeaderOut) Packed

func (f *FUSEHeaderOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEHeaderOut) SizeBytes

func (f *FUSEHeaderOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEHeaderOut) UnmarshalBytes

func (f *FUSEHeaderOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEHeaderOut) UnmarshalUnsafe

func (f *FUSEHeaderOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEHeaderOut) WriteTo

func (f *FUSEHeaderOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEInitIn

type FUSEInitIn struct {
	// Major version supported by kernel.
	Major uint32

	// Minor version supported by the kernel.
	Minor uint32

	// MaxReadahead is the maximum number of bytes to read-ahead
	// decided by the kernel.
	MaxReadahead uint32

	// Flags of this init request.
	Flags uint32
}

FUSEInitIn is the request sent by the kernel to the daemon, to negotiate the version and flags.

+marshal

func (*FUSEInitIn) CopyIn

func (f *FUSEInitIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEInitIn) CopyOut

func (f *FUSEInitIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEInitIn) CopyOutN

func (f *FUSEInitIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEInitIn) MarshalBytes

func (f *FUSEInitIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEInitIn) MarshalUnsafe

func (f *FUSEInitIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEInitIn) Packed

func (f *FUSEInitIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEInitIn) SizeBytes

func (f *FUSEInitIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEInitIn) UnmarshalBytes

func (f *FUSEInitIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEInitIn) UnmarshalUnsafe

func (f *FUSEInitIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEInitIn) WriteTo

func (f *FUSEInitIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEInitOut

type FUSEInitOut struct {
	// Major version supported by daemon.
	Major uint32

	// Minor version supported by daemon.
	Minor uint32

	// MaxReadahead is the maximum number of bytes to read-ahead.
	// Decided by the daemon, after receiving the value from kernel.
	MaxReadahead uint32

	// Flags of this init reply.
	Flags uint32

	// MaxBackground is the maximum number of pending background requests
	// that the daemon wants.
	MaxBackground uint16

	// CongestionThreshold is the daemon-decided threshold for
	// the number of the pending background requests.
	CongestionThreshold uint16

	// MaxWrite is the daemon's maximum size of a write buffer.
	// Kernel adjusts it to the minimum (fuse/init.go:fuseMinMaxWrite).
	// if the value from daemon is too small.
	MaxWrite uint32

	// TimeGran is the daemon's time granularity for mtime and ctime metadata.
	// The unit is nanosecond.
	// Value should be power of 10.
	// 1 indicates full nanosecond granularity support.
	TimeGran uint32

	// MaxPages is the daemon's maximum number of pages for one write operation.
	// Kernel adjusts it to the maximum (fuse/init.go:FUSE_MAX_MAX_PAGES).
	// if the value from daemon is too large.
	MaxPages uint16
	// contains filtered or unexported fields
}

FUSEInitOut is the reply sent by the daemon to the kernel for FUSEInitIn. We target FUSE 7.23; this struct supports 7.28.

+marshal

func (*FUSEInitOut) CopyIn

func (f *FUSEInitOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEInitOut) CopyOut

func (f *FUSEInitOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEInitOut) CopyOutN

func (f *FUSEInitOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEInitOut) MarshalBytes

func (f *FUSEInitOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEInitOut) MarshalUnsafe

func (f *FUSEInitOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEInitOut) Packed

func (f *FUSEInitOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEInitOut) SizeBytes

func (f *FUSEInitOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEInitOut) UnmarshalBytes

func (f *FUSEInitOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEInitOut) UnmarshalUnsafe

func (f *FUSEInitOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEInitOut) WriteTo

func (f *FUSEInitOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSELookupIn

type FUSELookupIn struct {
	marshal.StubMarshallable

	// Name is a file name to be looked up.
	Name string
}

FUSELookupIn is the request sent by the kernel to the daemon to look up a file name.

Dynamically-sized objects cannot be marshalled.

func (*FUSELookupIn) MarshalBytes

func (r *FUSELookupIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.name to the dst buffer.

func (*FUSELookupIn) SizeBytes

func (r *FUSELookupIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSELookupIn. 1 extra byte for null-terminated string.

type FUSEMkdirIn

type FUSEMkdirIn struct {
	marshal.StubMarshallable

	// MkdirMeta contains Mode and Umask of the directory to create.
	MkdirMeta FUSEMkdirMeta

	// Name of the directory to create.
	Name string
}

FUSEMkdirIn contains all the arguments sent by the kernel to the daemon, to create a new directory.

Dynamically-sized objects cannot be marshalled.

func (*FUSEMkdirIn) MarshalBytes

func (r *FUSEMkdirIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.MkdirMeta and r.Name to the dst buffer.

func (*FUSEMkdirIn) SizeBytes

func (r *FUSEMkdirIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSEMkdirIn. 1 extra byte for null-terminated Name string.

type FUSEMkdirMeta

type FUSEMkdirMeta struct {
	// Mode of the directory of create.
	Mode uint32

	// Umask is the user file creation mask.
	Umask uint32
}

FUSEMkdirMeta contains all the static fields of FUSEMkdirIn, which is used for FUSE_MKDIR.

+marshal

func (*FUSEMkdirMeta) CopyIn

func (f *FUSEMkdirMeta) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEMkdirMeta) CopyOut

func (f *FUSEMkdirMeta) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEMkdirMeta) CopyOutN

func (f *FUSEMkdirMeta) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEMkdirMeta) MarshalBytes

func (f *FUSEMkdirMeta) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEMkdirMeta) MarshalUnsafe

func (f *FUSEMkdirMeta) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEMkdirMeta) Packed

func (f *FUSEMkdirMeta) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEMkdirMeta) SizeBytes

func (f *FUSEMkdirMeta) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEMkdirMeta) UnmarshalBytes

func (f *FUSEMkdirMeta) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEMkdirMeta) UnmarshalUnsafe

func (f *FUSEMkdirMeta) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEMkdirMeta) WriteTo

func (f *FUSEMkdirMeta) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEMknodIn

type FUSEMknodIn struct {
	marshal.StubMarshallable

	// MknodMeta contains mode, rdev and umash field for FUSE_MKNODS.
	MknodMeta FUSEMknodMeta

	// Name is the name of the node to create.
	Name string
}

FUSEMknodIn contains all the arguments sent by the kernel to the daemon, to create a new file node.

Dynamically-sized objects cannot be marshalled.

func (*FUSEMknodIn) MarshalBytes

func (r *FUSEMknodIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.MknodMeta and r.Name to the dst buffer.

func (*FUSEMknodIn) SizeBytes

func (r *FUSEMknodIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSEMknodIn. 1 extra byte for null-terminated string.

type FUSEMknodMeta

type FUSEMknodMeta struct {
	// Mode of the inode to create.
	Mode uint32

	// Rdev encodes device major and minor information.
	Rdev uint32

	// Umask is the current file mode creation mask.
	Umask uint32
	// contains filtered or unexported fields
}

FUSEMknodMeta contains all the static fields of FUSEMknodIn, which is used for FUSE_MKNOD.

+marshal

func (*FUSEMknodMeta) CopyIn

func (f *FUSEMknodMeta) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEMknodMeta) CopyOut

func (f *FUSEMknodMeta) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEMknodMeta) CopyOutN

func (f *FUSEMknodMeta) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEMknodMeta) MarshalBytes

func (f *FUSEMknodMeta) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEMknodMeta) MarshalUnsafe

func (f *FUSEMknodMeta) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEMknodMeta) Packed

func (f *FUSEMknodMeta) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEMknodMeta) SizeBytes

func (f *FUSEMknodMeta) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEMknodMeta) UnmarshalBytes

func (f *FUSEMknodMeta) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEMknodMeta) UnmarshalUnsafe

func (f *FUSEMknodMeta) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEMknodMeta) WriteTo

func (f *FUSEMknodMeta) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEOpID

type FUSEOpID uint64

FUSEOpID is a FUSE operation ID.

+marshal

func (*FUSEOpID) CopyIn

func (f *FUSEOpID) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEOpID) CopyOut

func (f *FUSEOpID) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEOpID) CopyOutN

func (f *FUSEOpID) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEOpID) MarshalBytes

func (f *FUSEOpID) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEOpID) MarshalUnsafe

func (f *FUSEOpID) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEOpID) Packed

func (f *FUSEOpID) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEOpID) SizeBytes

func (f *FUSEOpID) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEOpID) UnmarshalBytes

func (f *FUSEOpID) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEOpID) UnmarshalUnsafe

func (f *FUSEOpID) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEOpID) WriteTo

func (f *FUSEOpID) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEOpcode

type FUSEOpcode uint32

FUSEOpcode is a FUSE operation code.

+marshal

func (*FUSEOpcode) CopyIn

func (f *FUSEOpcode) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEOpcode) CopyOut

func (f *FUSEOpcode) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEOpcode) CopyOutN

func (f *FUSEOpcode) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEOpcode) MarshalBytes

func (f *FUSEOpcode) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEOpcode) MarshalUnsafe

func (f *FUSEOpcode) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEOpcode) Packed

func (f *FUSEOpcode) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEOpcode) SizeBytes

func (f *FUSEOpcode) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEOpcode) UnmarshalBytes

func (f *FUSEOpcode) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEOpcode) UnmarshalUnsafe

func (f *FUSEOpcode) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEOpcode) WriteTo

func (f *FUSEOpcode) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEOpenIn

type FUSEOpenIn struct {
	// Flags of this open request.
	Flags uint32
	// contains filtered or unexported fields
}

FUSEOpenIn is the request sent by the kernel to the daemon, to negotiate flags and get file handle.

+marshal

func (*FUSEOpenIn) CopyIn

func (f *FUSEOpenIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEOpenIn) CopyOut

func (f *FUSEOpenIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEOpenIn) CopyOutN

func (f *FUSEOpenIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEOpenIn) MarshalBytes

func (f *FUSEOpenIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEOpenIn) MarshalUnsafe

func (f *FUSEOpenIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEOpenIn) Packed

func (f *FUSEOpenIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEOpenIn) SizeBytes

func (f *FUSEOpenIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEOpenIn) UnmarshalBytes

func (f *FUSEOpenIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEOpenIn) UnmarshalUnsafe

func (f *FUSEOpenIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEOpenIn) WriteTo

func (f *FUSEOpenIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEOpenOut

type FUSEOpenOut struct {
	// Fh is the file handler for opened file.
	Fh uint64

	// OpenFlag for the opened file.
	OpenFlag uint32
	// contains filtered or unexported fields
}

FUSEOpenOut is the reply sent by the daemon to the kernel for FUSEOpenIn.

+marshal

func (*FUSEOpenOut) CopyIn

func (f *FUSEOpenOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEOpenOut) CopyOut

func (f *FUSEOpenOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEOpenOut) CopyOutN

func (f *FUSEOpenOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEOpenOut) MarshalBytes

func (f *FUSEOpenOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEOpenOut) MarshalUnsafe

func (f *FUSEOpenOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEOpenOut) Packed

func (f *FUSEOpenOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEOpenOut) SizeBytes

func (f *FUSEOpenOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEOpenOut) UnmarshalBytes

func (f *FUSEOpenOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEOpenOut) UnmarshalUnsafe

func (f *FUSEOpenOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEOpenOut) WriteTo

func (f *FUSEOpenOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEReadIn

type FUSEReadIn struct {
	// Fh is the file handle in userspace.
	Fh uint64

	// Offset is the read offset.
	Offset uint64

	// Size is the number of bytes to read.
	Size uint32

	// ReadFlags for this FUSE_READ request.
	// Currently only contains FUSE_READ_LOCKOWNER.
	ReadFlags uint32

	// LockOwner is the id of the lock owner if there is one.
	LockOwner uint64

	// Flags for the underlying file.
	Flags uint32
	// contains filtered or unexported fields
}

FUSEReadIn is the request sent by the kernel to the daemon for FUSE_READ.

+marshal

func (*FUSEReadIn) CopyIn

func (f *FUSEReadIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEReadIn) CopyOut

func (f *FUSEReadIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEReadIn) CopyOutN

func (f *FUSEReadIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEReadIn) MarshalBytes

func (f *FUSEReadIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEReadIn) MarshalUnsafe

func (f *FUSEReadIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEReadIn) Packed

func (f *FUSEReadIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEReadIn) SizeBytes

func (f *FUSEReadIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEReadIn) UnmarshalBytes

func (f *FUSEReadIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEReadIn) UnmarshalUnsafe

func (f *FUSEReadIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEReadIn) WriteTo

func (f *FUSEReadIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEReleaseIn

type FUSEReleaseIn struct {
	// Fh is the file handler for the file to be released.
	Fh uint64

	// Flags of the file.
	Flags uint32

	// ReleaseFlags of this release request.
	ReleaseFlags uint32

	// LockOwner is the id of the lock owner if there is one.
	LockOwner uint64
}

FUSEReleaseIn is the request sent by the kernel to the daemon when there is no more reference to a file.

+marshal

func (*FUSEReleaseIn) CopyIn

func (f *FUSEReleaseIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEReleaseIn) CopyOut

func (f *FUSEReleaseIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEReleaseIn) CopyOutN

func (f *FUSEReleaseIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEReleaseIn) MarshalBytes

func (f *FUSEReleaseIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEReleaseIn) MarshalUnsafe

func (f *FUSEReleaseIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEReleaseIn) Packed

func (f *FUSEReleaseIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEReleaseIn) SizeBytes

func (f *FUSEReleaseIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEReleaseIn) UnmarshalBytes

func (f *FUSEReleaseIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEReleaseIn) UnmarshalUnsafe

func (f *FUSEReleaseIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEReleaseIn) WriteTo

func (f *FUSEReleaseIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSERmDirIn

type FUSERmDirIn struct {
	marshal.StubMarshallable

	// Name is a directory name to be removed.
	Name string
}

FUSERmDirIn is the request sent by the kernel to the daemon when trying to remove a directory.

Dynamically-sized objects cannot be marshalled.

func (*FUSERmDirIn) MarshalBytes

func (r *FUSERmDirIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.name to the dst buffer.

func (*FUSERmDirIn) SizeBytes

func (r *FUSERmDirIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSERmDirIn.

type FUSESetAttrIn

type FUSESetAttrIn struct {
	// Valid indicates which attributes are modified by this request.
	Valid uint32

	// Fh is used to identify the file if FATTR_FH is set in Valid.
	Fh uint64

	// Size is the size that the request wants to change to.
	Size uint64

	// LockOwner is the owner of the lock that the request wants to change to.
	LockOwner uint64

	// Atime is the access time that the request wants to change to.
	Atime uint64

	// Mtime is the modification time that the request wants to change to.
	Mtime uint64

	// Ctime is the status change time that the request wants to change to.
	Ctime uint64

	// AtimeNsec is the nano second part of Atime.
	AtimeNsec uint32

	// MtimeNsec is the nano second part of Mtime.
	MtimeNsec uint32

	// CtimeNsec is the nano second part of Ctime.
	CtimeNsec uint32

	// Mode is the file mode that the request wants to change to.
	Mode uint32

	// UID is the user ID of the owner that the request wants to change to.
	UID uint32

	// GID is the group ID of the owner that the request wants to change to.
	GID uint32
	// contains filtered or unexported fields
}

FUSESetAttrIn is the request sent by the kernel to the daemon, to set the attribute(s) of a file.

+marshal

func (*FUSESetAttrIn) CopyIn

func (f *FUSESetAttrIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSESetAttrIn) CopyOut

func (f *FUSESetAttrIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSESetAttrIn) CopyOutN

func (f *FUSESetAttrIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSESetAttrIn) MarshalBytes

func (f *FUSESetAttrIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSESetAttrIn) MarshalUnsafe

func (f *FUSESetAttrIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSESetAttrIn) Packed

func (f *FUSESetAttrIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSESetAttrIn) SizeBytes

func (f *FUSESetAttrIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSESetAttrIn) UnmarshalBytes

func (f *FUSESetAttrIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSESetAttrIn) UnmarshalUnsafe

func (f *FUSESetAttrIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSESetAttrIn) WriteTo

func (f *FUSESetAttrIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSESymLinkIn

type FUSESymLinkIn struct {
	marshal.StubMarshallable

	// Name of symlink to create.
	Name string

	// Target of the symlink.
	Target string
}

FUSESymLinkIn is the request sent by the kernel to the daemon, to create a symbolic link.

Dynamically-sized objects cannot be marshalled.

func (*FUSESymLinkIn) MarshalBytes

func (r *FUSESymLinkIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.Name and r.Target to the dst buffer. Left null-termination at end of r.Name and r.Target.

func (*FUSESymLinkIn) SizeBytes

func (r *FUSESymLinkIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSESymLinkIn. 2 extra bytes for null-terminated string.

type FUSEUnlinkIn

type FUSEUnlinkIn struct {
	marshal.StubMarshallable

	// Name of the node to unlink.
	Name string
}

FUSEUnlinkIn is the request sent by the kernel to the daemon when trying to unlink a node.

Dynamically-sized objects cannot be marshalled.

func (*FUSEUnlinkIn) MarshalBytes

func (r *FUSEUnlinkIn) MarshalBytes(buf []byte)

MarshalBytes serializes r.name to the dst buffer, which should have size len(r.Name) + 1 and last byte set to 0.

func (*FUSEUnlinkIn) SizeBytes

func (r *FUSEUnlinkIn) SizeBytes() int

SizeBytes is the size of the memory representation of FUSEUnlinkIn. 1 extra byte for null-terminated Name string.

type FUSEWriteIn

type FUSEWriteIn struct {
	// Fh is the file handle in userspace.
	Fh uint64

	// Offset is the write offset.
	Offset uint64

	// Size is the number of bytes to write.
	Size uint32

	// ReadFlags for this FUSE_WRITE request.
	WriteFlags uint32

	// LockOwner is the id of the lock owner if there is one.
	LockOwner uint64

	// Flags for the underlying file.
	Flags uint32
	// contains filtered or unexported fields
}

FUSEWriteIn is the first part of the payload of the request sent by the kernel to the daemon for FUSE_WRITE (struct for FUSE version >= 7.9).

The second part of the payload is the binary bytes of the data to be written.

+marshal

func (*FUSEWriteIn) CopyIn

func (f *FUSEWriteIn) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEWriteIn) CopyOut

func (f *FUSEWriteIn) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEWriteIn) CopyOutN

func (f *FUSEWriteIn) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEWriteIn) MarshalBytes

func (f *FUSEWriteIn) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEWriteIn) MarshalUnsafe

func (f *FUSEWriteIn) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEWriteIn) Packed

func (f *FUSEWriteIn) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEWriteIn) SizeBytes

func (f *FUSEWriteIn) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEWriteIn) UnmarshalBytes

func (f *FUSEWriteIn) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEWriteIn) UnmarshalUnsafe

func (f *FUSEWriteIn) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEWriteIn) WriteTo

func (f *FUSEWriteIn) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FUSEWriteOut

type FUSEWriteOut struct {
	// Size is the number of bytes written.
	Size uint32
	// contains filtered or unexported fields
}

FUSEWriteOut is the payload of the reply sent by the daemon to the kernel for a FUSE_WRITE request.

+marshal

func (*FUSEWriteOut) CopyIn

func (f *FUSEWriteOut) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*FUSEWriteOut) CopyOut

func (f *FUSEWriteOut) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*FUSEWriteOut) CopyOutN

func (f *FUSEWriteOut) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*FUSEWriteOut) MarshalBytes

func (f *FUSEWriteOut) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*FUSEWriteOut) MarshalUnsafe

func (f *FUSEWriteOut) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*FUSEWriteOut) Packed

func (f *FUSEWriteOut) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*FUSEWriteOut) SizeBytes

func (f *FUSEWriteOut) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*FUSEWriteOut) UnmarshalBytes

func (f *FUSEWriteOut) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*FUSEWriteOut) UnmarshalUnsafe

func (f *FUSEWriteOut) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*FUSEWriteOut) WriteTo

func (f *FUSEWriteOut) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type FileMode

type FileMode uint16

FileMode represents a mode_t.

func (FileMode) DirentType

func (m FileMode) DirentType() uint8

DirentType maps file types to dirent types appropriate for (struct dirent)::d_type.

func (FileMode) ExtraBits

func (m FileMode) ExtraBits() FileMode

ExtraBits returns everything but the file type and permission bits.

func (FileMode) FileType

func (m FileMode) FileType() FileMode

FileType returns just the file type bits.

func (FileMode) IsDir

func (m FileMode) IsDir() bool

IsDir returns true if file type represents a directory.

func (FileMode) Permissions

func (m FileMode) Permissions() FileMode

Permissions returns just the permission bits.

func (FileMode) String

func (m FileMode) String() string

String returns a string representation of m.

type Flock

type Flock struct {
	Type   int16
	Whence int16

	Start int64
	Len   int64
	PID   int32
	// contains filtered or unexported fields
}

Flock is the lock structure for F_SETLK.

+marshal

func (*Flock) CopyIn

func (f *Flock) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Flock) CopyOut

func (f *Flock) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Flock) CopyOutN

func (f *Flock) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Flock) MarshalBytes

func (f *Flock) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Flock) MarshalUnsafe

func (f *Flock) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Flock) Packed

func (f *Flock) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Flock) SizeBytes

func (f *Flock) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Flock) UnmarshalBytes

func (f *Flock) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Flock) UnmarshalUnsafe

func (f *Flock) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Flock) WriteTo

func (f *Flock) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IFConf

type IFConf struct {
	Len int32

	Ptr uint64
	// contains filtered or unexported fields
}

IFConf is used to return a list of interfaces and their addresses. See netdevice(7) and struct ifconf for more detail on its use.

+marshal

func (*IFConf) CopyIn

func (i *IFConf) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IFConf) CopyOut

func (i *IFConf) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IFConf) CopyOutN

func (i *IFConf) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IFConf) MarshalBytes

func (i *IFConf) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IFConf) MarshalUnsafe

func (i *IFConf) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IFConf) Packed

func (i *IFConf) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IFConf) SizeBytes

func (i *IFConf) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IFConf) UnmarshalBytes

func (i *IFConf) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IFConf) UnmarshalUnsafe

func (i *IFConf) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IFConf) WriteTo

func (i *IFConf) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IFMap

type IFMap struct {
	MemStart uint64
	MemEnd   uint64
	BaseAddr int16
	IRQ      byte
	DMA      byte
	Port     byte
	// contains filtered or unexported fields
}

IFMap contains interface hardware parameters.

type IFReq

type IFReq struct {
	// IFName is an encoded name, normally null-terminated. This should be
	// accessed via the Name and SetName functions.
	IFName [IFNAMSIZ]byte

	// Data is the union of the following structures:
	//
	//	struct sockaddr ifr_addr;
	//	struct sockaddr ifr_dstaddr;
	//	struct sockaddr ifr_broadaddr;
	//	struct sockaddr ifr_netmask;
	//	struct sockaddr ifr_hwaddr;
	//	short           ifr_flags;
	//	int             ifr_ifindex;
	//	int             ifr_metric;
	//	int             ifr_mtu;
	//	struct ifmap    ifr_map;
	//	char            ifr_slave[IFNAMSIZ];
	//	char            ifr_newname[IFNAMSIZ];
	//	char           *ifr_data;
	Data [24]byte
}

IFReq is an interface request.

+marshal

func (*IFReq) CopyIn

func (ifr *IFReq) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IFReq) CopyOut

func (ifr *IFReq) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IFReq) CopyOutN

func (ifr *IFReq) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IFReq) MarshalBytes

func (ifr *IFReq) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IFReq) MarshalUnsafe

func (ifr *IFReq) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IFReq) Name

func (ifr *IFReq) Name() string

Name returns the name.

func (*IFReq) Packed

func (ifr *IFReq) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IFReq) SetName

func (ifr *IFReq) SetName(name string)

SetName sets the name.

func (*IFReq) SizeBytes

func (ifr *IFReq) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IFReq) UnmarshalBytes

func (ifr *IFReq) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IFReq) UnmarshalUnsafe

func (ifr *IFReq) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IFReq) WriteTo

func (ifr *IFReq) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IOCallback

type IOCallback struct {
	Data uint64
	Key  uint32

	OpCode  uint16
	ReqPrio int16
	FD      int32

	Buf    uint64
	Bytes  uint64
	Offset int64

	Reserved2 uint64
	Flags     uint32

	// eventfd to signal if IOCB_FLAG_RESFD is set in flags.
	ResFD int32
	// contains filtered or unexported fields
}

IOCallback describes an I/O request.

The priority field is currently ignored in the implementation below. Also note that the IOCB_FLAG_RESFD feature is not supported.

+marshal

func (*IOCallback) CopyIn

func (i *IOCallback) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IOCallback) CopyOut

func (i *IOCallback) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IOCallback) CopyOutN

func (i *IOCallback) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IOCallback) MarshalBytes

func (i *IOCallback) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IOCallback) MarshalUnsafe

func (i *IOCallback) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IOCallback) Packed

func (i *IOCallback) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IOCallback) SizeBytes

func (i *IOCallback) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IOCallback) UnmarshalBytes

func (i *IOCallback) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IOCallback) UnmarshalUnsafe

func (i *IOCallback) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IOCallback) WriteTo

func (i *IOCallback) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IOEvent

type IOEvent struct {
	Data    uint64
	Obj     uint64
	Result  int64
	Result2 int64
}

IOEvent describes an I/O result.

+marshal +stateify savable

func (*IOEvent) CopyIn

func (i *IOEvent) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IOEvent) CopyOut

func (i *IOEvent) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IOEvent) CopyOutN

func (i *IOEvent) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IOEvent) MarshalBytes

func (i *IOEvent) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IOEvent) MarshalUnsafe

func (i *IOEvent) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IOEvent) Packed

func (i *IOEvent) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IOEvent) SizeBytes

func (i *IOEvent) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IOEvent) StateFields

func (i *IOEvent) StateFields() []string

func (*IOEvent) StateLoad

func (i *IOEvent) StateLoad(stateSourceObject state.Source)

func (*IOEvent) StateSave

func (i *IOEvent) StateSave(stateSinkObject state.Sink)

func (*IOEvent) StateTypeName

func (i *IOEvent) StateTypeName() string

func (*IOEvent) UnmarshalBytes

func (i *IOEvent) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IOEvent) UnmarshalUnsafe

func (i *IOEvent) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IOEvent) WriteTo

func (i *IOEvent) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IP6TEntry

type IP6TEntry struct {
	// IPv6 is used to filter packets based on the IPv6 header.
	IPv6 IP6TIP

	// NFCache relates to kernel-internal caching and isn't used by
	// userspace.
	NFCache uint32

	// TargetOffset is the byte offset from the beginning of this IPTEntry
	// to the start of the entry's target.
	TargetOffset uint16

	// NextOffset is the byte offset from the beginning of this IPTEntry to
	// the start of the next entry. It is thus also the size of the entry.
	NextOffset uint16

	// Comeback is a return pointer. It is not used by userspace.
	Comeback uint32

	// Counters holds the packet and byte counts for this rule.
	Counters XTCounters
	// contains filtered or unexported fields
}

IP6TEntry is an iptables rule. It corresponds to struct ip6t_entry in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

+marshal

func (*IP6TEntry) CopyIn

func (i *IP6TEntry) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IP6TEntry) CopyOut

func (i *IP6TEntry) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IP6TEntry) CopyOutN

func (i *IP6TEntry) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IP6TEntry) MarshalBytes

func (i *IP6TEntry) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IP6TEntry) MarshalUnsafe

func (i *IP6TEntry) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IP6TEntry) Packed

func (i *IP6TEntry) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IP6TEntry) SizeBytes

func (i *IP6TEntry) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IP6TEntry) UnmarshalBytes

func (i *IP6TEntry) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IP6TEntry) UnmarshalUnsafe

func (i *IP6TEntry) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IP6TEntry) WriteTo

func (i *IP6TEntry) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IP6TIP

type IP6TIP struct {
	// Src is the source IP address.
	Src Inet6Addr

	// Dst is the destination IP address.
	Dst Inet6Addr

	// SrcMask is the source IP mask.
	SrcMask Inet6Addr

	// DstMask is the destination IP mask.
	DstMask Inet6Addr

	// InputInterface is the input network interface.
	InputInterface [IFNAMSIZ]byte

	// OutputInterface is the output network interface.
	OutputInterface [IFNAMSIZ]byte

	// InputInterfaceMask is the input interface mask.
	InputInterfaceMask [IFNAMSIZ]byte

	// OuputInterfaceMask is the output interface mask.
	OutputInterfaceMask [IFNAMSIZ]byte

	// Protocol is the transport protocol.
	Protocol uint16

	// TOS matches TOS flags when Flags indicates filtering by TOS.
	TOS uint8

	// Flags define matching behavior for the IP header.
	Flags uint8

	// InverseFlags invert the meaning of fields in struct IPTIP. See the
	// IP6T_INV_* flags.
	InverseFlags uint8
	// contains filtered or unexported fields
}

IP6TIP contains information for matching a packet's IP header. It corresponds to struct ip6t_ip6 in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

+marshal

func (*IP6TIP) CopyIn

func (i *IP6TIP) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IP6TIP) CopyOut

func (i *IP6TIP) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IP6TIP) CopyOutN

func (i *IP6TIP) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IP6TIP) MarshalBytes

func (i *IP6TIP) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IP6TIP) MarshalUnsafe

func (i *IP6TIP) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IP6TIP) Packed

func (i *IP6TIP) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IP6TIP) SizeBytes

func (i *IP6TIP) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IP6TIP) UnmarshalBytes

func (i *IP6TIP) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IP6TIP) UnmarshalUnsafe

func (i *IP6TIP) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IP6TIP) WriteTo

func (i *IP6TIP) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IP6TReplace

type IP6TReplace struct {
	Name        TableName
	ValidHooks  uint32
	NumEntries  uint32
	Size        uint32
	HookEntry   [NF_INET_NUMHOOKS]uint32
	Underflow   [NF_INET_NUMHOOKS]uint32
	NumCounters uint32
	Counters    uint64 // This is really a *XTCounters.

}

IP6TReplace is the argument for the IP6T_SO_SET_REPLACE sockopt. It corresponds to struct ip6t_replace in include/uapi/linux/netfilter_ipv6/ip6_tables.h.

+marshal

func (*IP6TReplace) CopyIn

func (i *IP6TReplace) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IP6TReplace) CopyOut

func (i *IP6TReplace) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IP6TReplace) CopyOutN

func (i *IP6TReplace) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IP6TReplace) MarshalBytes

func (i *IP6TReplace) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IP6TReplace) MarshalUnsafe

func (i *IP6TReplace) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IP6TReplace) Packed

func (i *IP6TReplace) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IP6TReplace) SizeBytes

func (i *IP6TReplace) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IP6TReplace) UnmarshalBytes

func (i *IP6TReplace) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IP6TReplace) UnmarshalUnsafe

func (i *IP6TReplace) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IP6TReplace) WriteTo

func (i *IP6TReplace) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPCPerm

type IPCPerm struct {
	Key  uint32
	UID  uint32
	GID  uint32
	CUID uint32
	CGID uint32
	Mode uint16

	Seq uint16
	// contains filtered or unexported fields
}

IPCPerm is equivalent to struct ipc64_perm.

+marshal

func (*IPCPerm) CopyIn

func (i *IPCPerm) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IPCPerm) CopyOut

func (i *IPCPerm) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IPCPerm) CopyOutN

func (i *IPCPerm) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IPCPerm) MarshalBytes

func (i *IPCPerm) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IPCPerm) MarshalUnsafe

func (i *IPCPerm) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IPCPerm) Packed

func (i *IPCPerm) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IPCPerm) SizeBytes

func (i *IPCPerm) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IPCPerm) UnmarshalBytes

func (i *IPCPerm) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IPCPerm) UnmarshalUnsafe

func (i *IPCPerm) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IPCPerm) WriteTo

func (i *IPCPerm) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPTEntry

type IPTEntry struct {
	// IP is used to filter packets based on the IP header.
	IP IPTIP

	// NFCache relates to kernel-internal caching and isn't used by
	// userspace.
	NFCache uint32

	// TargetOffset is the byte offset from the beginning of this IPTEntry
	// to the start of the entry's target.
	TargetOffset uint16

	// NextOffset is the byte offset from the beginning of this IPTEntry to
	// the start of the next entry. It is thus also the size of the entry.
	NextOffset uint16

	// Comeback is a return pointer. It is not used by userspace.
	Comeback uint32

	// Counters holds the packet and byte counts for this rule.
	Counters XTCounters
}

IPTEntry is an iptable rule. It corresponds to struct ipt_entry in include/uapi/linux/netfilter_ipv4/ip_tables.h.

+marshal

func (*IPTEntry) CopyIn

func (i *IPTEntry) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IPTEntry) CopyOut

func (i *IPTEntry) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IPTEntry) CopyOutN

func (i *IPTEntry) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IPTEntry) MarshalBytes

func (i *IPTEntry) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IPTEntry) MarshalUnsafe

func (i *IPTEntry) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IPTEntry) Packed

func (i *IPTEntry) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IPTEntry) SizeBytes

func (i *IPTEntry) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IPTEntry) UnmarshalBytes

func (i *IPTEntry) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IPTEntry) UnmarshalUnsafe

func (i *IPTEntry) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IPTEntry) WriteTo

func (i *IPTEntry) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPTGetEntries

type IPTGetEntries struct {
	Name TableName
	Size uint32
	// contains filtered or unexported fields
}

IPTGetEntries is the argument for the IPT_SO_GET_ENTRIES sockopt. It corresponds to struct ipt_get_entries in include/uapi/linux/netfilter_ipv4/ip_tables.h.

+marshal

func (*IPTGetEntries) CopyIn

func (i *IPTGetEntries) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IPTGetEntries) CopyOut

func (i *IPTGetEntries) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IPTGetEntries) CopyOutN

func (i *IPTGetEntries) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IPTGetEntries) MarshalBytes

func (i *IPTGetEntries) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IPTGetEntries) MarshalUnsafe

func (i *IPTGetEntries) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IPTGetEntries) Packed

func (i *IPTGetEntries) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IPTGetEntries) SizeBytes

func (i *IPTGetEntries) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IPTGetEntries) UnmarshalBytes

func (i *IPTGetEntries) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IPTGetEntries) UnmarshalUnsafe

func (i *IPTGetEntries) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IPTGetEntries) WriteTo

func (i *IPTGetEntries) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPTGetinfo

type IPTGetinfo struct {
	Name       TableName
	ValidHooks uint32
	HookEntry  [NF_INET_NUMHOOKS]uint32
	Underflow  [NF_INET_NUMHOOKS]uint32
	NumEntries uint32
	Size       uint32
}

IPTGetinfo is the argument for the IPT_SO_GET_INFO sockopt. It corresponds to struct ipt_getinfo in include/uapi/linux/netfilter_ipv4/ip_tables.h.

+marshal

func (*IPTGetinfo) CopyIn

func (i *IPTGetinfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IPTGetinfo) CopyOut

func (i *IPTGetinfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IPTGetinfo) CopyOutN

func (i *IPTGetinfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IPTGetinfo) MarshalBytes

func (i *IPTGetinfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IPTGetinfo) MarshalUnsafe

func (i *IPTGetinfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IPTGetinfo) Packed

func (i *IPTGetinfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IPTGetinfo) SizeBytes

func (i *IPTGetinfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IPTGetinfo) UnmarshalBytes

func (i *IPTGetinfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IPTGetinfo) UnmarshalUnsafe

func (i *IPTGetinfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IPTGetinfo) WriteTo

func (i *IPTGetinfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPTIP

type IPTIP struct {
	// Src is the source IP address.
	Src InetAddr

	// Dst is the destination IP address.
	Dst InetAddr

	// SrcMask is the source IP mask.
	SrcMask InetAddr

	// DstMask is the destination IP mask.
	DstMask InetAddr

	// InputInterface is the input network interface.
	InputInterface [IFNAMSIZ]byte

	// OutputInterface is the output network interface.
	OutputInterface [IFNAMSIZ]byte

	// InputInterfaceMask is the input interface mask.
	InputInterfaceMask [IFNAMSIZ]byte

	// OuputInterfaceMask is the output interface mask.
	OutputInterfaceMask [IFNAMSIZ]byte

	// Protocol is the transport protocol.
	Protocol uint16

	// Flags define matching behavior for the IP header.
	Flags uint8

	// InverseFlags invert the meaning of fields in struct IPTIP. See the
	// IPT_INV_* flags.
	InverseFlags uint8
}

IPTIP contains information for matching a packet's IP header. It corresponds to struct ipt_ip in include/uapi/linux/netfilter_ipv4/ip_tables.h.

+marshal

func (*IPTIP) CopyIn

func (i *IPTIP) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*IPTIP) CopyOut

func (i *IPTIP) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*IPTIP) CopyOutN

func (i *IPTIP) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*IPTIP) MarshalBytes

func (i *IPTIP) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*IPTIP) MarshalUnsafe

func (i *IPTIP) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*IPTIP) Packed

func (i *IPTIP) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*IPTIP) SizeBytes

func (i *IPTIP) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*IPTIP) UnmarshalBytes

func (i *IPTIP) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*IPTIP) UnmarshalUnsafe

func (i *IPTIP) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*IPTIP) WriteTo

func (i *IPTIP) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type IPTOwnerInfo

type IPTOwnerInfo struct {
	// UID is user id which created the packet.
	UID uint32

	// GID is group id which created the packet.
	GID uint32

	// PID is process id of the process which created the packet.
	PID uint32

	// SID is session id which created the packet.
	SID uint32

	// Comm is the command name which created the packet.
	Comm [16]byte

	// Match is used to match UID/GID of the socket. See the
	// XT_OWNER_* flags below.
	Match uint8

	// Invert flips the meaning of Match field.
	Invert uint8
}

IPTOwnerInfo holds data for matching packets with owner. It corresponds to struct ipt_owner_info in libxt_owner.c of iptables binary.

type IPTReplace

type IPTReplace struct {
	Name        TableName
	ValidHooks  uint32
	NumEntries  uint32
	Size        uint32
	HookEntry   [NF_INET_NUMHOOKS]uint32
	Underflow   [NF_INET_NUMHOOKS]uint32
	NumCounters uint32
	Counters    uint64 // This is really a *XTCounters.

}

IPTReplace is the argument for the IPT_SO_SET_REPLACE sockopt. It corresponds to struct ipt_replace in include/uapi/linux/netfilter_ipv4/ip_tables.h.

type Inet6Addr

type Inet6Addr [16]byte

Inet6Addr is struct in6_addr, from uapi/linux/in6.h.

+marshal

func (*Inet6Addr) CopyIn

func (i *Inet6Addr) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Inet6Addr) CopyOut

func (i *Inet6Addr) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Inet6Addr) CopyOutN

func (i *Inet6Addr) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Inet6Addr) MarshalBytes

func (i *Inet6Addr) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Inet6Addr) MarshalUnsafe

func (i *Inet6Addr) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Inet6Addr) Packed

func (i *Inet6Addr) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Inet6Addr) SizeBytes

func (i *Inet6Addr) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Inet6Addr) UnmarshalBytes

func (i *Inet6Addr) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Inet6Addr) UnmarshalUnsafe

func (i *Inet6Addr) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Inet6Addr) WriteTo

func (i *Inet6Addr) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Inet6MulticastRequest

type Inet6MulticastRequest struct {
	MulticastAddr  Inet6Addr
	InterfaceIndex int32
}

Inet6MulticastRequest is struct ipv6_mreq, from uapi/linux/in6.h.

type InetAddr

type InetAddr [4]byte

InetAddr is struct in_addr, from uapi/linux/in.h.

+marshal

func (*InetAddr) CopyIn

func (i *InetAddr) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*InetAddr) CopyOut

func (i *InetAddr) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*InetAddr) CopyOutN

func (i *InetAddr) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*InetAddr) MarshalBytes

func (i *InetAddr) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*InetAddr) MarshalUnsafe

func (i *InetAddr) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*InetAddr) Packed

func (i *InetAddr) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*InetAddr) SizeBytes

func (i *InetAddr) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*InetAddr) UnmarshalBytes

func (i *InetAddr) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*InetAddr) UnmarshalUnsafe

func (i *InetAddr) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*InetAddr) WriteTo

func (i *InetAddr) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type InetMulticastRequest

type InetMulticastRequest struct {
	MulticastAddr InetAddr
	InterfaceAddr InetAddr
}

InetMulticastRequest is struct ip_mreq, from uapi/linux/in.h.

type InetMulticastRequestWithNIC

type InetMulticastRequestWithNIC struct {
	InetMulticastRequest
	InterfaceIndex int32
}

InetMulticastRequestWithNIC is struct ip_mreqn, from uapi/linux/in.h.

type InterfaceAddrMessage

type InterfaceAddrMessage struct {
	Family    uint8
	PrefixLen uint8
	Flags     uint8
	Scope     uint8
	Index     uint32
}

InterfaceAddrMessage is struct ifaddrmsg, from uapi/linux/if_addr.h.

type InterfaceInfoMessage

type InterfaceInfoMessage struct {
	Family uint8

	Type   uint16
	Index  int32
	Flags  uint32
	Change uint32
	// contains filtered or unexported fields
}

InterfaceInfoMessage is struct ifinfomsg, from uapi/linux/rtnetlink.h.

type ItimerVal

type ItimerVal struct {
	Interval Timeval
	Value    Timeval
}

ItimerVal mimics the following struct in <sys/time.h>

struct itimerval {
  struct timeval it_interval; /* next value */
  struct timeval it_value;    /* current value */
};

+marshal

func (*ItimerVal) CopyIn

func (i *ItimerVal) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ItimerVal) CopyOut

func (i *ItimerVal) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ItimerVal) CopyOutN

func (i *ItimerVal) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ItimerVal) MarshalBytes

func (i *ItimerVal) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ItimerVal) MarshalUnsafe

func (i *ItimerVal) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ItimerVal) Packed

func (i *ItimerVal) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ItimerVal) SizeBytes

func (i *ItimerVal) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ItimerVal) UnmarshalBytes

func (i *ItimerVal) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ItimerVal) UnmarshalUnsafe

func (i *ItimerVal) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ItimerVal) WriteTo

func (i *ItimerVal) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Itimerspec

type Itimerspec struct {
	Interval Timespec
	Value    Timespec
}

Itimerspec represents struct itimerspec in <time.h>.

+marshal

func (*Itimerspec) CopyIn

func (i *Itimerspec) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Itimerspec) CopyOut

func (i *Itimerspec) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Itimerspec) CopyOutN

func (i *Itimerspec) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Itimerspec) MarshalBytes

func (i *Itimerspec) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Itimerspec) MarshalUnsafe

func (i *Itimerspec) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Itimerspec) Packed

func (i *Itimerspec) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Itimerspec) SizeBytes

func (i *Itimerspec) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Itimerspec) UnmarshalBytes

func (i *Itimerspec) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Itimerspec) UnmarshalUnsafe

func (i *Itimerspec) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Itimerspec) WriteTo

func (i *Itimerspec) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type KernelIP6TEntry

type KernelIP6TEntry struct {
	Entry IP6TEntry

	// Elems holds the data for all this rule's matches followed by the
	// target. It is variable length -- users have to iterate over any
	// matches and use TargetOffset and NextOffset to make sense of the
	// data.
	Elems primitive.ByteSlice
}

KernelIP6TEntry is identical to IP6TEntry, but includes the Elems field. KernelIP6TEntry itself is not Marshallable but it implements some methods of marshal.Marshallable that help in other implementations of Marshallable.

func (*KernelIP6TEntry) MarshalBytes

func (ke *KernelIP6TEntry) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*KernelIP6TEntry) SizeBytes

func (ke *KernelIP6TEntry) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*KernelIP6TEntry) UnmarshalBytes

func (ke *KernelIP6TEntry) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

type KernelIP6TGetEntries

type KernelIP6TGetEntries struct {
	IPTGetEntries
	Entrytable []KernelIP6TEntry
}

KernelIP6TGetEntries is identical to IP6TGetEntries, but includes the Entrytable field. This has been manually made marshal.Marshallable since it is dynamically sized.

func (*KernelIP6TGetEntries) CopyIn

func (ke *KernelIP6TGetEntries) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*KernelIP6TGetEntries) CopyOut

func (ke *KernelIP6TGetEntries) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*KernelIP6TGetEntries) CopyOutN

func (ke *KernelIP6TGetEntries) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*KernelIP6TGetEntries) MarshalBytes

func (ke *KernelIP6TGetEntries) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*KernelIP6TGetEntries) MarshalUnsafe

func (ke *KernelIP6TGetEntries) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*KernelIP6TGetEntries) Packed

func (ke *KernelIP6TGetEntries) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*KernelIP6TGetEntries) SizeBytes

func (ke *KernelIP6TGetEntries) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*KernelIP6TGetEntries) UnmarshalBytes

func (ke *KernelIP6TGetEntries) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*KernelIP6TGetEntries) UnmarshalUnsafe

func (ke *KernelIP6TGetEntries) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*KernelIP6TGetEntries) WriteTo

func (ke *KernelIP6TGetEntries) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type KernelIPTEntry

type KernelIPTEntry struct {
	Entry IPTEntry

	// Elems holds the data for all this rule's matches followed by the
	// target. It is variable length -- users have to iterate over any
	// matches and use TargetOffset and NextOffset to make sense of the
	// data.
	Elems primitive.ByteSlice
}

KernelIPTEntry is identical to IPTEntry, but includes the Elems field. KernelIPTEntry itself is not Marshallable but it implements some methods of marshal.Marshallable that help in other implementations of Marshallable.

func (*KernelIPTEntry) MarshalBytes

func (ke *KernelIPTEntry) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*KernelIPTEntry) SizeBytes

func (ke *KernelIPTEntry) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*KernelIPTEntry) UnmarshalBytes

func (ke *KernelIPTEntry) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

type KernelIPTGetEntries

type KernelIPTGetEntries struct {
	IPTGetEntries
	Entrytable []KernelIPTEntry
}

KernelIPTGetEntries is identical to IPTGetEntries, but includes the Entrytable field. This has been manually made marshal.Marshallable since it is dynamically sized.

func (*KernelIPTGetEntries) CopyIn

func (ke *KernelIPTGetEntries) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*KernelIPTGetEntries) CopyOut

func (ke *KernelIPTGetEntries) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*KernelIPTGetEntries) CopyOutN

func (ke *KernelIPTGetEntries) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*KernelIPTGetEntries) MarshalBytes

func (ke *KernelIPTGetEntries) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*KernelIPTGetEntries) MarshalUnsafe

func (ke *KernelIPTGetEntries) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*KernelIPTGetEntries) Packed

func (ke *KernelIPTGetEntries) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*KernelIPTGetEntries) SizeBytes

func (ke *KernelIPTGetEntries) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*KernelIPTGetEntries) UnmarshalBytes

func (ke *KernelIPTGetEntries) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*KernelIPTGetEntries) UnmarshalUnsafe

func (ke *KernelIPTGetEntries) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*KernelIPTGetEntries) WriteTo

func (ke *KernelIPTGetEntries) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type KernelTermios

type KernelTermios struct {
	InputFlags        uint32
	OutputFlags       uint32
	ControlFlags      uint32
	LocalFlags        uint32
	LineDiscipline    uint8
	ControlCharacters [NumControlCharacters]uint8
	InputSpeed        uint32
	OutputSpeed       uint32
}

KernelTermios is struct ktermios/struct termios2, defined in uapi/asm-generic/termbits.h.

+stateify savable

func (*KernelTermios) CEnabled

func (t *KernelTermios) CEnabled(flag uint32) bool

CEnabled returns whether flag is enabled in termios control flags.

func (*KernelTermios) FromTermios

func (t *KernelTermios) FromTermios(term Termios)

FromTermios copies fields that are shared with Termios into this KernelTermios struct.

func (*KernelTermios) IEnabled

func (t *KernelTermios) IEnabled(flag uint32) bool

IEnabled returns whether flag is enabled in termios input flags.

func (*KernelTermios) IsEOF

func (t *KernelTermios) IsEOF(c byte) bool

IsEOF returns whether c is the EOF character.

func (*KernelTermios) IsTerminating

func (t *KernelTermios) IsTerminating(cBytes []byte) bool

IsTerminating returns whether c is a line terminating character.

func (*KernelTermios) LEnabled

func (t *KernelTermios) LEnabled(flag uint32) bool

LEnabled returns whether flag is enabled in termios local flags.

func (*KernelTermios) OEnabled

func (t *KernelTermios) OEnabled(flag uint32) bool

OEnabled returns whether flag is enabled in termios output flags.

func (*KernelTermios) StateFields

func (t *KernelTermios) StateFields() []string

func (*KernelTermios) StateLoad

func (t *KernelTermios) StateLoad(stateSourceObject state.Source)

func (*KernelTermios) StateSave

func (t *KernelTermios) StateSave(stateSinkObject state.Sink)

func (*KernelTermios) StateTypeName

func (t *KernelTermios) StateTypeName() string

func (*KernelTermios) ToTermios

func (t *KernelTermios) ToTermios() Termios

ToTermios copies fields that are shared with Termios into a new Termios struct.

type KernelXTEntryMatch

type KernelXTEntryMatch struct {
	XTEntryMatch
	Data []byte
}

KernelXTEntryMatch is identical to XTEntryMatch, but contains variable-length Data field.

type KernelXTEntryTarget

type KernelXTEntryTarget struct {
	XTEntryTarget
	Data []byte
}

KernelXTEntryTarget is identical to XTEntryTarget, but contains a variable-length Data field.

type Linger

type Linger struct {
	OnOff  int32
	Linger int32
}

Linger is struct linger, from include/linux/socket.h.

+marshal

func (*Linger) CopyIn

func (l *Linger) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Linger) CopyOut

func (l *Linger) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Linger) CopyOutN

func (l *Linger) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Linger) MarshalBytes

func (l *Linger) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Linger) MarshalUnsafe

func (l *Linger) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Linger) Packed

func (l *Linger) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Linger) SizeBytes

func (l *Linger) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Linger) UnmarshalBytes

func (l *Linger) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Linger) UnmarshalUnsafe

func (l *Linger) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Linger) WriteTo

func (l *Linger) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type NFNATRange

type NFNATRange struct {
	Flags    uint32
	MinAddr  Inet6Addr
	MaxAddr  Inet6Addr
	MinProto uint16 // Network byte order.
	MaxProto uint16 // Network byte order.
}

NFNATRange corresponds to struct nf_nat_range in include/uapi/linux/netfilter/nf_nat.h.

type NetlinkAttrHeader

type NetlinkAttrHeader struct {
	Length uint16
	Type   uint16
}

NetlinkAttrHeader is the header of a netlink attribute, followed by payload.

This is struct nlattr, from uapi/linux/netlink.h.

type NetlinkErrorMessage

type NetlinkErrorMessage struct {
	Error  int32
	Header NetlinkMessageHeader
}

NetlinkErrorMessage is struct nlmsgerr, from uapi/linux/netlink.h.

type NetlinkMessageHeader

type NetlinkMessageHeader struct {
	Length uint32
	Type   uint16
	Flags  uint16
	Seq    uint32
	PortID uint32
}

NetlinkMessageHeader is struct nlmsghdr, from uapi/linux/netlink.h.

type NfNATIPV4MultiRangeCompat

type NfNATIPV4MultiRangeCompat struct {
	RangeSize uint32
	RangeIPV4 NfNATIPV4Range
}

NfNATIPV4MultiRangeCompat corresponds to struct nf_nat_ipv4_multi_range_compat in include/uapi/linux/netfilter/nf_nat.h.

type NfNATIPV4Range

type NfNATIPV4Range struct {
	Flags   uint32
	MinIP   [4]byte
	MaxIP   [4]byte
	MinPort uint16
	MaxPort uint16
}

NfNATIPV4Range corresponds to struct nf_nat_ipv4_range in include/uapi/linux/netfilter/nf_nat.h. The fields are in network byte order.

type NumaPolicy

type NumaPolicy int32

NumaPolicy is the NUMA memory policy for a memory range. See numa(7).

+marshal

const (
	MPOL_DEFAULT    NumaPolicy = 0
	MPOL_PREFERRED  NumaPolicy = 1
	MPOL_BIND       NumaPolicy = 2
	MPOL_INTERLEAVE NumaPolicy = 3
	MPOL_LOCAL      NumaPolicy = 4
	MPOL_MAX        NumaPolicy = 5
)

Policies for get_mempolicy(2)/set_mempolicy(2).

func (*NumaPolicy) CopyIn

func (n *NumaPolicy) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*NumaPolicy) CopyOut

func (n *NumaPolicy) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*NumaPolicy) CopyOutN

func (n *NumaPolicy) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*NumaPolicy) MarshalBytes

func (n *NumaPolicy) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*NumaPolicy) MarshalUnsafe

func (n *NumaPolicy) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*NumaPolicy) Packed

func (n *NumaPolicy) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*NumaPolicy) SizeBytes

func (n *NumaPolicy) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*NumaPolicy) UnmarshalBytes

func (n *NumaPolicy) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*NumaPolicy) UnmarshalUnsafe

func (n *NumaPolicy) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*NumaPolicy) WriteTo

func (n *NumaPolicy) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type PollFD

type PollFD struct {
	FD      int32
	Events  int16
	REvents int16
}

PollFD is struct pollfd, used by poll(2)/ppoll(2), from uapi/asm-generic/poll.h.

+marshal slice:PollFDSlice

func (*PollFD) CopyIn

func (p *PollFD) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*PollFD) CopyOut

func (p *PollFD) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*PollFD) CopyOutN

func (p *PollFD) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*PollFD) MarshalBytes

func (p *PollFD) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*PollFD) MarshalUnsafe

func (p *PollFD) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*PollFD) Packed

func (p *PollFD) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*PollFD) SizeBytes

func (p *PollFD) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*PollFD) UnmarshalBytes

func (p *PollFD) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*PollFD) UnmarshalUnsafe

func (p *PollFD) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*PollFD) WriteTo

func (p *PollFD) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type PtraceRegs

type PtraceRegs struct {
	R15      uint64
	R14      uint64
	R13      uint64
	R12      uint64
	Rbp      uint64
	Rbx      uint64
	R11      uint64
	R10      uint64
	R9       uint64
	R8       uint64
	Rax      uint64
	Rcx      uint64
	Rdx      uint64
	Rsi      uint64
	Rdi      uint64
	Orig_rax uint64
	Rip      uint64
	Cs       uint64
	Eflags   uint64
	Rsp      uint64
	Ss       uint64
	Fs_base  uint64
	Gs_base  uint64
	Ds       uint64
	Es       uint64
	Fs       uint64
	Gs       uint64
}

PtraceRegs is the set of CPU registers exposed by ptrace. Source: syscall.PtraceRegs.

+marshal +stateify savable

func (*PtraceRegs) CopyIn

func (p *PtraceRegs) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*PtraceRegs) CopyOut

func (p *PtraceRegs) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*PtraceRegs) CopyOutN

func (p *PtraceRegs) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*PtraceRegs) MarshalBytes

func (p *PtraceRegs) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*PtraceRegs) MarshalUnsafe

func (p *PtraceRegs) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*PtraceRegs) Packed

func (p *PtraceRegs) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*PtraceRegs) SizeBytes

func (p *PtraceRegs) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*PtraceRegs) StateFields

func (p *PtraceRegs) StateFields() []string

func (*PtraceRegs) StateLoad

func (p *PtraceRegs) StateLoad(stateSourceObject state.Source)

func (*PtraceRegs) StateSave

func (p *PtraceRegs) StateSave(stateSinkObject state.Sink)

func (*PtraceRegs) StateTypeName

func (p *PtraceRegs) StateTypeName() string

func (*PtraceRegs) UnmarshalBytes

func (p *PtraceRegs) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*PtraceRegs) UnmarshalUnsafe

func (p *PtraceRegs) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*PtraceRegs) WriteTo

func (p *PtraceRegs) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type RLimit

type RLimit struct {
	// Cur specifies the soft limit.
	Cur uint64
	// Max specifies the hard limit.
	Max uint64
}

RLimit corresponds to Linux's struct rlimit.

type RSeq

type RSeq struct {
	// CPUIDStart contains the current CPU ID if rseq is initialized.
	//
	// This field should only be read by the thread which registered this
	// structure, and must be read atomically.
	CPUIDStart uint32

	// CPUID contains the current CPU ID or one of the CPU ID special
	// values defined above.
	//
	// This field should only be read by the thread which registered this
	// structure, and must be read atomically.
	CPUID uint32

	// RSeqCriticalSection is a pointer to the current RSeqCriticalSection
	// block, or NULL. It is reset to NULL by the kernel on restart or
	// non-restarting preempt/signal.
	//
	// This field should only be written by the thread which registered
	// this structure, and must be written atomically.
	RSeqCriticalSection uint64

	// Flags are the critical section flags that apply to all critical
	// sections on this thread, defined above.
	Flags uint32
}

RSeq is the thread-local restartable sequences config/status. It is equivalent to struct rseq, defined in include/uapi/linux/rseq.h.

In userspace, this structure is always aligned to 32 bytes.

type RSeqCriticalSection

type RSeqCriticalSection struct {
	// Version is the version of this structure. Version 0 is defined here.
	Version uint32

	// Flags are the critical section flags, defined above.
	Flags uint32

	// Start is the start address of the critical section.
	Start uint64

	// PostCommitOffset is the offset from Start of the first instruction
	// outside of the critical section.
	PostCommitOffset uint64

	// Abort is the abort address. It must be outside the critical section,
	// and the 4 bytes prior must match the abort signature.
	Abort uint64
}

RSeqCriticalSection describes a restartable sequences critical section. It is equivalent to struct rseq_cs, defined in include/uapi/linux/rseq.h.

In userspace, this structure is always aligned to 32 bytes.

+marshal

func (*RSeqCriticalSection) CopyIn

func (r *RSeqCriticalSection) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*RSeqCriticalSection) CopyOut

func (r *RSeqCriticalSection) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*RSeqCriticalSection) CopyOutN

func (r *RSeqCriticalSection) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*RSeqCriticalSection) MarshalBytes

func (r *RSeqCriticalSection) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*RSeqCriticalSection) MarshalUnsafe

func (r *RSeqCriticalSection) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*RSeqCriticalSection) Packed

func (r *RSeqCriticalSection) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*RSeqCriticalSection) SizeBytes

func (r *RSeqCriticalSection) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*RSeqCriticalSection) UnmarshalBytes

func (r *RSeqCriticalSection) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*RSeqCriticalSection) UnmarshalUnsafe

func (r *RSeqCriticalSection) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*RSeqCriticalSection) WriteTo

func (r *RSeqCriticalSection) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type RobustListHead

type RobustListHead struct {
	List          uint64
	FutexOffset   uint64
	ListOpPending uint64
}

RobustListHead corresponds to Linux's struct robust_list_head.

+marshal

func (*RobustListHead) CopyIn

func (r *RobustListHead) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*RobustListHead) CopyOut

func (r *RobustListHead) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*RobustListHead) CopyOutN

func (r *RobustListHead) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*RobustListHead) MarshalBytes

func (r *RobustListHead) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*RobustListHead) MarshalUnsafe

func (r *RobustListHead) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*RobustListHead) Packed

func (r *RobustListHead) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*RobustListHead) SizeBytes

func (r *RobustListHead) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*RobustListHead) UnmarshalBytes

func (r *RobustListHead) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*RobustListHead) UnmarshalUnsafe

func (r *RobustListHead) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*RobustListHead) WriteTo

func (r *RobustListHead) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type RouteMessage

type RouteMessage struct {
	Family uint8
	DstLen uint8
	SrcLen uint8
	TOS    uint8

	Table    uint8
	Protocol uint8
	Scope    uint8
	Type     uint8

	Flags uint32
}

RouteMessage is struct rtmsg, from uapi/linux/rtnetlink.h.

type RtAttr

type RtAttr struct {
	Len  uint16
	Type uint16
}

RtAttr is the header of optional addition route information, as a netlink attribute. From include/uapi/linux/rtnetlink.h.

type Rusage

type Rusage struct {
	UTime    Timeval
	STime    Timeval
	MaxRSS   int64
	IXRSS    int64
	IDRSS    int64
	ISRSS    int64
	MinFlt   int64
	MajFlt   int64
	NSwap    int64
	InBlock  int64
	OuBlock  int64
	MsgSnd   int64
	MsgRcv   int64
	NSignals int64
	NVCSw    int64
	NIvCSw   int64
}

Rusage represents the Linux struct rusage.

+marshal

func (*Rusage) CopyIn

func (r *Rusage) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Rusage) CopyOut

func (r *Rusage) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Rusage) CopyOutN

func (r *Rusage) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Rusage) MarshalBytes

func (r *Rusage) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Rusage) MarshalUnsafe

func (r *Rusage) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Rusage) Packed

func (r *Rusage) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Rusage) SizeBytes

func (r *Rusage) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Rusage) UnmarshalBytes

func (r *Rusage) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Rusage) UnmarshalUnsafe

func (r *Rusage) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Rusage) WriteTo

func (r *Rusage) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SeccompData

type SeccompData struct {
	// Nr is the system call number.
	Nr int32

	// Arch is an AUDIT_ARCH_* value indicating the system call convention.
	Arch uint32

	// InstructionPointer is the value of the instruction pointer at the time
	// of the system call.
	InstructionPointer uint64

	// Args contains the first 6 system call arguments.
	Args [6]uint64
}

SeccompData is equivalent to struct seccomp_data, which contains the data passed to seccomp-bpf filters.

+marshal

func (*SeccompData) CopyIn

func (s *SeccompData) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SeccompData) CopyOut

func (s *SeccompData) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SeccompData) CopyOutN

func (s *SeccompData) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SeccompData) MarshalBytes

func (s *SeccompData) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SeccompData) MarshalUnsafe

func (s *SeccompData) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SeccompData) Packed

func (s *SeccompData) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SeccompData) SizeBytes

func (s *SeccompData) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SeccompData) UnmarshalBytes

func (s *SeccompData) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SeccompData) UnmarshalUnsafe

func (s *SeccompData) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SeccompData) WriteTo

func (s *SeccompData) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SemInfo

type SemInfo struct {
	SemMap uint32
	SemMni uint32
	SemMns uint32
	SemMnu uint32
	SemMsl uint32
	SemOpm uint32
	SemUme uint32
	SemUsz uint32
	SemVmx uint32
	SemAem uint32
}

SemInfo is equivalent to struct seminfo.

Source: include/uapi/linux/sem.h

+marshal

func (*SemInfo) CopyIn

func (s *SemInfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SemInfo) CopyOut

func (s *SemInfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SemInfo) CopyOutN

func (s *SemInfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SemInfo) MarshalBytes

func (s *SemInfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SemInfo) MarshalUnsafe

func (s *SemInfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SemInfo) Packed

func (s *SemInfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SemInfo) SizeBytes

func (s *SemInfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SemInfo) UnmarshalBytes

func (s *SemInfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SemInfo) UnmarshalUnsafe

func (s *SemInfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SemInfo) WriteTo

func (s *SemInfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Sembuf

type Sembuf struct {
	SemNum uint16
	SemOp  int16
	SemFlg int16
}

Sembuf is equivalent to struct sembuf.

+marshal slice:SembufSlice

func (*Sembuf) CopyIn

func (s *Sembuf) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Sembuf) CopyOut

func (s *Sembuf) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Sembuf) CopyOutN

func (s *Sembuf) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Sembuf) MarshalBytes

func (s *Sembuf) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Sembuf) MarshalUnsafe

func (s *Sembuf) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Sembuf) Packed

func (s *Sembuf) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Sembuf) SizeBytes

func (s *Sembuf) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Sembuf) UnmarshalBytes

func (s *Sembuf) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Sembuf) UnmarshalUnsafe

func (s *Sembuf) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Sembuf) WriteTo

func (s *Sembuf) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SemidDS

type SemidDS struct {
	SemPerm  IPCPerm
	SemOTime TimeT

	SemCTime TimeT

	SemNSems uint64
	// contains filtered or unexported fields
}

SemidDS is equivalent to struct semid64_ds.

Source: arch/x86/include/uapi/asm/sembuf.h

+marshal

func (*SemidDS) CopyIn

func (s *SemidDS) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SemidDS) CopyOut

func (s *SemidDS) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SemidDS) CopyOutN

func (s *SemidDS) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SemidDS) MarshalBytes

func (s *SemidDS) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SemidDS) MarshalUnsafe

func (s *SemidDS) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SemidDS) Packed

func (s *SemidDS) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SemidDS) SizeBytes

func (s *SemidDS) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SemidDS) UnmarshalBytes

func (s *SemidDS) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SemidDS) UnmarshalUnsafe

func (s *SemidDS) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SemidDS) WriteTo

func (s *SemidDS) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type ShmInfo

type ShmInfo struct {
	UsedIDs int32 // Number of currently existing segments.

	ShmTot        uint64 // Total number of shared memory pages.
	ShmRss        uint64 // Number of resident shared memory pages.
	ShmSwp        uint64 // Number of swapped shared memory pages.
	SwapAttempts  uint64 // Unused since Linux 2.4.
	SwapSuccesses uint64 // Unused since Linux 2.4.
	// contains filtered or unexported fields
}

ShmInfo is equivalent to struct shm_info. Source: include/uapi/linux/shm.h

+marshal

func (*ShmInfo) CopyIn

func (s *ShmInfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ShmInfo) CopyOut

func (s *ShmInfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ShmInfo) CopyOutN

func (s *ShmInfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ShmInfo) MarshalBytes

func (s *ShmInfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ShmInfo) MarshalUnsafe

func (s *ShmInfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ShmInfo) Packed

func (s *ShmInfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ShmInfo) SizeBytes

func (s *ShmInfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ShmInfo) UnmarshalBytes

func (s *ShmInfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ShmInfo) UnmarshalUnsafe

func (s *ShmInfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ShmInfo) WriteTo

func (s *ShmInfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type ShmParams

type ShmParams struct {
	ShmMax uint64
	ShmMin uint64
	ShmMni uint64
	ShmSeg uint64
	ShmAll uint64
}

ShmParams is equivalent to struct shminfo. Source: include/uapi/linux/shm.h

+marshal

func (*ShmParams) CopyIn

func (s *ShmParams) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ShmParams) CopyOut

func (s *ShmParams) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ShmParams) CopyOutN

func (s *ShmParams) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ShmParams) MarshalBytes

func (s *ShmParams) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ShmParams) MarshalUnsafe

func (s *ShmParams) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ShmParams) Packed

func (s *ShmParams) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ShmParams) SizeBytes

func (s *ShmParams) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ShmParams) UnmarshalBytes

func (s *ShmParams) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ShmParams) UnmarshalUnsafe

func (s *ShmParams) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ShmParams) WriteTo

func (s *ShmParams) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type ShmidDS

type ShmidDS struct {
	ShmPerm    IPCPerm
	ShmSegsz   uint64
	ShmAtime   TimeT
	ShmDtime   TimeT
	ShmCtime   TimeT
	ShmCpid    int32
	ShmLpid    int32
	ShmNattach uint64

	Unused4 uint64
	Unused5 uint64
}

ShmidDS is equivalent to struct shmid64_ds. Source: include/uapi/asm-generic/shmbuf.h

+marshal

func (*ShmidDS) CopyIn

func (s *ShmidDS) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*ShmidDS) CopyOut

func (s *ShmidDS) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*ShmidDS) CopyOutN

func (s *ShmidDS) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*ShmidDS) MarshalBytes

func (s *ShmidDS) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*ShmidDS) MarshalUnsafe

func (s *ShmidDS) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*ShmidDS) Packed

func (s *ShmidDS) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*ShmidDS) SizeBytes

func (s *ShmidDS) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*ShmidDS) UnmarshalBytes

func (s *ShmidDS) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*ShmidDS) UnmarshalUnsafe

func (s *ShmidDS) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*ShmidDS) WriteTo

func (s *ShmidDS) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Sigevent

type Sigevent struct {
	Value  uint64 // union sigval {int, void*}
	Signo  int32
	Notify int32

	// struct sigevent here contains 48-byte union _sigev_un. However, only
	// member _tid is significant to the kernel.
	Tid         int32
	UnRemainder [44]byte
}

Sigevent represents struct sigevent.

+marshal

func (*Sigevent) CopyIn

func (s *Sigevent) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Sigevent) CopyOut

func (s *Sigevent) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Sigevent) CopyOutN

func (s *Sigevent) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Sigevent) MarshalBytes

func (s *Sigevent) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Sigevent) MarshalUnsafe

func (s *Sigevent) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Sigevent) Packed

func (s *Sigevent) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Sigevent) SizeBytes

func (s *Sigevent) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Sigevent) UnmarshalBytes

func (s *Sigevent) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Sigevent) UnmarshalUnsafe

func (s *Sigevent) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Sigevent) WriteTo

func (s *Sigevent) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Signal

type Signal int

Signal is a signal number.

func (Signal) Index

func (s Signal) Index() int

Index returns the index for signal s into arrays of both standard and realtime signals (e.g. signal masks).

Preconditions: s.IsValid().

func (Signal) IsRealtime

func (s Signal) IsRealtime() bool

IsRealtime returns true if s is a realtime signal.

Preconditions: s.IsValid().

func (Signal) IsStandard

func (s Signal) IsStandard() bool

IsStandard returns true if s is a standard signal.

Preconditions: s.IsValid().

func (Signal) IsValid

func (s Signal) IsValid() bool

IsValid returns true if s is a valid standard or realtime signal. (0 is not considered valid; interfaces special-casing signal number 0 should check for 0 first before asserting validity.)

type SignalSet

type SignalSet uint64

SignalSet is a signal mask with a bit corresponding to each signal.

+marshal

func MakeSignalSet

func MakeSignalSet(sigs ...Signal) SignalSet

MakeSignalSet returns SignalSet with the bit corresponding to each of the given signals set.

func SignalSetOf

func SignalSetOf(sig Signal) SignalSet

SignalSetOf returns a SignalSet with a single signal set.

func (*SignalSet) CopyIn

func (s *SignalSet) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SignalSet) CopyOut

func (s *SignalSet) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SignalSet) CopyOutN

func (s *SignalSet) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SignalSet) MarshalBytes

func (s *SignalSet) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SignalSet) MarshalUnsafe

func (s *SignalSet) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SignalSet) Packed

func (s *SignalSet) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SignalSet) SizeBytes

func (s *SignalSet) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SignalSet) UnmarshalBytes

func (s *SignalSet) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SignalSet) UnmarshalUnsafe

func (s *SignalSet) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SignalSet) WriteTo

func (s *SignalSet) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SignalfdSiginfo

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
	AddrLSB uint16
	// contains filtered or unexported fields
}

SignalfdSiginfo is the siginfo encoding for signalfds.

+marshal

func (*SignalfdSiginfo) CopyIn

func (s *SignalfdSiginfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SignalfdSiginfo) CopyOut

func (s *SignalfdSiginfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SignalfdSiginfo) CopyOutN

func (s *SignalfdSiginfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SignalfdSiginfo) MarshalBytes

func (s *SignalfdSiginfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SignalfdSiginfo) MarshalUnsafe

func (s *SignalfdSiginfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SignalfdSiginfo) Packed

func (s *SignalfdSiginfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SignalfdSiginfo) SizeBytes

func (s *SignalfdSiginfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SignalfdSiginfo) UnmarshalBytes

func (s *SignalfdSiginfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SignalfdSiginfo) UnmarshalUnsafe

func (s *SignalfdSiginfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SignalfdSiginfo) WriteTo

func (s *SignalfdSiginfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockAddr

type SockAddr interface {
	marshal.Marshallable
	// contains filtered or unexported methods
}

SockAddr represents a union of valid socket address types. This is logically equivalent to struct sockaddr. SockAddr ensures that a well-defined set of types can be used as socket addresses.

type SockAddrInet

type SockAddrInet struct {
	Family uint16
	Port   uint16
	Addr   InetAddr
	// contains filtered or unexported fields
}

SockAddrInet is struct sockaddr_in, from uapi/linux/in.h.

+marshal

func (*SockAddrInet) CopyIn

func (s *SockAddrInet) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockAddrInet) CopyOut

func (s *SockAddrInet) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockAddrInet) CopyOutN

func (s *SockAddrInet) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockAddrInet) MarshalBytes

func (s *SockAddrInet) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockAddrInet) MarshalUnsafe

func (s *SockAddrInet) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockAddrInet) Packed

func (s *SockAddrInet) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockAddrInet) SizeBytes

func (s *SockAddrInet) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockAddrInet) UnmarshalBytes

func (s *SockAddrInet) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockAddrInet) UnmarshalUnsafe

func (s *SockAddrInet) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockAddrInet) WriteTo

func (s *SockAddrInet) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockAddrInet6

type SockAddrInet6 struct {
	Family   uint16
	Port     uint16
	Flowinfo uint32
	Addr     [16]byte
	Scope_id uint32
}

SockAddrInet6 is struct sockaddr_in6, from uapi/linux/in6.h.

+marshal

func (*SockAddrInet6) CopyIn

func (s *SockAddrInet6) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockAddrInet6) CopyOut

func (s *SockAddrInet6) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockAddrInet6) CopyOutN

func (s *SockAddrInet6) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockAddrInet6) MarshalBytes

func (s *SockAddrInet6) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockAddrInet6) MarshalUnsafe

func (s *SockAddrInet6) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockAddrInet6) Packed

func (s *SockAddrInet6) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockAddrInet6) SizeBytes

func (s *SockAddrInet6) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockAddrInet6) UnmarshalBytes

func (s *SockAddrInet6) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockAddrInet6) UnmarshalUnsafe

func (s *SockAddrInet6) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockAddrInet6) WriteTo

func (s *SockAddrInet6) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockAddrLink struct {
	Family          uint16
	Protocol        uint16
	InterfaceIndex  int32
	ARPHardwareType uint16
	PacketType      byte
	HardwareAddrLen byte
	HardwareAddr    [8]byte
}

SockAddrLink is a struct sockaddr_ll, from uapi/linux/if_packet.h.

+marshal

func (*SockAddrLink) CopyIn

func (s *SockAddrLink) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockAddrLink) CopyOut

func (s *SockAddrLink) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockAddrLink) CopyOutN

func (s *SockAddrLink) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockAddrLink) MarshalBytes

func (s *SockAddrLink) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockAddrLink) MarshalUnsafe

func (s *SockAddrLink) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockAddrLink) Packed

func (s *SockAddrLink) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockAddrLink) SizeBytes

func (s *SockAddrLink) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockAddrLink) UnmarshalBytes

func (s *SockAddrLink) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockAddrLink) UnmarshalUnsafe

func (s *SockAddrLink) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockAddrLink) WriteTo

func (s *SockAddrLink) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockAddrNetlink struct {
	Family uint16

	PortID uint32
	Groups uint32
	// contains filtered or unexported fields
}

SockAddrNetlink is struct sockaddr_nl, from uapi/linux/netlink.h.

+marshal

func (*SockAddrNetlink) CopyIn

func (s *SockAddrNetlink) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockAddrNetlink) CopyOut

func (s *SockAddrNetlink) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockAddrNetlink) CopyOutN

func (s *SockAddrNetlink) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockAddrNetlink) MarshalBytes

func (s *SockAddrNetlink) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockAddrNetlink) MarshalUnsafe

func (s *SockAddrNetlink) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockAddrNetlink) Packed

func (s *SockAddrNetlink) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockAddrNetlink) SizeBytes

func (s *SockAddrNetlink) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockAddrNetlink) UnmarshalBytes

func (s *SockAddrNetlink) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockAddrNetlink) UnmarshalUnsafe

func (s *SockAddrNetlink) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockAddrNetlink) WriteTo

func (s *SockAddrNetlink) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockAddrUnix

type SockAddrUnix struct {
	Family uint16
	Path   [UnixPathMax]int8
}

SockAddrUnix is struct sockaddr_un, from uapi/linux/un.h.

+marshal

func (*SockAddrUnix) CopyIn

func (s *SockAddrUnix) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockAddrUnix) CopyOut

func (s *SockAddrUnix) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockAddrUnix) CopyOutN

func (s *SockAddrUnix) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockAddrUnix) MarshalBytes

func (s *SockAddrUnix) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockAddrUnix) MarshalUnsafe

func (s *SockAddrUnix) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockAddrUnix) Packed

func (s *SockAddrUnix) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockAddrUnix) SizeBytes

func (s *SockAddrUnix) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockAddrUnix) UnmarshalBytes

func (s *SockAddrUnix) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockAddrUnix) UnmarshalUnsafe

func (s *SockAddrUnix) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockAddrUnix) WriteTo

func (s *SockAddrUnix) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockErrCMsg

type SockErrCMsg interface {
	marshal.Marshallable

	CMsgLevel() uint32
	CMsgType() uint32
}

SockErrCMsg represents the IP*_RECVERR control message.

type SockErrCMsgIPv4

type SockErrCMsgIPv4 struct {
	SockExtendedErr
	Offender SockAddrInet
}

SockErrCMsgIPv4 is the IP_RECVERR control message used in recvmsg(MSG_ERRQUEUE) by ipv4 sockets. This is equilavent to `struct errhdr` defined in net/ipv4/ip_sockglue.c:ip_recv_error().

+marshal

func (*SockErrCMsgIPv4) CMsgLevel

func (*SockErrCMsgIPv4) CMsgLevel() uint32

CMsgLevel implements SockErrCMsg.CMsgLevel.

func (*SockErrCMsgIPv4) CMsgType

func (*SockErrCMsgIPv4) CMsgType() uint32

CMsgType implements SockErrCMsg.CMsgType.

func (*SockErrCMsgIPv4) CopyIn

func (s *SockErrCMsgIPv4) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockErrCMsgIPv4) CopyOut

func (s *SockErrCMsgIPv4) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockErrCMsgIPv4) CopyOutN

func (s *SockErrCMsgIPv4) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockErrCMsgIPv4) MarshalBytes

func (s *SockErrCMsgIPv4) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockErrCMsgIPv4) MarshalUnsafe

func (s *SockErrCMsgIPv4) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockErrCMsgIPv4) Packed

func (s *SockErrCMsgIPv4) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockErrCMsgIPv4) SizeBytes

func (s *SockErrCMsgIPv4) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockErrCMsgIPv4) UnmarshalBytes

func (s *SockErrCMsgIPv4) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockErrCMsgIPv4) UnmarshalUnsafe

func (s *SockErrCMsgIPv4) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockErrCMsgIPv4) WriteTo

func (s *SockErrCMsgIPv4) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockErrCMsgIPv6

type SockErrCMsgIPv6 struct {
	SockExtendedErr
	Offender SockAddrInet6
}

SockErrCMsgIPv6 is the IPV6_RECVERR control message used in recvmsg(MSG_ERRQUEUE) by ipv6 sockets. This is equilavent to `struct errhdr` defined in net/ipv6/datagram.c:ipv6_recv_error().

+marshal

func (*SockErrCMsgIPv6) CMsgLevel

func (*SockErrCMsgIPv6) CMsgLevel() uint32

CMsgLevel implements SockErrCMsg.CMsgLevel.

func (*SockErrCMsgIPv6) CMsgType

func (*SockErrCMsgIPv6) CMsgType() uint32

CMsgType implements SockErrCMsg.CMsgType.

func (*SockErrCMsgIPv6) CopyIn

func (s *SockErrCMsgIPv6) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockErrCMsgIPv6) CopyOut

func (s *SockErrCMsgIPv6) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockErrCMsgIPv6) CopyOutN

func (s *SockErrCMsgIPv6) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockErrCMsgIPv6) MarshalBytes

func (s *SockErrCMsgIPv6) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockErrCMsgIPv6) MarshalUnsafe

func (s *SockErrCMsgIPv6) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockErrCMsgIPv6) Packed

func (s *SockErrCMsgIPv6) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockErrCMsgIPv6) SizeBytes

func (s *SockErrCMsgIPv6) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockErrCMsgIPv6) UnmarshalBytes

func (s *SockErrCMsgIPv6) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockErrCMsgIPv6) UnmarshalUnsafe

func (s *SockErrCMsgIPv6) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockErrCMsgIPv6) WriteTo

func (s *SockErrCMsgIPv6) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockExtendedErr

type SockExtendedErr struct {
	Errno  uint32
	Origin uint8
	Type   uint8
	Code   uint8
	Pad    uint8
	Info   uint32
	Data   uint32
}

SockExtendedErr represents struct sock_extended_err in Linux defined in include/uapi/linux/errqueue.h.

+marshal

func (*SockExtendedErr) CopyIn

func (s *SockExtendedErr) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*SockExtendedErr) CopyOut

func (s *SockExtendedErr) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*SockExtendedErr) CopyOutN

func (s *SockExtendedErr) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*SockExtendedErr) MarshalBytes

func (s *SockExtendedErr) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*SockExtendedErr) MarshalUnsafe

func (s *SockExtendedErr) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*SockExtendedErr) Packed

func (s *SockExtendedErr) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*SockExtendedErr) SizeBytes

func (s *SockExtendedErr) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*SockExtendedErr) UnmarshalBytes

func (s *SockExtendedErr) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*SockExtendedErr) UnmarshalUnsafe

func (s *SockExtendedErr) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*SockExtendedErr) WriteTo

func (s *SockExtendedErr) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type SockFprog

type SockFprog struct {
	Len uint16

	Filter *BPFInstruction
	// contains filtered or unexported fields
}

SockFprog is sock_fprog taken from <linux/filter.h>.

type SockType

type SockType int

A SockType is a type (as opposed to family) of sockets. These are enumerated below as SOCK_* constants.

const (
	SOCK_STREAM    SockType = 1
	SOCK_DGRAM     SockType = 2
	SOCK_RAW       SockType = 3
	SOCK_RDM       SockType = 4
	SOCK_SEQPACKET SockType = 5
	SOCK_DCCP      SockType = 6
	SOCK_PACKET    SockType = 10
)

Socket types, from linux/net.h.

type Stat

type Stat struct {
	Dev   uint64
	Ino   uint64
	Nlink uint64
	Mode  uint32
	UID   uint32
	GID   uint32

	Rdev    uint64
	Size    int64
	Blksize int64
	Blocks  int64
	ATime   Timespec
	MTime   Timespec
	CTime   Timespec
	// contains filtered or unexported fields
}

Stat represents struct stat.

+marshal

func (*Stat) CopyIn

func (s *Stat) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Stat) CopyOut

func (s *Stat) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Stat) CopyOutN

func (s *Stat) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Stat) MarshalBytes

func (s *Stat) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Stat) MarshalUnsafe

func (s *Stat) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Stat) Packed

func (s *Stat) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Stat) SizeBytes

func (s *Stat) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Stat) UnmarshalBytes

func (s *Stat) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Stat) UnmarshalUnsafe

func (s *Stat) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Stat) WriteTo

func (s *Stat) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Statfs

type Statfs struct {
	// Type is one of the filesystem magic values, defined above.
	Type uint64

	// BlockSize is the optimal transfer block size in bytes.
	BlockSize int64

	// Blocks is the maximum number of data blocks the filesystem may store, in
	// units of BlockSize.
	Blocks uint64

	// BlocksFree is the number of free data blocks, in units of BlockSize.
	BlocksFree uint64

	// BlocksAvailable is the number of data blocks free for use by
	// unprivileged users, in units of BlockSize.
	BlocksAvailable uint64

	// Files is the number of used file nodes on the filesystem.
	Files uint64

	// FileFress is the number of free file nodes on the filesystem.
	FilesFree uint64

	// FSID is the filesystem ID.
	FSID [2]int32

	// NameLength is the maximum file name length.
	NameLength uint64

	// FragmentSize is equivalent to BlockSize.
	FragmentSize int64

	// Flags is the set of filesystem mount flags.
	Flags uint64

	// Spare is unused.
	Spare [4]uint64
}

Statfs is struct statfs, from uapi/asm-generic/statfs.h.

+marshal

func (*Statfs) CopyIn

func (s *Statfs) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Statfs) CopyOut

func (s *Statfs) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Statfs) CopyOutN

func (s *Statfs) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Statfs) MarshalBytes

func (s *Statfs) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Statfs) MarshalUnsafe

func (s *Statfs) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Statfs) Packed

func (s *Statfs) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Statfs) SizeBytes

func (s *Statfs) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Statfs) UnmarshalBytes

func (s *Statfs) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Statfs) UnmarshalUnsafe

func (s *Statfs) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Statfs) WriteTo

func (s *Statfs) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Statx

type Statx struct {
	Mask       uint32
	Blksize    uint32
	Attributes uint64
	Nlink      uint32
	UID        uint32
	GID        uint32
	Mode       uint16

	Ino            uint64
	Size           uint64
	Blocks         uint64
	AttributesMask uint64
	Atime          StatxTimestamp
	Btime          StatxTimestamp
	Ctime          StatxTimestamp
	Mtime          StatxTimestamp
	RdevMajor      uint32
	RdevMinor      uint32
	DevMajor       uint32
	DevMinor       uint32
	// contains filtered or unexported fields
}

Statx represents struct statx.

+marshal

func (*Statx) CopyIn

func (s *Statx) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Statx) CopyOut

func (s *Statx) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Statx) CopyOutN

func (s *Statx) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Statx) MarshalBytes

func (s *Statx) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Statx) MarshalUnsafe

func (s *Statx) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Statx) Packed

func (s *Statx) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Statx) SizeBytes

func (s *Statx) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Statx) UnmarshalBytes

func (s *Statx) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Statx) UnmarshalUnsafe

func (s *Statx) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Statx) WriteTo

func (s *Statx) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type StatxTimestamp

type StatxTimestamp struct {
	Sec  int64
	Nsec uint32
	// contains filtered or unexported fields
}

StatxTimestamp represents struct statx_timestamp.

+marshal

func NsecToStatxTimestamp

func NsecToStatxTimestamp(nsec int64) (ts StatxTimestamp)

NsecToStatxTimestamp translates nanoseconds to StatxTimestamp.

func (*StatxTimestamp) CopyIn

func (sxts *StatxTimestamp) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*StatxTimestamp) CopyOut

func (sxts *StatxTimestamp) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*StatxTimestamp) CopyOutN

func (sxts *StatxTimestamp) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*StatxTimestamp) MarshalBytes

func (sxts *StatxTimestamp) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*StatxTimestamp) MarshalUnsafe

func (sxts *StatxTimestamp) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*StatxTimestamp) Packed

func (sxts *StatxTimestamp) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*StatxTimestamp) SizeBytes

func (sxts *StatxTimestamp) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (StatxTimestamp) ToNsec

func (sxts StatxTimestamp) ToNsec() int64

ToNsec returns the nanosecond representation.

func (StatxTimestamp) ToNsecCapped

func (sxts StatxTimestamp) ToNsecCapped() int64

ToNsecCapped returns the safe nanosecond representation.

func (*StatxTimestamp) UnmarshalBytes

func (sxts *StatxTimestamp) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*StatxTimestamp) UnmarshalUnsafe

func (sxts *StatxTimestamp) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*StatxTimestamp) WriteTo

func (sxts *StatxTimestamp) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Sysinfo

type Sysinfo struct {
	Uptime    int64
	Loads     [3]uint64
	TotalRAM  uint64
	FreeRAM   uint64
	SharedRAM uint64
	BufferRAM uint64
	TotalSwap uint64
	FreeSwap  uint64
	Procs     uint16

	TotalHigh uint64
	FreeHigh  uint64
	Unit      uint32 `marshal:"unaligned"` // Struct ends mid-64-bit-word.
	// contains filtered or unexported fields
}

Sysinfo is the structure provided by sysinfo on linux versions > 2.3.48.

+marshal

func (*Sysinfo) CopyIn

func (s *Sysinfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Sysinfo) CopyOut

func (s *Sysinfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Sysinfo) CopyOutN

func (s *Sysinfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Sysinfo) MarshalBytes

func (s *Sysinfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Sysinfo) MarshalUnsafe

func (s *Sysinfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Sysinfo) Packed

func (s *Sysinfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Sysinfo) SizeBytes

func (s *Sysinfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Sysinfo) UnmarshalBytes

func (s *Sysinfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Sysinfo) UnmarshalUnsafe

func (s *Sysinfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Sysinfo) WriteTo

func (s *Sysinfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type TCPInfo

type TCPInfo struct {
	State       uint8
	CaState     uint8
	Retransmits uint8
	Probes      uint8
	Backoff     uint8
	Options     uint8
	// WindowScale is the combination of snd_wscale (first 4 bits) and rcv_wscale (second 4 bits)
	WindowScale uint8
	// DeliveryRateAppLimited is a boolean and only the first bit is meaningful.
	DeliveryRateAppLimited uint8

	RTO    uint32
	ATO    uint32
	SndMss uint32
	RcvMss uint32

	Unacked uint32
	Sacked  uint32
	Lost    uint32
	Retrans uint32
	Fackets uint32

	// Times.
	LastDataSent uint32
	LastAckSent  uint32
	LastDataRecv uint32
	LastAckRecv  uint32

	// Metrics.
	PMTU        uint32
	RcvSsthresh uint32
	RTT         uint32
	RTTVar      uint32
	SndSsthresh uint32
	SndCwnd     uint32
	Advmss      uint32
	Reordering  uint32

	RcvRTT   uint32
	RcvSpace uint32

	TotalRetrans uint32

	PacingRate    uint64
	MaxPacingRate uint64
	// BytesAcked is RFC4898 tcpEStatsAppHCThruOctetsAcked.
	BytesAcked uint64
	// BytesReceived is RFC4898 tcpEStatsAppHCThruOctetsReceived.
	BytesReceived uint64
	// SegsOut is RFC4898 tcpEStatsPerfSegsOut.
	SegsOut uint32
	// SegsIn is RFC4898 tcpEStatsPerfSegsIn.
	SegsIn uint32

	NotSentBytes uint32
	MinRTT       uint32
	// DataSegsIn is RFC4898 tcpEStatsDataSegsIn.
	DataSegsIn uint32
	// DataSegsOut is RFC4898 tcpEStatsDataSegsOut.
	DataSegsOut uint32

	DeliveryRate uint64

	// BusyTime is the time in microseconds busy sending data.
	BusyTime uint64
	// RwndLimited is the time in microseconds limited by receive window.
	RwndLimited uint64
	// SndBufLimited is the time in microseconds limited by send buffer.
	SndBufLimited uint64
}

TCPInfo is a collection of TCP statistics.

From uapi/linux/tcp.h. Newer versions of Linux continue to add new fields to the end of this struct or within existing unusued space, so its size grows over time. The current iteration is based on linux v4.17. New versions are always backwards compatible.

+marshal

func (*TCPInfo) CopyIn

func (t *TCPInfo) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*TCPInfo) CopyOut

func (t *TCPInfo) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*TCPInfo) CopyOutN

func (t *TCPInfo) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*TCPInfo) MarshalBytes

func (t *TCPInfo) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*TCPInfo) MarshalUnsafe

func (t *TCPInfo) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*TCPInfo) Packed

func (t *TCPInfo) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*TCPInfo) SizeBytes

func (t *TCPInfo) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*TCPInfo) UnmarshalBytes

func (t *TCPInfo) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*TCPInfo) UnmarshalUnsafe

func (t *TCPInfo) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*TCPInfo) WriteTo

func (t *TCPInfo) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type TableName

type TableName [XT_TABLE_MAXNAMELEN]byte

TableName holds the name of a netfilter table.

+marshal

func (*TableName) CopyIn

func (tn *TableName) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*TableName) CopyOut

func (tn *TableName) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*TableName) CopyOutN

func (tn *TableName) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*TableName) MarshalBytes

func (tn *TableName) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*TableName) MarshalUnsafe

func (tn *TableName) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*TableName) Packed

func (tn *TableName) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*TableName) SizeBytes

func (tn *TableName) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (TableName) String

func (tn TableName) String() string

String implements fmt.Stringer.

func (*TableName) UnmarshalBytes

func (tn *TableName) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*TableName) UnmarshalUnsafe

func (tn *TableName) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*TableName) WriteTo

func (tn *TableName) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Termios

type Termios struct {
	InputFlags        uint32
	OutputFlags       uint32
	ControlFlags      uint32
	LocalFlags        uint32
	LineDiscipline    uint8
	ControlCharacters [NumControlCharacters]uint8
}

Termios is struct termios, defined in uapi/asm-generic/termbits.h.

+marshal

func (*Termios) CopyIn

func (t *Termios) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Termios) CopyOut

func (t *Termios) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Termios) CopyOutN

func (t *Termios) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Termios) MarshalBytes

func (t *Termios) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Termios) MarshalUnsafe

func (t *Termios) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Termios) Packed

func (t *Termios) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Termios) SizeBytes

func (t *Termios) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Termios) UnmarshalBytes

func (t *Termios) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Termios) UnmarshalUnsafe

func (t *Termios) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Termios) WriteTo

func (t *Termios) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type TimeT

type TimeT int64

TimeT represents time_t in <time.h>. It represents time in seconds.

+marshal

func NsecToTimeT

func NsecToTimeT(nsec int64) TimeT

NsecToTimeT translates nanoseconds to TimeT (seconds).

func (*TimeT) CopyIn

func (t *TimeT) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*TimeT) CopyOut

func (t *TimeT) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*TimeT) CopyOutN

func (t *TimeT) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*TimeT) MarshalBytes

func (t *TimeT) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*TimeT) MarshalUnsafe

func (t *TimeT) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*TimeT) Packed

func (t *TimeT) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*TimeT) SizeBytes

func (t *TimeT) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*TimeT) UnmarshalBytes

func (t *TimeT) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*TimeT) UnmarshalUnsafe

func (t *TimeT) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*TimeT) WriteTo

func (t *TimeT) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type TimerID

type TimerID int32

TimerID represents type timer_t, which identifies a POSIX per-process interval timer.

+marshal

func (*TimerID) CopyIn

func (t *TimerID) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*TimerID) CopyOut

func (t *TimerID) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*TimerID) CopyOutN

func (t *TimerID) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*TimerID) MarshalBytes

func (t *TimerID) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*TimerID) MarshalUnsafe

func (t *TimerID) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*TimerID) Packed

func (t *TimerID) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*TimerID) SizeBytes

func (t *TimerID) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*TimerID) UnmarshalBytes

func (t *TimerID) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*TimerID) UnmarshalUnsafe

func (t *TimerID) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*TimerID) WriteTo

func (t *TimerID) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Timespec

type Timespec struct {
	Sec  int64
	Nsec int64
}

Timespec represents struct timespec in <time.h>.

+marshal slice:TimespecSlice

func DurationToTimespec

func DurationToTimespec(dur time.Duration) Timespec

DurationToTimespec translates time.Duration to Timespec.

func NsecToTimespec

func NsecToTimespec(nsec int64) (ts Timespec)

NsecToTimespec translates nanoseconds to Timespec.

func (*Timespec) CopyIn

func (ts *Timespec) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Timespec) CopyOut

func (ts *Timespec) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Timespec) CopyOutN

func (ts *Timespec) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Timespec) MarshalBytes

func (ts *Timespec) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Timespec) MarshalUnsafe

func (ts *Timespec) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Timespec) Packed

func (ts *Timespec) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Timespec) SizeBytes

func (ts *Timespec) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (Timespec) ToDuration

func (ts Timespec) ToDuration() time.Duration

ToDuration returns the safe nanosecond representation as time.Duration.

func (Timespec) ToNsec

func (ts Timespec) ToNsec() int64

ToNsec returns the nanosecond representation.

func (Timespec) ToNsecCapped

func (ts Timespec) ToNsecCapped() int64

ToNsecCapped returns the safe nanosecond representation.

func (Timespec) ToTime

func (ts Timespec) ToTime() time.Time

ToTime returns the Go time.Time representation.

func (Timespec) Unix

func (ts Timespec) Unix() (sec int64, nsec int64)

Unix returns the second and nanosecond.

func (*Timespec) UnmarshalBytes

func (ts *Timespec) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Timespec) UnmarshalUnsafe

func (ts *Timespec) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (Timespec) Valid

func (ts Timespec) Valid() bool

Valid returns whether the timespec contains valid values.

func (*Timespec) WriteTo

func (ts *Timespec) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Timeval

type Timeval struct {
	Sec  int64
	Usec int64
}

Timeval represents struct timeval in <time.h>.

+marshal slice:TimevalSlice

func DurationToTimeval

func DurationToTimeval(dur time.Duration) Timeval

DurationToTimeval translates time.Duration to Timeval.

func NsecToTimeval

func NsecToTimeval(nsec int64) (tv Timeval)

NsecToTimeval translates nanosecond to Timeval.

func (*Timeval) CopyIn

func (tv *Timeval) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Timeval) CopyOut

func (tv *Timeval) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Timeval) CopyOutN

func (tv *Timeval) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Timeval) MarshalBytes

func (tv *Timeval) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Timeval) MarshalUnsafe

func (tv *Timeval) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Timeval) Packed

func (tv *Timeval) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Timeval) SizeBytes

func (tv *Timeval) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (Timeval) ToDuration

func (tv Timeval) ToDuration() time.Duration

ToDuration returns the safe nanosecond representation as a time.Duration.

func (Timeval) ToNsecCapped

func (tv Timeval) ToNsecCapped() int64

ToNsecCapped returns the safe nanosecond representation.

func (Timeval) ToTime

func (tv Timeval) ToTime() time.Time

ToTime returns the Go time.Time representation.

func (*Timeval) UnmarshalBytes

func (tv *Timeval) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Timeval) UnmarshalUnsafe

func (tv *Timeval) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Timeval) WriteTo

func (tv *Timeval) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Tms

type Tms struct {
	UTime  ClockT
	STime  ClockT
	CUTime ClockT
	CSTime ClockT
}

Tms represents struct tms, used by times(2).

+marshal

func (*Tms) CopyIn

func (t *Tms) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Tms) CopyOut

func (t *Tms) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Tms) CopyOutN

func (t *Tms) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Tms) MarshalBytes

func (t *Tms) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Tms) MarshalUnsafe

func (t *Tms) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Tms) Packed

func (t *Tms) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Tms) SizeBytes

func (t *Tms) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Tms) UnmarshalBytes

func (t *Tms) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Tms) UnmarshalUnsafe

func (t *Tms) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Tms) WriteTo

func (t *Tms) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Utime

type Utime struct {
	Actime  int64
	Modtime int64
}

Utime represents struct utimbuf used by utimes(2).

+marshal

func (*Utime) CopyIn

func (u *Utime) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Utime) CopyOut

func (u *Utime) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Utime) CopyOutN

func (u *Utime) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Utime) MarshalBytes

func (u *Utime) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Utime) MarshalUnsafe

func (u *Utime) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Utime) Packed

func (u *Utime) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Utime) SizeBytes

func (u *Utime) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Utime) UnmarshalBytes

func (u *Utime) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Utime) UnmarshalUnsafe

func (u *Utime) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Utime) WriteTo

func (u *Utime) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type UtsName

type UtsName struct {
	Sysname    [UTSLen + 1]byte
	Nodename   [UTSLen + 1]byte
	Release    [UTSLen + 1]byte
	Version    [UTSLen + 1]byte
	Machine    [UTSLen + 1]byte
	Domainname [UTSLen + 1]byte
}

UtsName represents struct utsname, the struct returned by uname(2).

+marshal

func (*UtsName) CopyIn

func (u *UtsName) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*UtsName) CopyOut

func (u *UtsName) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*UtsName) CopyOutN

func (u *UtsName) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*UtsName) MarshalBytes

func (u *UtsName) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*UtsName) MarshalUnsafe

func (u *UtsName) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*UtsName) Packed

func (u *UtsName) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*UtsName) SizeBytes

func (u *UtsName) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (UtsName) String

func (u UtsName) String() string

func (*UtsName) UnmarshalBytes

func (u *UtsName) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*UtsName) UnmarshalUnsafe

func (u *UtsName) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*UtsName) WriteTo

func (u *UtsName) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type VerityDigest

type VerityDigest struct {
	Metadata DigestMetadata
	Digest   []byte
}

VerityDigest is struct from uapi/linux/fsverity.h.

type WindowSize

type WindowSize struct {
	Rows uint16
	Cols uint16
	// contains filtered or unexported fields
}

WindowSize corresponds to struct winsize defined in include/uapi/asm-generic/termios.h.

+stateify savable +marshal

func (*WindowSize) CopyIn

func (w *WindowSize) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*WindowSize) CopyOut

func (w *WindowSize) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*WindowSize) CopyOutN

func (w *WindowSize) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*WindowSize) MarshalBytes

func (w *WindowSize) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*WindowSize) MarshalUnsafe

func (w *WindowSize) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*WindowSize) Packed

func (w *WindowSize) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*WindowSize) SizeBytes

func (w *WindowSize) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*WindowSize) StateFields

func (w *WindowSize) StateFields() []string

func (*WindowSize) StateLoad

func (w *WindowSize) StateLoad(stateSourceObject state.Source)

func (*WindowSize) StateSave

func (w *WindowSize) StateSave(stateSinkObject state.Sink)

func (*WindowSize) StateTypeName

func (w *WindowSize) StateTypeName() string

func (*WindowSize) UnmarshalBytes

func (w *WindowSize) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*WindowSize) UnmarshalUnsafe

func (w *WindowSize) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*WindowSize) WriteTo

func (w *WindowSize) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type Winsize

type Winsize struct {
	Row    uint16
	Col    uint16
	Xpixel uint16
	Ypixel uint16
}

Winsize is struct winsize, defined in uapi/asm-generic/termios.h.

+marshal

func (*Winsize) CopyIn

func (w *Winsize) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*Winsize) CopyOut

func (w *Winsize) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*Winsize) CopyOutN

func (w *Winsize) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*Winsize) MarshalBytes

func (w *Winsize) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*Winsize) MarshalUnsafe

func (w *Winsize) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*Winsize) Packed

func (w *Winsize) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*Winsize) SizeBytes

func (w *Winsize) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*Winsize) UnmarshalBytes

func (w *Winsize) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*Winsize) UnmarshalUnsafe

func (w *Winsize) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*Winsize) WriteTo

func (w *Winsize) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type XTCounters

type XTCounters struct {
	// Pcnt is the packet count.
	Pcnt uint64

	// Bcnt is the byte count.
	Bcnt uint64
}

XTCounters holds packet and byte counts for a rule. It corresponds to struct xt_counters in include/uapi/linux/netfilter/x_tables.h.

+marshal

func (*XTCounters) CopyIn

func (x *XTCounters) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*XTCounters) CopyOut

func (x *XTCounters) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*XTCounters) CopyOutN

func (x *XTCounters) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*XTCounters) MarshalBytes

func (x *XTCounters) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*XTCounters) MarshalUnsafe

func (x *XTCounters) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*XTCounters) Packed

func (x *XTCounters) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*XTCounters) SizeBytes

func (x *XTCounters) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*XTCounters) UnmarshalBytes

func (x *XTCounters) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*XTCounters) UnmarshalUnsafe

func (x *XTCounters) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*XTCounters) WriteTo

func (x *XTCounters) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type XTEntryMatch

type XTEntryMatch struct {
	MatchSize uint16
	Name      ExtensionName
	Revision  uint8
}

XTEntryMatch holds a match for a rule. For example, a user using the addrtype iptables match extension would put the data for that match into an XTEntryMatch. iptables-extensions(8) has a list of possible matches.

XTEntryMatch corresponds to struct xt_entry_match in include/uapi/linux/netfilter/x_tables.h. That struct contains a union exposing different data to the user and kernel, but this struct holds only the user data.

type XTEntryTarget

type XTEntryTarget struct {
	TargetSize uint16
	Name       ExtensionName
	Revision   uint8
}

XTEntryTarget holds a target for a rule. For example, it can specify that packets matching the rule should DROP, ACCEPT, or use an extension target. iptables-extension(8) has a list of possible targets.

XTEntryTarget corresponds to struct xt_entry_target in include/uapi/linux/netfilter/x_tables.h. That struct contains a union exposing different data to the user and kernel, but this struct holds only the user data.

type XTErrorTarget

type XTErrorTarget struct {
	Target XTEntryTarget
	Name   ErrorName
	// contains filtered or unexported fields
}

XTErrorTarget triggers an error when reached. It is also used to mark the beginning of user-defined chains by putting the name of the chain in ErrorName. It corresponds to struct xt_error_target in include/uapi/linux/netfilter/x_tables.h.

type XTGetRevision

type XTGetRevision struct {
	Name     ExtensionName
	Revision uint8
}

XTGetRevision corresponds to xt_get_revision in include/uapi/linux/netfilter/x_tables.h

+marshal

func (*XTGetRevision) CopyIn

func (x *XTGetRevision) CopyIn(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyIn implements marshal.Marshallable.CopyIn.

func (*XTGetRevision) CopyOut

func (x *XTGetRevision) CopyOut(cc marshal.CopyContext, addr usermem.Addr) (int, error)

CopyOut implements marshal.Marshallable.CopyOut.

func (*XTGetRevision) CopyOutN

func (x *XTGetRevision) CopyOutN(cc marshal.CopyContext, addr usermem.Addr, limit int) (int, error)

CopyOutN implements marshal.Marshallable.CopyOutN.

func (*XTGetRevision) MarshalBytes

func (x *XTGetRevision) MarshalBytes(dst []byte)

MarshalBytes implements marshal.Marshallable.MarshalBytes.

func (*XTGetRevision) MarshalUnsafe

func (x *XTGetRevision) MarshalUnsafe(dst []byte)

MarshalUnsafe implements marshal.Marshallable.MarshalUnsafe.

func (*XTGetRevision) Packed

func (x *XTGetRevision) Packed() bool

Packed implements marshal.Marshallable.Packed.

func (*XTGetRevision) SizeBytes

func (x *XTGetRevision) SizeBytes() int

SizeBytes implements marshal.Marshallable.SizeBytes.

func (*XTGetRevision) UnmarshalBytes

func (x *XTGetRevision) UnmarshalBytes(src []byte)

UnmarshalBytes implements marshal.Marshallable.UnmarshalBytes.

func (*XTGetRevision) UnmarshalUnsafe

func (x *XTGetRevision) UnmarshalUnsafe(src []byte)

UnmarshalUnsafe implements marshal.Marshallable.UnmarshalUnsafe.

func (*XTGetRevision) WriteTo

func (x *XTGetRevision) WriteTo(writer io.Writer) (int64, error)

WriteTo implements io.WriterTo.WriteTo.

type XTRedirectTarget

type XTRedirectTarget struct {
	Target  XTEntryTarget
	NfRange NfNATIPV4MultiRangeCompat
	// contains filtered or unexported fields
}

XTRedirectTarget triggers a redirect when reached. Adding 4 bytes of padding to make the struct 8 byte aligned.

type XTStandardTarget

type XTStandardTarget struct {
	Target XTEntryTarget
	// A positive verdict indicates a jump, and is the offset from the
	// start of the table to jump to. A negative value means one of the
	// other built-in targets.
	Verdict int32
	// contains filtered or unexported fields
}

XTStandardTarget is a built-in target, one of ACCEPT, DROP, JUMP, QUEUE, RETURN, or jump. It corresponds to struct xt_standard_target in include/uapi/linux/netfilter/x_tables.h.

type XTTCP

type XTTCP struct {
	// SourcePortStart specifies the inclusive start of the range of source
	// ports to which the matcher applies.
	SourcePortStart uint16

	// SourcePortEnd specifies the inclusive end of the range of source ports
	// to which the matcher applies.
	SourcePortEnd uint16

	// DestinationPortStart specifies the start of the destination port
	// range to which the matcher applies.
	DestinationPortStart uint16

	// DestinationPortEnd specifies the end of the destination port
	// range to which the matcher applies.
	DestinationPortEnd uint16

	// Option specifies that a particular TCP option must be set.
	Option uint8

	// FlagMask masks TCP flags when comparing to the FlagCompare byte. It allows
	// for specification of which flags are important to the matcher.
	FlagMask uint8

	// FlagCompare, in combination with FlagMask, is used to match only packets
	// that have certain flags set.
	FlagCompare uint8

	// InverseFlags flips the meaning of certain fields. See the
	// TX_TCP_INV_* flags.
	InverseFlags uint8
}

XTTCP holds data for matching TCP packets. It corresponds to struct xt_tcp in include/uapi/linux/netfilter/xt_tcpudp.h.

type XTUDP

type XTUDP struct {
	// SourcePortStart is the inclusive start of the range of source ports
	// to which the matcher applies.
	SourcePortStart uint16

	// SourcePortEnd is the inclusive end of the range of source ports to
	// which the matcher applies.
	SourcePortEnd uint16

	// DestinationPortStart is the inclusive start of the destination port
	// range to which the matcher applies.
	DestinationPortStart uint16

	// DestinationPortEnd is the inclusive end of the destination port
	// range to which the matcher applies.
	DestinationPortEnd uint16

	// InverseFlags flips the meaning of certain fields. See the
	// TX_UDP_INV_* flags.
	InverseFlags uint8
	// contains filtered or unexported fields
}

XTUDP holds data for matching UDP packets. It corresponds to struct xt_udp in include/uapi/linux/netfilter/xt_tcpudp.h.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL