nfsd: don't fail unchecked creates of non-special files
[zen-stable.git] / include / linux / ncp_fs.h
blobe13eefef06534d64500b2c2f4733c9e1ce6943af
1 /*
2 * ncp_fs.h
4 * Copyright (C) 1995, 1996 by Volker Lendecke
6 */
8 #ifndef _LINUX_NCP_FS_H
9 #define _LINUX_NCP_FS_H
11 #include <linux/fs.h>
12 #include <linux/in.h>
13 #include <linux/types.h>
14 #include <linux/magic.h>
16 #include <linux/ipx.h>
17 #include <linux/ncp_no.h>
20 * ioctl commands
23 struct ncp_ioctl_request {
24 unsigned int function;
25 unsigned int size;
26 char __user *data;
29 struct ncp_fs_info {
30 int version;
31 struct sockaddr_ipx addr;
32 __kernel_uid_t mounted_uid;
33 int connection; /* Connection number the server assigned us */
34 int buffer_size; /* The negotiated buffer size, to be
35 used for read/write requests! */
37 int volume_number;
38 __le32 directory_id;
41 struct ncp_fs_info_v2 {
42 int version;
43 unsigned long mounted_uid;
44 unsigned int connection;
45 unsigned int buffer_size;
47 unsigned int volume_number;
48 __le32 directory_id;
50 __u32 dummy1;
51 __u32 dummy2;
52 __u32 dummy3;
55 struct ncp_sign_init
57 char sign_root[8];
58 char sign_last[16];
61 struct ncp_lock_ioctl
63 #define NCP_LOCK_LOG 0
64 #define NCP_LOCK_SH 1
65 #define NCP_LOCK_EX 2
66 #define NCP_LOCK_CLEAR 256
67 int cmd;
68 int origin;
69 unsigned int offset;
70 unsigned int length;
71 #define NCP_LOCK_DEFAULT_TIMEOUT 18
72 #define NCP_LOCK_MAX_TIMEOUT 180
73 int timeout;
76 struct ncp_setroot_ioctl
78 int volNumber;
79 int namespace;
80 __le32 dirEntNum;
83 struct ncp_objectname_ioctl
85 #define NCP_AUTH_NONE 0x00
86 #define NCP_AUTH_BIND 0x31
87 #define NCP_AUTH_NDS 0x32
88 int auth_type;
89 size_t object_name_len;
90 void __user * object_name; /* a userspace data, in most cases user name */
93 struct ncp_privatedata_ioctl
95 size_t len;
96 void __user * data; /* ~1000 for NDS */
99 /* NLS charsets by ioctl */
100 #define NCP_IOCSNAME_LEN 20
101 struct ncp_nls_ioctl
103 unsigned char codepage[NCP_IOCSNAME_LEN+1];
104 unsigned char iocharset[NCP_IOCSNAME_LEN+1];
107 #define NCP_IOC_NCPREQUEST _IOR('n', 1, struct ncp_ioctl_request)
108 #define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t)
109 #define NCP_IOC_GETMOUNTUID2 _IOW('n', 2, unsigned long)
111 #define NCP_IOC_CONN_LOGGED_IN _IO('n', 3)
113 #define NCP_GET_FS_INFO_VERSION (1)
114 #define NCP_IOC_GET_FS_INFO _IOWR('n', 4, struct ncp_fs_info)
115 #define NCP_GET_FS_INFO_VERSION_V2 (2)
116 #define NCP_IOC_GET_FS_INFO_V2 _IOWR('n', 4, struct ncp_fs_info_v2)
118 #define NCP_IOC_SIGN_INIT _IOR('n', 5, struct ncp_sign_init)
119 #define NCP_IOC_SIGN_WANTED _IOR('n', 6, int)
120 #define NCP_IOC_SET_SIGN_WANTED _IOW('n', 6, int)
122 #define NCP_IOC_LOCKUNLOCK _IOR('n', 7, struct ncp_lock_ioctl)
124 #define NCP_IOC_GETROOT _IOW('n', 8, struct ncp_setroot_ioctl)
125 #define NCP_IOC_SETROOT _IOR('n', 8, struct ncp_setroot_ioctl)
127 #define NCP_IOC_GETOBJECTNAME _IOWR('n', 9, struct ncp_objectname_ioctl)
128 #define NCP_IOC_SETOBJECTNAME _IOR('n', 9, struct ncp_objectname_ioctl)
129 #define NCP_IOC_GETPRIVATEDATA _IOWR('n', 10, struct ncp_privatedata_ioctl)
130 #define NCP_IOC_SETPRIVATEDATA _IOR('n', 10, struct ncp_privatedata_ioctl)
132 #define NCP_IOC_GETCHARSETS _IOWR('n', 11, struct ncp_nls_ioctl)
133 #define NCP_IOC_SETCHARSETS _IOR('n', 11, struct ncp_nls_ioctl)
135 #define NCP_IOC_GETDENTRYTTL _IOW('n', 12, __u32)
136 #define NCP_IOC_SETDENTRYTTL _IOR('n', 12, __u32)
139 * The packet size to allocate. One page should be enough.
141 #define NCP_PACKET_SIZE 4070
143 #define NCP_MAXPATHLEN 255
144 #define NCP_MAXNAMELEN 14
146 #endif /* _LINUX_NCP_FS_H */