Thread: [Libsysio-commit] b_lustre: libsysio/drivers/sockets sockets.c
Brought to you by:
lward
From: Mei <me...@us...> - 2003-11-01 03:08:25
|
Update of /cvsroot/libsysio/libsysio/drivers/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv28091/drivers/sockets Modified Files: Tag: b_lustre sockets.c Log Message: merge HEAD into b_lustre, some fixes Index: sockets.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/sockets/Attic/sockets.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -w -b -B -p -r1.1.2.1 -r1.1.2.2 --- sockets.c 8 Sep 2003 03:52:28 -0000 1.1.2.1 +++ sockets.c 1 Nov 2003 03:08:21 -0000 1.1.2.2 @@ -90,11 +90,9 @@ struct socket_info { static int sockets_inop_close(struct inode *ino); static int sockets_inop_ipreadv(struct inode *ino, - struct io_arguments *ioargs, - struct ioctx **ioctxp); + struct ioctx *ioctx); static int sockets_inop_ipwritev(struct inode *ino, - struct io_arguments *ioargs, - struct ioctx **ioctxp); + struct ioctx *ioctxp); static int sockets_inop_iodone(struct ioctx *ioctx); static int sockets_inop_sync(struct inode *ino); static int sockets_inop_datasync(struct inode *ino); @@ -168,25 +166,16 @@ sockets_inop_close(struct inode *ino) static int doio(ssize_t (*f)(int, const struct iovec *, int), struct inode *ino, - struct io_arguments *ioargs, - struct ioctx **ioctxp) + struct ioctx *ioctx) { struct socket_info *ski = I2SKI(ino); - struct ioctx *ioctx; assert(ski->ski_fd >= 0); - if (ioargs->ioarg_iovlen && (int )ioargs->ioarg_iovlen < 0) + if (ioctx->ioctx_iovlen && (int) ioctx->ioctx_iovlen < 0) return -EINVAL; /* - * Get a new IO context. - */ - ioctx = _sysio_ioctx_new(ino, ioargs); - if (!ioctx) - return -ENOMEM; - - /* * Call the appropriate (read/write) IO function to * transfer the data now. */ @@ -195,7 +184,7 @@ doio(ssize_t (*f)(int, const struct iove if (ioctx->ioctx_cc < 0) ioctx->ioctx_errno = errno; - *ioctxp = ioctx; + ioctx->ioctx_done = 1; return 0; } @@ -211,11 +200,10 @@ _readv(int fd, const struct iovec *vecto static int sockets_inop_ipreadv(struct inode *ino, - struct io_arguments *ioargs, - struct ioctx **ioctxp) + struct ioctx *ioctx) { - return doio(_readv, ino, ioargs, ioctxp); + return doio(_readv, ino, ioctx); } /* @@ -230,11 +218,10 @@ _writev(int fd, const struct iovec *vect static int sockets_inop_ipwritev(struct inode *ino, - struct io_arguments *ioargs, - struct ioctx **ioctxp) + struct ioctx *ioctx) { - return doio(_writev, ino, ioargs, ioctxp); + return doio(_writev, ino, ioctx); } static int @@ -319,7 +306,6 @@ _sysio_sockets_inew() ino = _sysio_i_new(sockets_fs, - ski->ski_ident.inum, &ski->ski_fileid, 0, 0, |
From: Mei <me...@us...> - 2003-11-01 03:38:30
|
Update of /cvsroot/libsysio/libsysio/drivers/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv31910/drivers/sockets Modified Files: Tag: b_lustre sockets.c Log Message: use the common code of fcntl(), need some cleanup later. Index: sockets.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/sockets/Attic/sockets.c,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -w -b -B -p -r1.1.2.2 -r1.1.2.3 --- sockets.c 1 Nov 2003 03:08:21 -0000 1.1.2.2 +++ sockets.c 1 Nov 2003 03:38:27 -0000 1.1.2.3 @@ -239,10 +239,9 @@ sockets_inop_fcntl(struct inode *ino __I int cmd __IS_UNUSED, va_list ap __IS_UNUSED) { - /* - * I'm lazy. Maybe implemented later. - */ - return -ENOTTY; + assert(I2SKI(ino)->ski_fd >= 0); + + return _sysio_fcntl_common(I2SKI(ino)->ski_fd, cmd, ap); } static int |
From: Mei <me...@us...> - 2003-12-04 04:36:28
|
Update of /cvsroot/libsysio/libsysio/drivers/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv17784/drivers/sockets Modified Files: Tag: b_lustre sockets.c Log Message: Zach's fix for build on x86_64: there's no socketcall on x86_64. Index: sockets.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/sockets/Attic/sockets.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -w -b -B -p -r1.1.2.3 -r1.1.2.4 --- sockets.c 1 Nov 2003 03:38:27 -0000 1.1.2.3 +++ sockets.c 4 Dec 2003 04:36:24 -0000 1.1.2.4 @@ -323,7 +323,6 @@ socket(int domain, int type, int protoco int err; struct inode *ino; struct socket_info *ski; - unsigned long avec[3]; struct file *fil; err = 0; @@ -335,11 +334,15 @@ socket(int domain, int type, int protoco goto error; } - avec[0] = domain; - avec[1] = type; - avec[2] = protocol; ski = I2SKI(ino); +#ifndef SYS_socketcall + ski->ski_fd = syscall(SYS_socket, domain, type, protocol); +#else + { + unsigned long avec[3] = {domain, type, protocol}; ski->ski_fd = syscall(SYS_socketcall, SYS_SOCKET, avec); + } +#endif if (ski->ski_fd < 0) { err = -errno; goto error; @@ -374,7 +377,6 @@ accept(int s, struct sockaddr *addr, soc struct inode *ino; struct socket_info *ski; struct file *ofil, *nfil; - unsigned long avec[3]; err = 0; nfil = NULL; @@ -398,11 +400,17 @@ accept(int s, struct sockaddr *addr, soc goto error; } - avec[0] = I2SKI(ofil->f_ino)->ski_fd; - avec[1] = (unsigned long )addr; - avec[2] = (unsigned long )addrlen; ski = I2SKI(ino); +#ifndef SYS_socketcall + ski->ski_fd = syscall(SYS_accept, I2SKI(ofil->f_ino)->ski_fd, + addr, addrlen); +#else + { + unsigned long avec[3] = {I2SKI(ofil->f_ino)->ski_fd, addr, + addrlen}; ski->ski_fd = syscall(SYS_socketcall, SYS_ACCEPT, avec); + } +#endif if (ski->ski_fd < 0) { err = -errno; goto error; @@ -444,7 +452,11 @@ bind(int sockfd, const struct sockaddr * avec[0] = I2SKI(fil->f_ino)->ski_fd; avec[1] = (unsigned long )my_addr; avec[2] = addrlen; +#ifndef SYS_socketcall + if (syscall(SYS_bind, I2SKI(fil->f_ino)->ski_fd, my_addr, addrlen)) { +#else if (syscall(SYS_socketcall, SYS_BIND, avec) != 0) { +#endif err = -errno; goto out; } @@ -472,7 +484,11 @@ listen(int s, int backlog) avec[0] = I2SKI(fil->f_ino)->ski_fd; avec[1] = backlog; +#ifndef SYS_socketcall + if (syscall(SYS_listen, I2SKI(fil->f_ino)->ski_fd, backlog) != 0) { +#else if (syscall(SYS_socketcall, SYS_LISTEN, avec) != 0) { +#endif err = -errno; goto out; } @@ -501,7 +517,11 @@ connect(int sockfd, const struct sockadd avec[0] = I2SKI(fil->f_ino)->ski_fd; avec[1] = (unsigned long )serv_addr; avec[2] = addrlen; +#ifndef SYS_socketcall + if (syscall(SYS_connect, I2SKI(fil->f_ino)->ski_fd, serv_addr, addrlen) != 0) { +#else if (syscall(SYS_socketcall, SYS_CONNECT, avec) != 0) { +#endif err = -errno; goto out; } |
From: Mei <me...@us...> - 2003-12-15 08:25:48
|
Update of /cvsroot/libsysio/libsysio/drivers/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv4246 Modified Files: Tag: b_lustre sockets.c Log Message: compile warning in sockets driver. Index: sockets.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/sockets/Attic/sockets.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -w -b -B -p -r1.1.2.4 -r1.1.2.5 --- sockets.c 4 Dec 2003 04:36:24 -0000 1.1.2.4 +++ sockets.c 15 Dec 2003 08:25:43 -0000 1.1.2.5 @@ -406,8 +406,10 @@ accept(int s, struct sockaddr *addr, soc addr, addrlen); #else { - unsigned long avec[3] = {I2SKI(ofil->f_ino)->ski_fd, addr, - addrlen}; + unsigned long avec[3] = { + (unsigned long) I2SKI(ofil->f_ino)->ski_fd, + (unsigned long) addr, + (unsigned long) addrlen}; ski->ski_fd = syscall(SYS_socketcall, SYS_ACCEPT, avec); } #endif |
From: Mei <me...@us...> - 2004-01-11 06:43:26
|
Update of /cvsroot/libsysio/libsysio/drivers/sockets In directory sc8-pr-cvs1:/tmp/cvs-serv11587/drivers/sockets Modified Files: Tag: b_lustre sockets.c Log Message: remove the obsolete fcntl hack. Index: sockets.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/sockets/Attic/sockets.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -u -w -b -B -p -r1.1.2.5 -r1.1.2.6 --- sockets.c 15 Dec 2003 08:25:43 -0000 1.1.2.5 +++ sockets.c 11 Jan 2004 06:43:22 -0000 1.1.2.6 @@ -239,9 +239,29 @@ sockets_inop_fcntl(struct inode *ino __I int cmd __IS_UNUSED, va_list ap __IS_UNUSED) { + long arg; + assert(I2SKI(ino)->ski_fd >= 0); - return _sysio_fcntl_common(I2SKI(ino)->ski_fd, cmd, ap); + switch (cmd) { + case F_GETFD: + case F_GETFL: + case F_GETOWN: + return syscall(SYS_fcntl, I2SKI(ino)->ski_fd, cmd); + case F_DUPFD: + case F_SETFD: + case F_SETFL: + case F_GETLK: + case F_SETLK: + case F_SETLKW: + case F_SETOWN: + arg = va_arg(ap, long); + return syscall(SYS_fcntl, I2SKI(ino)->ski_fd, cmd, arg); + default: + printf("uncatched cmd %d\n", cmd); + abort(); + } + return -1; } static int |