aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-10-04 22:55:57 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-05 09:08:21 -0700
commit2116b7a473bf1c8d26998b477c294e7fe294921f (patch)
tree5f06aca6b425916f763d83fa4516bca51c8f9a60
parent5af74aa5e97fcc0cc3955bc2a7ff6f3a13fa41cb (diff)
downloadlinux-2116b7a473bf1c8d26998b477c294e7fe294921f.tar.gz
smbfs: move to drivers/staging
smbfs has been scheduled for removal in 2.6.27, so maybe we can now move it to drivers/staging on the way out. smbfs still uses the big kernel lock and nobody is going to fix that, so we should be getting rid of it soon. This removes the 32 bit compat mount and ioctl handling code, which is implemented in common fs code, and moves all smbfs related files into drivers/staging/smbfs. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--Documentation/filesystems/00-INDEX2
-rw-r--r--Documentation/ioctl/ioctl-number.txt2
-rw-r--r--drivers/staging/Kconfig2
-rw-r--r--drivers/staging/Makefile1
-rw-r--r--drivers/staging/smbfs/Kconfig (renamed from fs/smbfs/Kconfig)0
-rw-r--r--drivers/staging/smbfs/Makefile (renamed from fs/smbfs/Makefile)0
-rw-r--r--drivers/staging/smbfs/TODO8
-rw-r--r--drivers/staging/smbfs/cache.c (renamed from fs/smbfs/cache.c)2
-rw-r--r--drivers/staging/smbfs/dir.c (renamed from fs/smbfs/dir.c)6
-rw-r--r--drivers/staging/smbfs/file.c (renamed from fs/smbfs/file.c)5
-rw-r--r--drivers/staging/smbfs/getopt.c (renamed from fs/smbfs/getopt.c)0
-rw-r--r--drivers/staging/smbfs/getopt.h (renamed from fs/smbfs/getopt.h)0
-rw-r--r--drivers/staging/smbfs/inode.c (renamed from fs/smbfs/inode.c)8
-rw-r--r--drivers/staging/smbfs/ioctl.c (renamed from fs/smbfs/ioctl.c)5
-rw-r--r--drivers/staging/smbfs/proc.c (renamed from fs/smbfs/proc.c)7
-rw-r--r--drivers/staging/smbfs/proto.h (renamed from fs/smbfs/proto.h)0
-rw-r--r--drivers/staging/smbfs/request.c (renamed from fs/smbfs/request.c)7
-rw-r--r--drivers/staging/smbfs/request.h (renamed from fs/smbfs/request.h)0
-rw-r--r--drivers/staging/smbfs/smb.h (renamed from include/linux/smb.h)0
-rw-r--r--drivers/staging/smbfs/smb_debug.h (renamed from fs/smbfs/smb_debug.h)0
-rw-r--r--drivers/staging/smbfs/smb_fs.h (renamed from include/linux/smb_fs.h)8
-rw-r--r--drivers/staging/smbfs/smb_fs_i.h (renamed from include/linux/smb_fs_i.h)0
-rw-r--r--drivers/staging/smbfs/smb_fs_sb.h (renamed from include/linux/smb_fs_sb.h)2
-rw-r--r--drivers/staging/smbfs/smb_mount.h (renamed from include/linux/smb_mount.h)0
-rw-r--r--drivers/staging/smbfs/smbfs.txt (renamed from Documentation/filesystems/smbfs.txt)0
-rw-r--r--drivers/staging/smbfs/smbiod.c (renamed from fs/smbfs/smbiod.c)7
-rw-r--r--drivers/staging/smbfs/smbno.h (renamed from include/linux/smbno.h)0
-rw-r--r--drivers/staging/smbfs/sock.c (renamed from fs/smbfs/sock.c)7
-rw-r--r--drivers/staging/smbfs/symlink.c (renamed from fs/smbfs/symlink.c)5
-rw-r--r--fs/Kconfig1
-rw-r--r--fs/Makefile1
-rw-r--r--fs/compat.c31
-rw-r--r--fs/compat_ioctl.c26
-rw-r--r--include/linux/Kbuild4
34 files changed, 44 insertions, 103 deletions
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 4303614b5ad..8c624a18f67 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -96,8 +96,6 @@ seq_file.txt
- how to use the seq_file API
sharedsubtree.txt
- a description of shared subtrees for namespaces.
-smbfs.txt
- - info on using filesystems with the SMB protocol (Win 3.11 and NT).
spufs.txt
- info and mount options for the SPU filesystem used on Cell.
sysfs-pci.txt
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index 33223ff121d..d15834a6e46 100644
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@ -259,7 +259,7 @@ Code Seq#(hex) Include File Comments
't' 00-7F linux/if_ppp.h
't' 80-8F linux/isdn_ppp.h
't' 90 linux/toshiba.h
-'u' 00-1F linux/smb_fs.h
+'u' 00-1F linux/smb_fs.h gone
'v' all linux/videodev.h conflict!
'v' 00-1F linux/ext2_fs.h conflict!
'v' 00-1F linux/fs.h conflict!
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 01503536e45..4a9190808b7 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -149,6 +149,8 @@ source "drivers/staging/msm/Kconfig"
source "drivers/staging/lirc/Kconfig"
+source "drivers/staging/smbfs/Kconfig"
+
source "drivers/staging/easycap/Kconfig"
source "drivers/staging/solo6x10/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index de5c0e5a99e..7cb02a8e9f7 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -32,6 +32,7 @@ obj-$(CONFIG_AUTOFS_FS) += autofs/
obj-$(CONFIG_IDE_PHISON) += phison/
obj-$(CONFIG_LINE6_USB) += line6/
obj-$(CONFIG_USB_SERIAL_QUATECH2) += serqt_usb2/
+obj-$(CONFIG_SMB_FS) += smbfs/
obj-$(CONFIG_USB_SERIAL_QUATECH_USB2) += quatech_usb2/
obj-$(CONFIG_OCTEON_ETHERNET) += octeon/
obj-$(CONFIG_VT6655) += vt6655/
diff --git a/fs/smbfs/Kconfig b/drivers/staging/smbfs/Kconfig
index e668127c8b2..e668127c8b2 100644
--- a/fs/smbfs/Kconfig
+++ b/drivers/staging/smbfs/Kconfig
diff --git a/fs/smbfs/Makefile b/drivers/staging/smbfs/Makefile
index 4faf8c4722c..4faf8c4722c 100644
--- a/fs/smbfs/Makefile
+++ b/drivers/staging/smbfs/Makefile
diff --git a/drivers/staging/smbfs/TODO b/drivers/staging/smbfs/TODO
new file mode 100644
index 00000000000..24f4d29d53a
--- /dev/null
+++ b/drivers/staging/smbfs/TODO
@@ -0,0 +1,8 @@
+smbfs is on its way out of the kernel, it has been replaced
+by cifs several years ago.
+
+The smbfs code uses the big kernel lock which
+is getting deprecated.
+
+Users that find smbfs to work but not cifs should contact
+the CIFS developers on linux-cifs@vger.kernel.org.
diff --git a/fs/smbfs/cache.c b/drivers/staging/smbfs/cache.c
index 8c177eb7e34..dbb98658148 100644
--- a/fs/smbfs/cache.c
+++ b/drivers/staging/smbfs/cache.c
@@ -13,12 +13,12 @@
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mm.h>
-#include <linux/smb_fs.h>
#include <linux/pagemap.h>
#include <linux/net.h>
#include <asm/page.h>
+#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"
diff --git a/fs/smbfs/dir.c b/drivers/staging/smbfs/dir.c
index 00a70cab1f3..936b3bb2099 100644
--- a/fs/smbfs/dir.c
+++ b/drivers/staging/smbfs/dir.c
@@ -15,9 +15,9 @@
#include <linux/net.h>
#include <linux/sched.h>
-#include <linux/smb_fs.h>
-#include <linux/smb_mount.h>
-#include <linux/smbno.h>
+#include "smb_fs.h"
+#include "smb_mount.h"
+#include "smbno.h"
#include "smb_debug.h"
#include "proto.h"
diff --git a/fs/smbfs/file.c b/drivers/staging/smbfs/file.c
index 8e187a0f94b..5dcd19c60eb 100644
--- a/fs/smbfs/file.c
+++ b/drivers/staging/smbfs/file.c
@@ -21,9 +21,8 @@
#include <asm/uaccess.h>
#include <asm/system.h>
-#include <linux/smbno.h>
-#include <linux/smb_fs.h>
-
+#include "smbno.h"
+#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"
diff --git a/fs/smbfs/getopt.c b/drivers/staging/smbfs/getopt.c
index 7ae0f5273ab..7ae0f5273ab 100644
--- a/fs/smbfs/getopt.c
+++ b/drivers/staging/smbfs/getopt.c
diff --git a/fs/smbfs/getopt.h b/drivers/staging/smbfs/getopt.h
index 146219ac7c4..146219ac7c4 100644
--- a/fs/smbfs/getopt.h
+++ b/drivers/staging/smbfs/getopt.h
diff --git a/fs/smbfs/inode.c b/drivers/staging/smbfs/inode.c
index 450c9194198..9287599ddb5 100644
--- a/fs/smbfs/inode.c
+++ b/drivers/staging/smbfs/inode.c
@@ -26,13 +26,13 @@
#include <linux/vfs.h>
#include <linux/highuid.h>
#include <linux/sched.h>
-#include <linux/smb_fs.h>
-#include <linux/smbno.h>
-#include <linux/smb_mount.h>
#include <asm/system.h>
#include <asm/uaccess.h>
+#include "smb_fs.h"
+#include "smbno.h"
+#include "smb_mount.h"
#include "smb_debug.h"
#include "getopt.h"
#include "proto.h"
@@ -504,7 +504,7 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
if (warn_count < 5) {
warn_count++;
printk(KERN_EMERG "smbfs is deprecated and will be removed"
- " from the 2.6.27 kernel. Please migrate to cifs\n");
+ " from the 2.6.37 kernel. Please migrate to cifs\n");
}
if (!raw_data)
diff --git a/fs/smbfs/ioctl.c b/drivers/staging/smbfs/ioctl.c
index 07215312ad3..2da16926747 100644
--- a/fs/smbfs/ioctl.c
+++ b/drivers/staging/smbfs/ioctl.c
@@ -16,11 +16,10 @@
#include <linux/smp_lock.h>
#include <linux/net.h>
-#include <linux/smb_fs.h>
-#include <linux/smb_mount.h>
-
#include <asm/uaccess.h>
+#include "smb_fs.h"
+#include "smb_mount.h"
#include "proto.h"
long
diff --git a/fs/smbfs/proc.c b/drivers/staging/smbfs/proc.c
index 71c29b6670b..2fb079c37f2 100644
--- a/fs/smbfs/proc.c
+++ b/drivers/staging/smbfs/proc.c
@@ -20,15 +20,14 @@
#include <linux/smp_lock.h>
#include <linux/net.h>
#include <linux/vfs.h>
-#include <linux/smb_fs.h>
-#include <linux/smbno.h>
-#include <linux/smb_mount.h>
-
#include <net/sock.h>
#include <asm/string.h>
#include <asm/div64.h>
+#include "smb_fs.h"
+#include "smbno.h"
+#include "smb_mount.h"
#include "smb_debug.h"
#include "proto.h"
#include "request.h"
diff --git a/fs/smbfs/proto.h b/drivers/staging/smbfs/proto.h
index 05939a6f43e..05939a6f43e 100644
--- a/fs/smbfs/proto.h
+++ b/drivers/staging/smbfs/proto.h
diff --git a/fs/smbfs/request.c b/drivers/staging/smbfs/request.c
index 45f45933e86..3e771686430 100644
--- a/fs/smbfs/request.c
+++ b/drivers/staging/smbfs/request.c
@@ -13,10 +13,9 @@
#include <linux/net.h>
#include <linux/sched.h>
-#include <linux/smb_fs.h>
-#include <linux/smbno.h>
-#include <linux/smb_mount.h>
-
+#include "smb_fs.h"
+#include "smbno.h"
+#include "smb_mount.h"
#include "smb_debug.h"
#include "request.h"
#include "proto.h"
diff --git a/fs/smbfs/request.h b/drivers/staging/smbfs/request.h
index efb21451e7c..efb21451e7c 100644
--- a/fs/smbfs/request.h
+++ b/drivers/staging/smbfs/request.h
diff --git a/include/linux/smb.h b/drivers/staging/smbfs/smb.h
index 82fefddc598..82fefddc598 100644
--- a/include/linux/smb.h
+++ b/drivers/staging/smbfs/smb.h
diff --git a/fs/smbfs/smb_debug.h b/drivers/staging/smbfs/smb_debug.h
index fc4b1a5dd75..fc4b1a5dd75 100644
--- a/fs/smbfs/smb_debug.h
+++ b/drivers/staging/smbfs/smb_debug.h
diff --git a/include/linux/smb_fs.h b/drivers/staging/smbfs/smb_fs.h
index 923cd8a247b..20a05c188eb 100644
--- a/include/linux/smb_fs.h
+++ b/drivers/staging/smbfs/smb_fs.h
@@ -9,7 +9,7 @@
#ifndef _LINUX_SMB_FS_H
#define _LINUX_SMB_FS_H
-#include <linux/smb.h>
+#include "smb.h"
/*
* ioctl commands
@@ -22,13 +22,13 @@
#ifdef __KERNEL__
-#include <linux/smb_fs_i.h>
-#include <linux/smb_fs_sb.h>
+#include "smb_fs_i.h"
+#include "smb_fs_sb.h"
+#include "smb_mount.h"
#include <linux/fs.h>
#include <linux/pagemap.h>
#include <linux/vmalloc.h>
-#include <linux/smb_mount.h>
#include <linux/jiffies.h>
#include <asm/unaligned.h>
diff --git a/include/linux/smb_fs_i.h b/drivers/staging/smbfs/smb_fs_i.h
index 8ccf4eca2c3..8ccf4eca2c3 100644
--- a/include/linux/smb_fs_i.h
+++ b/drivers/staging/smbfs/smb_fs_i.h
diff --git a/include/linux/smb_fs_sb.h b/drivers/staging/smbfs/smb_fs_sb.h
index bb947dd1fba..ca058afda90 100644
--- a/include/linux/smb_fs_sb.h
+++ b/drivers/staging/smbfs/smb_fs_sb.h
@@ -11,7 +11,7 @@
#include <linux/types.h>
#include <linux/backing-dev.h>
-#include <linux/smb.h>
+#include "smb.h"
/*
* Upper limit on the total number of active smb_request structs.
diff --git a/include/linux/smb_mount.h b/drivers/staging/smbfs/smb_mount.h
index d10f00cb570..d10f00cb570 100644
--- a/include/linux/smb_mount.h
+++ b/drivers/staging/smbfs/smb_mount.h
diff --git a/Documentation/filesystems/smbfs.txt b/drivers/staging/smbfs/smbfs.txt
index 194fb0decd2..194fb0decd2 100644
--- a/Documentation/filesystems/smbfs.txt
+++ b/drivers/staging/smbfs/smbfs.txt
diff --git a/fs/smbfs/smbiod.c b/drivers/staging/smbfs/smbiod.c
index 0e39a924f10..ec998920f8d 100644
--- a/fs/smbfs/smbiod.c
+++ b/drivers/staging/smbfs/smbiod.c
@@ -20,13 +20,12 @@
#include <linux/kthread.h>
#include <net/ip.h>
-#include <linux/smb_fs.h>
-#include <linux/smbno.h>
-#include <linux/smb_mount.h>
-
#include <asm/system.h>
#include <asm/uaccess.h>
+#include "smb_fs.h"
+#include "smbno.h"
+#include "smb_mount.h"
#include "smb_debug.h"
#include "request.h"
#include "proto.h"
diff --git a/include/linux/smbno.h b/drivers/staging/smbfs/smbno.h
index f99e02d9ffe..f99e02d9ffe 100644
--- a/include/linux/smbno.h
+++ b/drivers/staging/smbfs/smbno.h
diff --git a/fs/smbfs/sock.c b/drivers/staging/smbfs/sock.c
index e37fe4deebd..9e264090e61 100644
--- a/fs/smbfs/sock.c
+++ b/drivers/staging/smbfs/sock.c
@@ -22,13 +22,12 @@
#include <net/tcp_states.h>
#include <net/ip.h>
-#include <linux/smb_fs.h>
-#include <linux/smb.h>
-#include <linux/smbno.h>
-
#include <asm/uaccess.h>
#include <asm/ioctls.h>
+#include "smb_fs.h"
+#include "smb.h"
+#include "smbno.h"
#include "smb_debug.h"
#include "proto.h"
#include "request.h"
diff --git a/fs/smbfs/symlink.c b/drivers/staging/smbfs/symlink.c
index 00b2909bd46..632c4acd062 100644
--- a/fs/smbfs/symlink.c
+++ b/drivers/staging/smbfs/symlink.c
@@ -19,9 +19,8 @@
#include <asm/uaccess.h>
#include <asm/system.h>
-#include <linux/smbno.h>
-#include <linux/smb_fs.h>
-
+#include "smbno.h"
+#include "smb_fs.h"
#include "smb_debug.h"
#include "proto.h"
diff --git a/fs/Kconfig b/fs/Kconfig
index 30da8ee16a9..25ce2dc1c6d 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -233,7 +233,6 @@ config NFS_COMMON
default y
source "net/sunrpc/Kconfig"
-source "fs/smbfs/Kconfig"
source "fs/ceph/Kconfig"
source "fs/cifs/Kconfig"
source "fs/ncpfs/Kconfig"
diff --git a/fs/Makefile b/fs/Makefile
index e571feddd7b..9284c74c2db 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -91,7 +91,6 @@ obj-$(CONFIG_NFSD) += nfsd/
obj-$(CONFIG_LOCKD) += lockd/
obj-$(CONFIG_NLS) += nls/
obj-$(CONFIG_SYSV_FS) += sysv/
-obj-$(CONFIG_SMB_FS) += smbfs/
obj-$(CONFIG_CIFS) += cifs/
obj-$(CONFIG_NCP_FS) += ncpfs/
obj-$(CONFIG_HPFS_FS) += hpfs/
diff --git a/fs/compat.c b/fs/compat.c
index 718c7062aec..b42f29a44ed 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -29,8 +29,6 @@
#include <linux/vfs.h>
#include <linux/ioctl.h>
#include <linux/init.h>
-#include <linux/smb.h>
-#include <linux/smb_mount.h>
#include <linux/ncp_mount.h>
#include <linux/nfs4_mount.h>
#include <linux/syscalls.h>
@@ -745,30 +743,6 @@ static void *do_ncp_super_data_conv(void *raw_data)
return raw_data;
}
-struct compat_smb_mount_data {
- compat_int_t version;
- __compat_uid_t mounted_uid;
- __compat_uid_t uid;
- __compat_gid_t gid;
- compat_mode_t file_mode;
- compat_mode_t dir_mode;
-};
-
-static void *do_smb_super_data_conv(void *raw_data)
-{
- struct smb_mount_data *s = raw_data;
- struct compat_smb_mount_data *c_s = raw_data;
-
- if (c_s->version != SMB_MOUNT_OLDVERSION)
- goto out;
- s->dir_mode = c_s->dir_mode;
- s->file_mode = c_s->file_mode;
- s->gid = c_s->gid;
- s->uid = c_s->uid;
- s->mounted_uid = c_s->mounted_uid;
- out:
- return raw_data;
-}
struct compat_nfs_string {
compat_uint_t len;
@@ -835,7 +809,6 @@ static int do_nfs4_super_data_conv(void *raw_data)
return 0;
}
-#define SMBFS_NAME "smbfs"
#define NCPFS_NAME "ncpfs"
#define NFS4_NAME "nfs4"
@@ -870,9 +843,7 @@ asmlinkage long compat_sys_mount(const char __user * dev_name,
retval = -EINVAL;
if (kernel_type && data_page) {
- if (!strcmp(kernel_type, SMBFS_NAME)) {
- do_smb_super_data_conv((void *)data_page);
- } else if (!strcmp(kernel_type, NCPFS_NAME)) {
+ if (!strcmp(kernel_type, NCPFS_NAME)) {
do_ncp_super_data_conv((void *)data_page);
} else if (!strcmp(kernel_type, NFS4_NAME)) {
if (do_nfs4_super_data_conv((void *) data_page))
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index 03e59aa318e..34cf03cd791 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -46,7 +46,6 @@
#include <linux/videodev.h>
#include <linux/netdevice.h>
#include <linux/raw.h>
-#include <linux/smb_fs.h>
#include <linux/blkdev.h>
#include <linux/elevator.h>
#include <linux/rtc.h>
@@ -558,25 +557,6 @@ static int mt_ioctl_trans(unsigned int fd, unsigned int cmd, void __user *argp)
#endif /* CONFIG_BLOCK */
-static int do_smb_getmountuid(unsigned int fd, unsigned int cmd,
- compat_uid_t __user *argp)
-{
- mm_segment_t old_fs = get_fs();
- __kernel_uid_t kuid;
- int err;
-
- cmd = SMB_IOC_GETMOUNTUID;
-
- set_fs(KERNEL_DS);
- err = sys_ioctl(fd, cmd, (unsigned long)&kuid);
- set_fs(old_fs);
-
- if (err >= 0)
- err = put_user(kuid, argp);
-
- return err;
-}
-
/* Bluetooth ioctls */
#define HCIUARTSETPROTO _IOW('U', 200, int)
#define HCIUARTGETPROTO _IOR('U', 201, int)
@@ -1265,8 +1245,6 @@ COMPATIBLE_IOCTL(OSS_GETVERSION)
/* Raw devices */
COMPATIBLE_IOCTL(RAW_SETBIND)
COMPATIBLE_IOCTL(RAW_GETBIND)
-/* SMB ioctls which do not need any translations */
-COMPATIBLE_IOCTL(SMB_IOC_NEWCONN)
/* Watchdog */
COMPATIBLE_IOCTL(WDIOC_GETSUPPORT)
COMPATIBLE_IOCTL(WDIOC_GETSTATUS)
@@ -1528,10 +1506,6 @@ static long do_ioctl_trans(int fd, unsigned int cmd,
case RAW_GETBIND:
return raw_ioctl(fd, cmd, argp);
#endif
- /* One SMB ioctl needs translations. */
-#define SMB_IOC_GETMOUNTUID_32 _IOR('u', 1, compat_uid_t)
- case SMB_IOC_GETMOUNTUID_32:
- return do_smb_getmountuid(fd, cmd, argp);
/* Serial */
case TIOCGSERIAL:
case TIOCSSERIAL:
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 626b629429f..98d520d371e 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -326,10 +326,6 @@ header-y += serio.h
header-y += shm.h
header-y += signal.h
header-y += signalfd.h
-header-y += smb.h
-header-y += smb_fs.h
-header-y += smb_mount.h
-header-y += smbno.h
header-y += snmp.h
header-y += socket.h
header-y += sockios.h