112 return EINVAL |
115 return EINVAL |
113 } |
116 } |
114 var pp [2]_C_int |
117 var pp [2]_C_int |
115 // pipe2 on dragonfly takes an fds array as an argument, but still |
118 // pipe2 on dragonfly takes an fds array as an argument, but still |
116 // returns the file descriptors. |
119 // returns the file descriptors. |
117 p[0], p[1], err = pipe2(&pp, flags) |
120 r, w, err := pipe2(&pp, flags) |
|
121 if err == nil { |
|
122 p[0], p[1] = r, w |
|
123 } |
118 return err |
124 return err |
119 } |
125 } |
120 |
126 |
121 //sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) |
127 //sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) |
122 func Pread(fd int, p []byte, offset int64) (n int, err error) { |
128 |
|
129 func pread(fd int, p []byte, offset int64) (n int, err error) { |
123 return extpread(fd, p, 0, offset) |
130 return extpread(fd, p, 0, offset) |
124 } |
131 } |
125 |
132 |
126 //sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) |
133 //sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) |
127 func Pwrite(fd int, p []byte, offset int64) (n int, err error) { |
134 |
|
135 func pwrite(fd int, p []byte, offset int64) (n int, err error) { |
128 return extpwrite(fd, p, 0, offset) |
136 return extpwrite(fd, p, 0, offset) |
129 } |
137 } |
130 |
138 |
131 func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { |
139 func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { |
132 var rsa RawSockaddrAny |
140 var rsa RawSockaddrAny |
159 n = int(r0) |
167 n = int(r0) |
160 if e1 != 0 { |
168 if e1 != 0 { |
161 err = e1 |
169 err = e1 |
162 } |
170 } |
163 return |
171 return |
164 } |
|
165 |
|
166 func setattrlistTimes(path string, times []Timespec, flags int) error { |
|
167 // used on Darwin for UtimesNano |
|
168 return ENOSYS |
|
169 } |
172 } |
170 |
173 |
171 //sys ioctl(fd int, req uint, arg uintptr) (err error) |
174 //sys ioctl(fd int, req uint, arg uintptr) (err error) |
172 |
175 |
173 //sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL |
176 //sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL |