vendor/golang.org/x/sys/unix/syscall_linux_386.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
child 262 8d3354485fc3
equal deleted inserted replaced
259:db4911b0c721 260:445e01aede7e
    17 
    17 
    18 func setTimeval(sec, usec int64) Timeval {
    18 func setTimeval(sec, usec int64) Timeval {
    19 	return Timeval{Sec: int32(sec), Usec: int32(usec)}
    19 	return Timeval{Sec: int32(sec), Usec: int32(usec)}
    20 }
    20 }
    21 
    21 
    22 //sysnb	pipe(p *[2]_C_int) (err error)
       
    23 
       
    24 func Pipe(p []int) (err error) {
       
    25 	if len(p) != 2 {
       
    26 		return EINVAL
       
    27 	}
       
    28 	var pp [2]_C_int
       
    29 	err = pipe(&pp)
       
    30 	p[0] = int(pp[0])
       
    31 	p[1] = int(pp[1])
       
    32 	return
       
    33 }
       
    34 
       
    35 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
       
    36 
       
    37 func Pipe2(p []int, flags int) (err error) {
       
    38 	if len(p) != 2 {
       
    39 		return EINVAL
       
    40 	}
       
    41 	var pp [2]_C_int
       
    42 	err = pipe2(&pp, flags)
       
    43 	p[0] = int(pp[0])
       
    44 	p[1] = int(pp[1])
       
    45 	return
       
    46 }
       
    47 
       
    48 // 64-bit file system and 32-bit uid calls
    22 // 64-bit file system and 32-bit uid calls
    49 // (386 default is 32-bit file system and 16-bit uid).
    23 // (386 default is 32-bit file system and 16-bit uid).
    50 //sys	dup2(oldfd int, newfd int) (err error)
       
    51 //sysnb	EpollCreate(size int) (fd int, err error)
       
    52 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    24 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    53 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
    25 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
    54 //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
    26 //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
    55 //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
    27 //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
    56 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
    28 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
    57 //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
    29 //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
    58 //sysnb	Getegid() (egid int) = SYS_GETEGID32
    30 //sysnb	Getegid() (egid int) = SYS_GETEGID32
    59 //sysnb	Geteuid() (euid int) = SYS_GETEUID32
    31 //sysnb	Geteuid() (euid int) = SYS_GETEUID32
    60 //sysnb	Getgid() (gid int) = SYS_GETGID32
    32 //sysnb	Getgid() (gid int) = SYS_GETGID32
    61 //sysnb	Getuid() (uid int) = SYS_GETUID32
    33 //sysnb	Getuid() (uid int) = SYS_GETUID32
    62 //sysnb	InotifyInit() (fd int, err error)
       
    63 //sys	Ioperm(from int, num int, on int) (err error)
    34 //sys	Ioperm(from int, num int, on int) (err error)
    64 //sys	Iopl(level int) (err error)
    35 //sys	Iopl(level int) (err error)
    65 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    36 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    66 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    37 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    67 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    38 //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    68 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    39 //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    69 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    40 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    70 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
    41 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
    71 //sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
    42 //sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
    72 //sys	setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
    43 //sys	setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
    73 //sysnb	Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
    44 //sysnb	Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
   103 
    74 
   104 const rlimInf32 = ^uint32(0)
    75 const rlimInf32 = ^uint32(0)
   105 const rlimInf64 = ^uint64(0)
    76 const rlimInf64 = ^uint64(0)
   106 
    77 
   107 func Getrlimit(resource int, rlim *Rlimit) (err error) {
    78 func Getrlimit(resource int, rlim *Rlimit) (err error) {
   108 	err = prlimit(0, resource, nil, rlim)
    79 	err = Prlimit(0, resource, nil, rlim)
   109 	if err != ENOSYS {
    80 	if err != ENOSYS {
   110 		return err
    81 		return err
   111 	}
    82 	}
   112 
    83 
   113 	rl := rlimit32{}
    84 	rl := rlimit32{}
   131 }
   102 }
   132 
   103 
   133 //sysnb	setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
   104 //sysnb	setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
   134 
   105 
   135 func Setrlimit(resource int, rlim *Rlimit) (err error) {
   106 func Setrlimit(resource int, rlim *Rlimit) (err error) {
   136 	err = prlimit(0, resource, rlim, nil)
   107 	err = Prlimit(0, resource, rlim, nil)
   137 	if err != ENOSYS {
   108 	if err != ENOSYS {
   138 		return err
   109 		return err
   139 	}
   110 	}
   140 
   111 
   141 	rl := rlimit32{}
   112 	rl := rlimit32{}
   200 	_ACCEPT4     = 18
   171 	_ACCEPT4     = 18
   201 	_RECVMMSG    = 19
   172 	_RECVMMSG    = 19
   202 	_SENDMMSG    = 20
   173 	_SENDMMSG    = 20
   203 )
   174 )
   204 
   175 
   205 func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
       
   206 	fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
       
   207 	if e != 0 {
       
   208 		err = e
       
   209 	}
       
   210 	return
       
   211 }
       
   212 
       
   213 func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
   176 func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
   214 	fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
   177 	fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
   215 	if e != 0 {
   178 	if e != 0 {
   216 		err = e
   179 		err = e
   217 	}
   180 	}
   379 }
   342 }
   380 
   343 
   381 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   344 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   382 	rsa.Service_name_len = uint32(length)
   345 	rsa.Service_name_len = uint32(length)
   383 }
   346 }
   384 
       
   385 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
       
   386 
       
   387 func Poll(fds []PollFd, timeout int) (n int, err error) {
       
   388 	if len(fds) == 0 {
       
   389 		return poll(nil, 0, timeout)
       
   390 	}
       
   391 	return poll(&fds[0], len(fds), timeout)
       
   392 }