26
26
raw RawSockaddrDatalink
29
29
func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno)
31
func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {
34
// Get a list of all sysctl nodes below the given MIB by performing
35
// a sysctl for the given MIB with CTL_QUERY appended.
36
mib = append(mib, CTL_QUERY)
37
qnode := Sysctlnode{Flags: SYSCTL_VERS_1}
38
qp := (*byte)(unsafe.Pointer(&qnode))
39
sz := unsafe.Sizeof(qnode)
40
if err = sysctl(mib, nil, &olen, qp, sz); err != nil {
44
// Now that we know the size, get the actual nodes.
45
nodes = make([]Sysctlnode, olen/sz)
46
np := (*byte)(unsafe.Pointer(&nodes[0]))
47
if err = sysctl(mib, np, &olen, qp, sz); err != nil {
31
54
func nametomib(name string) (mib []_C_int, err error) {
56
// Split name into components.
59
for i := 0; i < len(name); i++ {
61
parts = append(parts, name[last:i])
65
parts = append(parts, name[last:])
67
// Discover the nodes and construct the MIB OID.
68
for partno, part := range parts {
69
nodes, err := sysctlNodes(mib)
73
for _, node := range nodes {
75
for i := range node.Name {
76
if node.Name[i] != 0 {
77
n = append(n, byte(node.Name[i]))
80
if string(n) == part {
81
mib = append(mib, _C_int(node.Num))
85
if len(mib) != partno+1 {
35
93
// ParseDirent parses up to max directory entries in buf,
60
118
return origlen - len(buf), count, names
63
//sysnb pipe2(p *[2]_C_int, flags _C_int) (err error)
121
//sysnb pipe() (fd1 int, fd2 int, err error)
64
122
func Pipe(p []int) (err error) {
126
p[0], p[1], err = pipe()
81
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
136
func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
97
152
//sysnb Dup2(from int, to int) (err error)
98
153
//sys Exit(code int)
99
154
//sys Fchdir(fd int) (err error)
100
//sys Fchflags(path string, flags int) (err error)
155
//sys Fchflags(fd int, flags int) (err error)
101
156
//sys Fchmod(fd int, mode uint32) (err error)
102
157
//sys Fchown(fd int, uid int, gid int) (err error)
103
158
//sys Flock(fd int, how int) (err error)
133
188
//sys Pathconf(path string, name int) (val int, err error)
134
189
//sys Pread(fd int, p []byte, offset int64) (n int, err error)
135
190
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
136
//sys Read(fd int, p []byte) (n int, err error)
191
//sys read(fd int, p []byte) (n int, err error)
137
192
//sys Readlink(path string, buf []byte) (n int, err error)
138
193
//sys Rename(from string, to string) (err error)
139
194
//sys Revoke(path string) (err error)
158
213
//sys Umask(newmask int) (oldmask int)
159
214
//sys Unlink(path string) (err error)
160
215
//sys Unmount(path string, flags int) (err error)
161
//sys Write(fd int, p []byte) (n int, err error)
216
//sys write(fd int, p []byte) (n int, err error)
162
217
//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
163
218
//sys munmap(addr uintptr, length uintptr) (err error)
164
//sys read(fd int, buf *byte, nbuf int) (n int, err error)
165
//sys write(fd int, buf *byte, nbuf int) (n int, err error)
219
//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ
220
//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE