#include <sys/fcntl.h>
#include <sys/syscall.h>
#include <sys/socket.h>
+#ifdef __linux__
#include <linux/net.h>
+#endif
#include <sys/uio.h>
#include <sys/queue.h>
#include "xtio.h"
#include "sysio.h"
+#include "native.h"
#include "fs.h"
#include "inode.h"
#include "file.h"
(void (*)(struct filesys *))sockets_illop
};
-static struct filesys *sockets_fs;
+static struct filesys *sockets_fs = NULL;
static struct inode_ops sockets_i_ops;
_sysio_sockets_init()
{
+ assert(!sockets_fs);
+
sockets_i_ops = _sysio_nodev_ops;
sockets_i_ops.inop_close = sockets_inop_close;
sockets_i_ops.inop_read = sockets_inop_read;
if (ski->ski_fd < 0)
return -EBADF;
- err = syscall(SYS_close, ski->ski_fd);
+ err = syscall(SYSIO_SYS_close, ski->ski_fd);
if (err)
return -errno;
ski->ski_fd = -1;
_readv(int fd, const struct iovec *vector, int count)
{
- return syscall(SYS_readv, fd, vector, count);
+ return syscall(SYSIO_SYS_readv, fd, vector, count);
}
static int
_writev(int fd, const struct iovec *vector, int count)
{
- return syscall(SYS_writev, fd, vector, count);
+ return syscall(SYSIO_SYS_writev, fd, vector, count);
}
static int
case F_GETFD:
case F_GETFL:
case F_GETOWN:
- *rtn = syscall(SYS_fcntl, I2SKI(ino)->ski_fd, cmd);
+ *rtn = syscall(SYSIO_SYS_fcntl, I2SKI(ino)->ski_fd, cmd);
break;
case F_DUPFD:
case F_SETFD:
case F_SETLKW:
case F_SETOWN:
arg = va_arg(ap, long);
- *rtn = syscall(SYS_fcntl, I2SKI(ino)->ski_fd, cmd, arg);
+ *rtn = syscall(SYSIO_SYS_fcntl, I2SKI(ino)->ski_fd, cmd, arg);
break;
default:
*rtn = -1;
assert(I2SKI(ino)->ski_fd >= 0);
- return syscall(SYS_fsync, I2SKI(ino)->ski_fd);
+ return syscall(SYSIO_SYS_fsync, I2SKI(ino)->ski_fd);
}
static int
assert(I2SKI(ino)->ski_fd >= 0);
- return syscall(SYS_fdatasync, I2SKI(ino)->ski_fd);
+ return syscall(SYSIO_SYS_fdatasync, I2SKI(ino)->ski_fd);
}
#ifdef HAVE_LUSTRE_HACK
arg3 = va_arg(ap, long);
arg4 = va_arg(ap, long);
- return syscall(SYS_ioctl, I2SKI(ino)->ski_fd, request,
+ return syscall(SYSIO_SYS_ioctl, I2SKI(ino)->ski_fd, request,
arg1, arg2, arg3, arg4);
}
#else
static ino_t inum = 1;
struct socket_info *ski;
struct inode *ino;
+ static struct intnl_stat zero_stat;
ski = malloc(sizeof(struct socket_info));
if (!ski)
ino =
_sysio_i_new(sockets_fs,
&ski->ski_fileid,
- 0,
- 0,
+ &zero_stat,
0,
&sockets_i_ops,
ski);
}
ski = I2SKI(ino);
-#ifndef SYS_socketcall
- ski->ski_fd = syscall(SYS_socket, domain, type, protocol);
+#ifndef SYSIO_SYS_socketcall
+ ski->ski_fd = syscall(SYSIO_SYS_socket, domain, type, protocol);
#else
{
unsigned long avec[3] = {domain, type, protocol};
- ski->ski_fd = syscall(SYS_socketcall, SYS_SOCKET, avec);
+ ski->ski_fd =
+ syscall(SYSIO_SYS_socketcall, SYS_SOCKET, avec);
}
#endif
if (ski->ski_fd < 0) {
}
ski = I2SKI(ino);
-#ifndef SYS_socketcall
- ski->ski_fd = syscall(SYS_accept, I2SKI(ofil->f_ino)->ski_fd,
- addr, addrlen);
+#ifndef SYSIO_SYS_socketcall
+ ski->ski_fd =
+ syscall(SYSIO_SYS_accept,
+ I2SKI(ofil->f_ino)->ski_fd,
+ addr,
+ addrlen);
#else
{
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);
+ ski->ski_fd =
+ syscall(SYSIO_SYS_socketcall, SYS_ACCEPT, avec);
}
#endif
if (ski->ski_fd < 0) {
goto out;
}
-#ifndef SYS_socketcall
- if (syscall(SYS_bind, I2SKI(fil->f_ino)->ski_fd, my_addr, addrlen)) {
+#ifndef SYSIO_SYS_socketcall
+ if (syscall(SYSIO_SYS_bind,
+ I2SKI(fil->f_ino)->ski_fd,
+ my_addr,
+ addrlen)) {
#else
avec[0] = I2SKI(fil->f_ino)->ski_fd;
avec[1] = (unsigned long )my_addr;
avec[2] = addrlen;
- if (syscall(SYS_socketcall, SYS_BIND, avec) != 0) {
+ if (syscall(SYSIO_SYS_socketcall, SYS_BIND, avec) != 0) {
#endif
err = -errno;
goto out;
goto out;
}
-#ifndef SYS_socketcall
- if (syscall(SYS_listen, I2SKI(fil->f_ino)->ski_fd, backlog) != 0) {
+#ifndef SYSIO_SYS_socketcall
+ if (syscall(SYSIO_SYS_listen,
+ I2SKI(fil->f_ino)->ski_fd,
+ backlog) != 0) {
#else
avec[0] = I2SKI(fil->f_ino)->ski_fd;
avec[1] = backlog;
- if (syscall(SYS_socketcall, SYS_LISTEN, avec) != 0) {
+ if (syscall(SYSIO_SYS_socketcall, SYS_LISTEN, avec) != 0) {
#endif
err = -errno;
goto out;
goto out;
}
-#ifndef SYS_socketcall
- if (syscall(SYS_connect, I2SKI(fil->f_ino)->ski_fd,
- serv_addr, addrlen) != 0) {
+#ifndef SYSIO_SYS_socketcall
+ if (syscall(SYSIO_SYS_connect,
+ I2SKI(fil->f_ino)->ski_fd,
+ serv_addr,
+ addrlen) != 0) {
#else
avec[0] = I2SKI(fil->f_ino)->ski_fd;
avec[1] = (unsigned long )serv_addr;
avec[2] = addrlen;
- if (syscall(SYS_socketcall, SYS_CONNECT, avec) != 0) {
+ if (syscall(SYSIO_SYS_socketcall, SYS_CONNECT, avec) != 0) {
#endif
err = -errno;
goto out;