int listen(int s, int backlog) { struct sys_listen_args args; int res, error; SYSCALLARG(args,s) = s; SYSCALLARG(args,backlog) = backlog; error = sys_listen(&args, &res); if (error) { errno = error; return -1; } else { return 0; } }
int read(int fd, void *buf, size_t len) { struct sys_read_args args; int res, error; SYSCALLARG(args,fd) = fd; SYSCALLARG(args,buf) = buf; SYSCALLARG(args,nbyte) = len; error = sys_read(&args, &res); if (error) { errno = error; return -1; } else { return res; } }
int accept(int s, const struct sockaddr *name, socklen_t *anamelen) { struct sys_accept_args args; int res, error; SYSCALLARG(args,s) = s; SYSCALLARG(args,name) = (struct sockaddr *)name; SYSCALLARG(args,anamelen) = anamelen; error = sys_accept(&args, &res); if (error) { errno = error; return -1; } else { return res; } }
int bind(int s, const struct sockaddr *name, socklen_t namelen) { struct sys_bind_args args; int res, error; SYSCALLARG(args,s) = s; SYSCALLARG(args,name) = name; SYSCALLARG(args,namelen) = namelen; error = sys_bind(&args, &res); if (error) { errno = error; return -1; } else { return 0; } }
int getpeername(int s, const struct sockaddr *name, socklen_t *namelen) { struct sys_getpeername_args args; int res, error; SYSCALLARG(args,fdes) = s; SYSCALLARG(args,asa) = (struct sockaddr *)name; SYSCALLARG(args,alen) = namelen; error = sys_getpeername(&args, &res); if (error) { errno = error; return -1; } else { return 0; } }
int setsockopt(int s, int level, int name, const void *val, socklen_t valsize) { struct sys_setsockopt_args args; int res, error; SYSCALLARG(args,s) = s; SYSCALLARG(args,level) = level; SYSCALLARG(args,name) = name; SYSCALLARG(args,val) = val; SYSCALLARG(args,valsize) = valsize; error = sys_setsockopt(&args, &res); if (error) { errno = error; return -1; } else { return 0; } }