mirror of
https://github.com/golang/go
synced 2024-11-13 17:30:24 -07:00
syscall: add BPF support for darwin/386, darwin/amd64
note: due to issue 1466 the Msghdr and BpfProgram struct for src/pkg/syscall/ztypes_darwin_386.go, src/pkg/syscall/ztypes_darwin_amd64.go had to be edited after the godefs generation. R=rsc CC=golang-dev https://golang.org/cl/4403042
This commit is contained in:
parent
ee154f5df5
commit
380f4ab2ff
@ -47,6 +47,7 @@ includes_Darwin='
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/route.h>
|
||||
#include <netinet/in.h>
|
||||
@ -134,6 +135,7 @@ done
|
||||
$2 ~ /^SIOC/ ||
|
||||
$2 ~ /^(IFF|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||
|
||||
$2 ~ /^BIOC/ ||
|
||||
$2 !~ /^(BPF_TIMEVAL)$/ &&
|
||||
$2 ~ /^(BPF|DLT)_/ ||
|
||||
$2 !~ "WMESGLEN" &&
|
||||
$2 ~ /^W[A-Z0-9]+$/ {printf("\t$%s = %s,\n", $2, $2)}
|
||||
|
@ -29,6 +29,7 @@ Input to godefs. See also mkerrors.sh and mkall.sh
|
||||
#include <sys/types.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/wait.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <net/if_var.h>
|
||||
@ -59,6 +60,7 @@ typedef long long $_C_long_long;
|
||||
|
||||
typedef struct timespec $Timespec;
|
||||
typedef struct timeval $Timeval;
|
||||
typedef struct timeval32 $Timeval32;
|
||||
|
||||
// Processes
|
||||
|
||||
@ -157,3 +159,19 @@ typedef struct if_data $IfData;
|
||||
typedef struct ifa_msghdr $IfaMsghdr;
|
||||
typedef struct rt_msghdr $RtMsghdr;
|
||||
typedef struct rt_metrics $RtMetrics;
|
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
enum {
|
||||
$SizeofBpfVersion = sizeof(struct bpf_version),
|
||||
$SizeofBpfStat = sizeof(struct bpf_stat),
|
||||
$SizeofBpfProgram = sizeof(struct bpf_program),
|
||||
$SizeofBpfInsn = sizeof(struct bpf_insn),
|
||||
$SizeofBpfHdr = sizeof(struct bpf_hdr),
|
||||
};
|
||||
|
||||
typedef struct bpf_version $BpfVersion;
|
||||
typedef struct bpf_stat $BpfStat;
|
||||
typedef struct bpf_program $BpfProgram;
|
||||
typedef struct bpf_insn $BpfInsn;
|
||||
typedef struct bpf_hdr $BpfHdr;
|
||||
|
@ -45,8 +45,109 @@ const (
|
||||
AF_SYSTEM = 0x20
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0
|
||||
BIOCFLUSH = 0x20004268
|
||||
BIOCGBLEN = 0x40044266
|
||||
BIOCGDLT = 0x4004426a
|
||||
BIOCGDLTLIST = 0xc00c4279
|
||||
BIOCGETIF = 0x4020426b
|
||||
BIOCGHDRCMPLT = 0x40044274
|
||||
BIOCGRSIG = 0x40044272
|
||||
BIOCGRTIMEOUT = 0x4008426e
|
||||
BIOCGSEESENT = 0x40044276
|
||||
BIOCGSTATS = 0x4008426f
|
||||
BIOCIMMEDIATE = 0x80044270
|
||||
BIOCPROMISC = 0x20004269
|
||||
BIOCSBLEN = 0xc0044266
|
||||
BIOCSDLT = 0x80044278
|
||||
BIOCSETF = 0x80084267
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
BIOCSRSIG = 0x80044273
|
||||
BIOCSRTIMEOUT = 0x8008426d
|
||||
BIOCSSEESENT = 0x80044277
|
||||
BIOCVERSION = 0x40044271
|
||||
BPF_A = 0x10
|
||||
BPF_ABS = 0x20
|
||||
BPF_ADD = 0
|
||||
BPF_ALIGNMENT = 0x4
|
||||
BPF_ALU = 0x4
|
||||
BPF_AND = 0x50
|
||||
BPF_B = 0x10
|
||||
BPF_DIV = 0x30
|
||||
BPF_H = 0x8
|
||||
BPF_IMM = 0
|
||||
BPF_IND = 0x40
|
||||
BPF_JA = 0
|
||||
BPF_JEQ = 0x10
|
||||
BPF_JGE = 0x30
|
||||
BPF_JGT = 0x20
|
||||
BPF_JMP = 0x5
|
||||
BPF_JSET = 0x40
|
||||
BPF_K = 0
|
||||
BPF_LD = 0
|
||||
BPF_LDX = 0x1
|
||||
BPF_LEN = 0x80
|
||||
BPF_LSH = 0x60
|
||||
BPF_MAJOR_VERSION = 0x1
|
||||
BPF_MAXBUFSIZE = 0x80000
|
||||
BPF_MAXINSNS = 0x200
|
||||
BPF_MEM = 0x60
|
||||
BPF_MEMWORDS = 0x10
|
||||
BPF_MINBUFSIZE = 0x20
|
||||
BPF_MINOR_VERSION = 0x1
|
||||
BPF_MISC = 0x7
|
||||
BPF_MSH = 0xa0
|
||||
BPF_MUL = 0x20
|
||||
BPF_NEG = 0x80
|
||||
BPF_OR = 0x40
|
||||
BPF_RELEASE = 0x30bb6
|
||||
BPF_RET = 0x6
|
||||
BPF_RSH = 0x70
|
||||
BPF_ST = 0x2
|
||||
BPF_STX = 0x3
|
||||
BPF_SUB = 0x10
|
||||
BPF_TAX = 0
|
||||
BPF_TXA = 0x80
|
||||
BPF_W = 0
|
||||
BPF_X = 0x8
|
||||
CTL_MAXNAME = 0xc
|
||||
CTL_NET = 0x4
|
||||
DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
|
||||
DLT_ARCNET = 0x7
|
||||
DLT_ATM_CLIP = 0x13
|
||||
DLT_ATM_RFC1483 = 0xb
|
||||
DLT_AX25 = 0x3
|
||||
DLT_CHAOS = 0x5
|
||||
DLT_CHDLC = 0x68
|
||||
DLT_C_HDLC = 0x68
|
||||
DLT_EN10MB = 0x1
|
||||
DLT_EN3MB = 0x2
|
||||
DLT_FDDI = 0xa
|
||||
DLT_IEEE802 = 0x6
|
||||
DLT_IEEE802_11 = 0x69
|
||||
DLT_IEEE802_11_RADIO = 0x7f
|
||||
DLT_IEEE802_11_RADIO_AVS = 0xa3
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_NULL = 0
|
||||
DLT_PFLOG = 0x75
|
||||
DLT_PFSYNC = 0x12
|
||||
DLT_PPP = 0x9
|
||||
DLT_PPP_BSDOS = 0x10
|
||||
DLT_PPP_SERIAL = 0x32
|
||||
DLT_PRONET = 0x4
|
||||
DLT_RAW = 0xc
|
||||
DLT_SLIP = 0x8
|
||||
DLT_SLIP_BSDOS = 0xf
|
||||
DT_BLK = 0x6
|
||||
DT_CHR = 0x2
|
||||
DT_DIR = 0x4
|
||||
DT_FIFO = 0x1
|
||||
DT_LNK = 0xa
|
||||
DT_REG = 0x8
|
||||
DT_SOCK = 0xc
|
||||
DT_UNKNOWN = 0
|
||||
DT_WHT = 0xe
|
||||
E2BIG = 0x7
|
||||
EACCES = 0xd
|
||||
EADDRINUSE = 0x30
|
||||
@ -196,6 +297,7 @@ const (
|
||||
F_GETLK = 0x7
|
||||
F_GETOWN = 0x5
|
||||
F_GETPATH = 0x32
|
||||
F_GETPROTECTIONCLASS = 0x3e
|
||||
F_GLOBAL_NOCACHE = 0x37
|
||||
F_LOG2PHYS = 0x31
|
||||
F_MARKDEPENDENCY = 0x3c
|
||||
@ -212,6 +314,7 @@ const (
|
||||
F_SETLK = 0x8
|
||||
F_SETLKW = 0x9
|
||||
F_SETOWN = 0x6
|
||||
F_SETPROTECTIONCLASS = 0x3f
|
||||
F_SETSIZE = 0x2b
|
||||
F_THAW_FS = 0x36
|
||||
F_UNLCK = 0x2
|
||||
@ -459,6 +562,16 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TRAFFIC_MGT_BACKGROUND = 0x41
|
||||
IP_TTL = 0x4
|
||||
MADV_CAN_REUSE = 0x9
|
||||
MADV_DONTNEED = 0x4
|
||||
MADV_FREE = 0x5
|
||||
MADV_FREE_REUSABLE = 0x7
|
||||
MADV_FREE_REUSE = 0x8
|
||||
MADV_NORMAL = 0
|
||||
MADV_RANDOM = 0x1
|
||||
MADV_SEQUENTIAL = 0x2
|
||||
MADV_WILLNEED = 0x3
|
||||
MADV_ZERO_WIRED_PAGES = 0x6
|
||||
MAP_ANON = 0x1000
|
||||
MAP_COPY = 0x2
|
||||
MAP_FILE = 0
|
||||
@ -556,6 +669,7 @@ const (
|
||||
RTF_DYNAMIC = 0x10
|
||||
RTF_GATEWAY = 0x2
|
||||
RTF_HOST = 0x4
|
||||
RTF_IFREF = 0x4000000
|
||||
RTF_IFSCOPE = 0x1000000
|
||||
RTF_LLINFO = 0x400
|
||||
RTF_LOCAL = 0x200000
|
||||
@ -649,6 +763,7 @@ const (
|
||||
SIOCDIFADDR = 0x80206919
|
||||
SIOCDIFPHYADDR = 0x80206941
|
||||
SIOCDLIFADDR = 0x8118691f
|
||||
SIOCGDRVSPEC = 0xc01c697b
|
||||
SIOCGETSGCNT = 0xc014721c
|
||||
SIOCGETVIFCNT = 0xc014721b
|
||||
SIOCGETVLAN = 0xc020697f
|
||||
@ -680,8 +795,10 @@ const (
|
||||
SIOCGLOWAT = 0x40047303
|
||||
SIOCGPGRP = 0x40047309
|
||||
SIOCIFCREATE = 0xc0206978
|
||||
SIOCIFCREATE2 = 0xc020697a
|
||||
SIOCIFDESTROY = 0x80206979
|
||||
SIOCRSLVMULTI = 0xc008693b
|
||||
SIOCSDRVSPEC = 0x801c697b
|
||||
SIOCSETVLAN = 0x8020697e
|
||||
SIOCSHIWAT = 0x80047300
|
||||
SIOCSIFADDR = 0x8020690c
|
||||
|
@ -45,8 +45,109 @@ const (
|
||||
AF_SYSTEM = 0x20
|
||||
AF_UNIX = 0x1
|
||||
AF_UNSPEC = 0
|
||||
BIOCFLUSH = 0x20004268
|
||||
BIOCGBLEN = 0x40044266
|
||||
BIOCGDLT = 0x4004426a
|
||||
BIOCGDLTLIST = 0xc00c4279
|
||||
BIOCGETIF = 0x4020426b
|
||||
BIOCGHDRCMPLT = 0x40044274
|
||||
BIOCGRSIG = 0x40044272
|
||||
BIOCGRTIMEOUT = 0x4008426e
|
||||
BIOCGSEESENT = 0x40044276
|
||||
BIOCGSTATS = 0x4008426f
|
||||
BIOCIMMEDIATE = 0x80044270
|
||||
BIOCPROMISC = 0x20004269
|
||||
BIOCSBLEN = 0xc0044266
|
||||
BIOCSDLT = 0x80044278
|
||||
BIOCSETF = 0x80104267
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
BIOCSRSIG = 0x80044273
|
||||
BIOCSRTIMEOUT = 0x8008426d
|
||||
BIOCSSEESENT = 0x80044277
|
||||
BIOCVERSION = 0x40044271
|
||||
BPF_A = 0x10
|
||||
BPF_ABS = 0x20
|
||||
BPF_ADD = 0
|
||||
BPF_ALIGNMENT = 0x4
|
||||
BPF_ALU = 0x4
|
||||
BPF_AND = 0x50
|
||||
BPF_B = 0x10
|
||||
BPF_DIV = 0x30
|
||||
BPF_H = 0x8
|
||||
BPF_IMM = 0
|
||||
BPF_IND = 0x40
|
||||
BPF_JA = 0
|
||||
BPF_JEQ = 0x10
|
||||
BPF_JGE = 0x30
|
||||
BPF_JGT = 0x20
|
||||
BPF_JMP = 0x5
|
||||
BPF_JSET = 0x40
|
||||
BPF_K = 0
|
||||
BPF_LD = 0
|
||||
BPF_LDX = 0x1
|
||||
BPF_LEN = 0x80
|
||||
BPF_LSH = 0x60
|
||||
BPF_MAJOR_VERSION = 0x1
|
||||
BPF_MAXBUFSIZE = 0x80000
|
||||
BPF_MAXINSNS = 0x200
|
||||
BPF_MEM = 0x60
|
||||
BPF_MEMWORDS = 0x10
|
||||
BPF_MINBUFSIZE = 0x20
|
||||
BPF_MINOR_VERSION = 0x1
|
||||
BPF_MISC = 0x7
|
||||
BPF_MSH = 0xa0
|
||||
BPF_MUL = 0x20
|
||||
BPF_NEG = 0x80
|
||||
BPF_OR = 0x40
|
||||
BPF_RELEASE = 0x30bb6
|
||||
BPF_RET = 0x6
|
||||
BPF_RSH = 0x70
|
||||
BPF_ST = 0x2
|
||||
BPF_STX = 0x3
|
||||
BPF_SUB = 0x10
|
||||
BPF_TAX = 0
|
||||
BPF_TXA = 0x80
|
||||
BPF_W = 0
|
||||
BPF_X = 0x8
|
||||
CTL_MAXNAME = 0xc
|
||||
CTL_NET = 0x4
|
||||
DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
|
||||
DLT_ARCNET = 0x7
|
||||
DLT_ATM_CLIP = 0x13
|
||||
DLT_ATM_RFC1483 = 0xb
|
||||
DLT_AX25 = 0x3
|
||||
DLT_CHAOS = 0x5
|
||||
DLT_CHDLC = 0x68
|
||||
DLT_C_HDLC = 0x68
|
||||
DLT_EN10MB = 0x1
|
||||
DLT_EN3MB = 0x2
|
||||
DLT_FDDI = 0xa
|
||||
DLT_IEEE802 = 0x6
|
||||
DLT_IEEE802_11 = 0x69
|
||||
DLT_IEEE802_11_RADIO = 0x7f
|
||||
DLT_IEEE802_11_RADIO_AVS = 0xa3
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_NULL = 0
|
||||
DLT_PFLOG = 0x75
|
||||
DLT_PFSYNC = 0x12
|
||||
DLT_PPP = 0x9
|
||||
DLT_PPP_BSDOS = 0x10
|
||||
DLT_PPP_SERIAL = 0x32
|
||||
DLT_PRONET = 0x4
|
||||
DLT_RAW = 0xc
|
||||
DLT_SLIP = 0x8
|
||||
DLT_SLIP_BSDOS = 0xf
|
||||
DT_BLK = 0x6
|
||||
DT_CHR = 0x2
|
||||
DT_DIR = 0x4
|
||||
DT_FIFO = 0x1
|
||||
DT_LNK = 0xa
|
||||
DT_REG = 0x8
|
||||
DT_SOCK = 0xc
|
||||
DT_UNKNOWN = 0
|
||||
DT_WHT = 0xe
|
||||
E2BIG = 0x7
|
||||
EACCES = 0xd
|
||||
EADDRINUSE = 0x30
|
||||
@ -196,6 +297,7 @@ const (
|
||||
F_GETLK = 0x7
|
||||
F_GETOWN = 0x5
|
||||
F_GETPATH = 0x32
|
||||
F_GETPROTECTIONCLASS = 0x3e
|
||||
F_GLOBAL_NOCACHE = 0x37
|
||||
F_LOG2PHYS = 0x31
|
||||
F_MARKDEPENDENCY = 0x3c
|
||||
@ -212,6 +314,7 @@ const (
|
||||
F_SETLK = 0x8
|
||||
F_SETLKW = 0x9
|
||||
F_SETOWN = 0x6
|
||||
F_SETPROTECTIONCLASS = 0x3f
|
||||
F_SETSIZE = 0x2b
|
||||
F_THAW_FS = 0x36
|
||||
F_UNLCK = 0x2
|
||||
@ -459,6 +562,16 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TRAFFIC_MGT_BACKGROUND = 0x41
|
||||
IP_TTL = 0x4
|
||||
MADV_CAN_REUSE = 0x9
|
||||
MADV_DONTNEED = 0x4
|
||||
MADV_FREE = 0x5
|
||||
MADV_FREE_REUSABLE = 0x7
|
||||
MADV_FREE_REUSE = 0x8
|
||||
MADV_NORMAL = 0
|
||||
MADV_RANDOM = 0x1
|
||||
MADV_SEQUENTIAL = 0x2
|
||||
MADV_WILLNEED = 0x3
|
||||
MADV_ZERO_WIRED_PAGES = 0x6
|
||||
MAP_ANON = 0x1000
|
||||
MAP_COPY = 0x2
|
||||
MAP_FILE = 0
|
||||
@ -556,6 +669,7 @@ const (
|
||||
RTF_DYNAMIC = 0x10
|
||||
RTF_GATEWAY = 0x2
|
||||
RTF_HOST = 0x4
|
||||
RTF_IFREF = 0x4000000
|
||||
RTF_IFSCOPE = 0x1000000
|
||||
RTF_LLINFO = 0x400
|
||||
RTF_LOCAL = 0x200000
|
||||
@ -649,6 +763,7 @@ const (
|
||||
SIOCDIFADDR = 0x80206919
|
||||
SIOCDIFPHYADDR = 0x80206941
|
||||
SIOCDLIFADDR = 0x8118691f
|
||||
SIOCGDRVSPEC = 0xc028697b
|
||||
SIOCGETSGCNT = 0xc014721c
|
||||
SIOCGETVIFCNT = 0xc014721b
|
||||
SIOCGETVLAN = 0xc020697f
|
||||
@ -680,8 +795,10 @@ const (
|
||||
SIOCGLOWAT = 0x40047303
|
||||
SIOCGPGRP = 0x40047309
|
||||
SIOCIFCREATE = 0xc0206978
|
||||
SIOCIFCREATE2 = 0xc020697a
|
||||
SIOCIFDESTROY = 0x80206979
|
||||
SIOCRSLVMULTI = 0xc010693b
|
||||
SIOCSDRVSPEC = 0x8028697b
|
||||
SIOCSETVLAN = 0x8020697e
|
||||
SIOCSHIWAT = 0x80047300
|
||||
SIOCSIFADDR = 0x8020690c
|
||||
|
@ -29,6 +29,11 @@ const (
|
||||
SizeofIfaMsghdr = 0x14
|
||||
SizeofRtMsghdr = 0x5c
|
||||
SizeofRtMetrics = 0x38
|
||||
SizeofBpfVersion = 0x4
|
||||
SizeofBpfStat = 0x8
|
||||
SizeofBpfProgram = 0x8
|
||||
SizeofBpfInsn = 0x8
|
||||
SizeofBpfHdr = 0x14
|
||||
)
|
||||
|
||||
// Types
|
||||
@ -334,3 +339,33 @@ type RtMetrics struct {
|
||||
Pksent uint32
|
||||
Filler [4]uint32
|
||||
}
|
||||
|
||||
type BpfVersion struct {
|
||||
Major uint16
|
||||
Minor uint16
|
||||
}
|
||||
|
||||
type BpfStat struct {
|
||||
Recv uint32
|
||||
Drop uint32
|
||||
}
|
||||
|
||||
type BpfProgram struct {
|
||||
Len uint32
|
||||
Insns *BpfInsn
|
||||
}
|
||||
|
||||
type BpfInsn struct {
|
||||
Code uint16
|
||||
Jt uint8
|
||||
Jf uint8
|
||||
K uint32
|
||||
}
|
||||
|
||||
type BpfHdr struct {
|
||||
Tstamp Timeval
|
||||
Caplen uint32
|
||||
Datalen uint32
|
||||
Hdrlen uint16
|
||||
Pad_godefs_0 [2]byte
|
||||
}
|
||||
|
@ -29,6 +29,11 @@ const (
|
||||
SizeofIfaMsghdr = 0x14
|
||||
SizeofRtMsghdr = 0x5c
|
||||
SizeofRtMetrics = 0x38
|
||||
SizeofBpfVersion = 0x4
|
||||
SizeofBpfStat = 0x8
|
||||
SizeofBpfProgram = 0x10
|
||||
SizeofBpfInsn = 0x8
|
||||
SizeofBpfHdr = 0x14
|
||||
)
|
||||
|
||||
// Types
|
||||
@ -52,6 +57,11 @@ type Timeval struct {
|
||||
Pad_godefs_0 [4]byte
|
||||
}
|
||||
|
||||
type Timeval32 struct {
|
||||
Sec int32
|
||||
Usec int32
|
||||
}
|
||||
|
||||
type Rusage struct {
|
||||
Utime Timeval
|
||||
Stime Timeval
|
||||
@ -229,7 +239,7 @@ type Msghdr struct {
|
||||
Name *byte
|
||||
Namelen uint32
|
||||
Pad_godefs_0 [4]byte
|
||||
Iov uint64
|
||||
Iov *Iovec
|
||||
Iovlen int32
|
||||
Pad_godefs_1 [4]byte
|
||||
Control *byte
|
||||
@ -292,7 +302,7 @@ type IfData struct {
|
||||
Noproto uint32
|
||||
Recvtiming uint32
|
||||
Xmittiming uint32
|
||||
Lastchange [8]byte /* timeval32 */
|
||||
Lastchange Timeval32
|
||||
Unused2 uint32
|
||||
Hwassist uint32
|
||||
Reserved1 uint32
|
||||
@ -339,3 +349,34 @@ type RtMetrics struct {
|
||||
Pksent uint32
|
||||
Filler [4]uint32
|
||||
}
|
||||
|
||||
type BpfVersion struct {
|
||||
Major uint16
|
||||
Minor uint16
|
||||
}
|
||||
|
||||
type BpfStat struct {
|
||||
Recv uint32
|
||||
Drop uint32
|
||||
}
|
||||
|
||||
type BpfProgram struct {
|
||||
Len uint32
|
||||
Pad_godefs_0 [4]byte
|
||||
Insns *BpfInsn
|
||||
}
|
||||
|
||||
type BpfInsn struct {
|
||||
Code uint16
|
||||
Jt uint8
|
||||
Jf uint8
|
||||
K uint32
|
||||
}
|
||||
|
||||
type BpfHdr struct {
|
||||
Tstamp Timeval32
|
||||
Caplen uint32
|
||||
Datalen uint32
|
||||
Hdrlen uint16
|
||||
Pad_godefs_0 [2]byte
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user