xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/ncp_fs.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  *  ncp_fs.h
3*53ee8cc1Swenshuai.xi  *
4*53ee8cc1Swenshuai.xi  *  Copyright (C) 1995, 1996 by Volker Lendecke
5*53ee8cc1Swenshuai.xi  *
6*53ee8cc1Swenshuai.xi  */
7*53ee8cc1Swenshuai.xi 
8*53ee8cc1Swenshuai.xi #ifndef _LINUX_NCP_FS_H
9*53ee8cc1Swenshuai.xi #define _LINUX_NCP_FS_H
10*53ee8cc1Swenshuai.xi 
11*53ee8cc1Swenshuai.xi #include <linux/fs.h>
12*53ee8cc1Swenshuai.xi #include <linux/in.h>
13*53ee8cc1Swenshuai.xi #include <linux/types.h>
14*53ee8cc1Swenshuai.xi #include <linux/magic.h>
15*53ee8cc1Swenshuai.xi 
16*53ee8cc1Swenshuai.xi #include <linux/ipx.h>
17*53ee8cc1Swenshuai.xi #include <linux/ncp_no.h>
18*53ee8cc1Swenshuai.xi 
19*53ee8cc1Swenshuai.xi /*
20*53ee8cc1Swenshuai.xi  * ioctl commands
21*53ee8cc1Swenshuai.xi  */
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi struct ncp_ioctl_request {
24*53ee8cc1Swenshuai.xi 	unsigned int function;
25*53ee8cc1Swenshuai.xi 	unsigned int size;
26*53ee8cc1Swenshuai.xi 	char *data;
27*53ee8cc1Swenshuai.xi };
28*53ee8cc1Swenshuai.xi 
29*53ee8cc1Swenshuai.xi struct ncp_fs_info {
30*53ee8cc1Swenshuai.xi 	int version;
31*53ee8cc1Swenshuai.xi 	struct sockaddr_ipx addr;
32*53ee8cc1Swenshuai.xi 	__kernel_uid_t mounted_uid;
33*53ee8cc1Swenshuai.xi 	int connection;		/* Connection number the server assigned us */
34*53ee8cc1Swenshuai.xi 	int buffer_size;	/* The negotiated buffer size, to be
35*53ee8cc1Swenshuai.xi 				   used for read/write requests! */
36*53ee8cc1Swenshuai.xi 
37*53ee8cc1Swenshuai.xi 	int volume_number;
38*53ee8cc1Swenshuai.xi 	__le32 directory_id;
39*53ee8cc1Swenshuai.xi };
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi struct ncp_fs_info_v2 {
42*53ee8cc1Swenshuai.xi 	int version;
43*53ee8cc1Swenshuai.xi 	unsigned long mounted_uid;
44*53ee8cc1Swenshuai.xi 	unsigned int connection;
45*53ee8cc1Swenshuai.xi 	unsigned int buffer_size;
46*53ee8cc1Swenshuai.xi 
47*53ee8cc1Swenshuai.xi 	unsigned int volume_number;
48*53ee8cc1Swenshuai.xi 	__le32 directory_id;
49*53ee8cc1Swenshuai.xi 
50*53ee8cc1Swenshuai.xi 	__u32 dummy1;
51*53ee8cc1Swenshuai.xi 	__u32 dummy2;
52*53ee8cc1Swenshuai.xi 	__u32 dummy3;
53*53ee8cc1Swenshuai.xi };
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi struct ncp_sign_init
56*53ee8cc1Swenshuai.xi {
57*53ee8cc1Swenshuai.xi 	char sign_root[8];
58*53ee8cc1Swenshuai.xi 	char sign_last[16];
59*53ee8cc1Swenshuai.xi };
60*53ee8cc1Swenshuai.xi 
61*53ee8cc1Swenshuai.xi struct ncp_lock_ioctl
62*53ee8cc1Swenshuai.xi {
63*53ee8cc1Swenshuai.xi #define NCP_LOCK_LOG	0
64*53ee8cc1Swenshuai.xi #define NCP_LOCK_SH	1
65*53ee8cc1Swenshuai.xi #define NCP_LOCK_EX	2
66*53ee8cc1Swenshuai.xi #define NCP_LOCK_CLEAR	256
67*53ee8cc1Swenshuai.xi 	int		cmd;
68*53ee8cc1Swenshuai.xi 	int		origin;
69*53ee8cc1Swenshuai.xi 	unsigned int	offset;
70*53ee8cc1Swenshuai.xi 	unsigned int	length;
71*53ee8cc1Swenshuai.xi #define NCP_LOCK_DEFAULT_TIMEOUT	18
72*53ee8cc1Swenshuai.xi #define NCP_LOCK_MAX_TIMEOUT		180
73*53ee8cc1Swenshuai.xi 	int		timeout;
74*53ee8cc1Swenshuai.xi };
75*53ee8cc1Swenshuai.xi 
76*53ee8cc1Swenshuai.xi struct ncp_setroot_ioctl
77*53ee8cc1Swenshuai.xi {
78*53ee8cc1Swenshuai.xi 	int		volNumber;
79*53ee8cc1Swenshuai.xi 	int		namespace;
80*53ee8cc1Swenshuai.xi 	__le32		dirEntNum;
81*53ee8cc1Swenshuai.xi };
82*53ee8cc1Swenshuai.xi 
83*53ee8cc1Swenshuai.xi struct ncp_objectname_ioctl
84*53ee8cc1Swenshuai.xi {
85*53ee8cc1Swenshuai.xi #define NCP_AUTH_NONE	0x00
86*53ee8cc1Swenshuai.xi #define NCP_AUTH_BIND	0x31
87*53ee8cc1Swenshuai.xi #define NCP_AUTH_NDS	0x32
88*53ee8cc1Swenshuai.xi 	int		auth_type;
89*53ee8cc1Swenshuai.xi 	size_t		object_name_len;
90*53ee8cc1Swenshuai.xi 	void *	object_name;	/* an userspace data, in most cases user name */
91*53ee8cc1Swenshuai.xi };
92*53ee8cc1Swenshuai.xi 
93*53ee8cc1Swenshuai.xi struct ncp_privatedata_ioctl
94*53ee8cc1Swenshuai.xi {
95*53ee8cc1Swenshuai.xi 	size_t		len;
96*53ee8cc1Swenshuai.xi 	void *	data;		/* ~1000 for NDS */
97*53ee8cc1Swenshuai.xi };
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi /* NLS charsets by ioctl */
100*53ee8cc1Swenshuai.xi #define NCP_IOCSNAME_LEN 20
101*53ee8cc1Swenshuai.xi struct ncp_nls_ioctl
102*53ee8cc1Swenshuai.xi {
103*53ee8cc1Swenshuai.xi 	unsigned char codepage[NCP_IOCSNAME_LEN+1];
104*53ee8cc1Swenshuai.xi 	unsigned char iocharset[NCP_IOCSNAME_LEN+1];
105*53ee8cc1Swenshuai.xi };
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi #define	NCP_IOC_NCPREQUEST		_IOR('n', 1, struct ncp_ioctl_request)
108*53ee8cc1Swenshuai.xi #define	NCP_IOC_GETMOUNTUID		_IOW('n', 2, __kernel_old_uid_t)
109*53ee8cc1Swenshuai.xi #define NCP_IOC_GETMOUNTUID2		_IOW('n', 2, unsigned long)
110*53ee8cc1Swenshuai.xi 
111*53ee8cc1Swenshuai.xi #define NCP_IOC_CONN_LOGGED_IN          _IO('n', 3)
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi #define NCP_GET_FS_INFO_VERSION    (1)
114*53ee8cc1Swenshuai.xi #define NCP_IOC_GET_FS_INFO             _IOWR('n', 4, struct ncp_fs_info)
115*53ee8cc1Swenshuai.xi #define NCP_GET_FS_INFO_VERSION_V2 (2)
116*53ee8cc1Swenshuai.xi #define NCP_IOC_GET_FS_INFO_V2		_IOWR('n', 4, struct ncp_fs_info_v2)
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi #define NCP_IOC_SIGN_INIT		_IOR('n', 5, struct ncp_sign_init)
119*53ee8cc1Swenshuai.xi #define NCP_IOC_SIGN_WANTED		_IOR('n', 6, int)
120*53ee8cc1Swenshuai.xi #define NCP_IOC_SET_SIGN_WANTED		_IOW('n', 6, int)
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi #define NCP_IOC_LOCKUNLOCK		_IOR('n', 7, struct ncp_lock_ioctl)
123*53ee8cc1Swenshuai.xi 
124*53ee8cc1Swenshuai.xi #define NCP_IOC_GETROOT			_IOW('n', 8, struct ncp_setroot_ioctl)
125*53ee8cc1Swenshuai.xi #define NCP_IOC_SETROOT			_IOR('n', 8, struct ncp_setroot_ioctl)
126*53ee8cc1Swenshuai.xi 
127*53ee8cc1Swenshuai.xi #define NCP_IOC_GETOBJECTNAME		_IOWR('n', 9, struct ncp_objectname_ioctl)
128*53ee8cc1Swenshuai.xi #define NCP_IOC_SETOBJECTNAME		_IOR('n', 9, struct ncp_objectname_ioctl)
129*53ee8cc1Swenshuai.xi #define NCP_IOC_GETPRIVATEDATA		_IOWR('n', 10, struct ncp_privatedata_ioctl)
130*53ee8cc1Swenshuai.xi #define NCP_IOC_SETPRIVATEDATA		_IOR('n', 10, struct ncp_privatedata_ioctl)
131*53ee8cc1Swenshuai.xi 
132*53ee8cc1Swenshuai.xi #define NCP_IOC_GETCHARSETS		_IOWR('n', 11, struct ncp_nls_ioctl)
133*53ee8cc1Swenshuai.xi #define NCP_IOC_SETCHARSETS		_IOR('n', 11, struct ncp_nls_ioctl)
134*53ee8cc1Swenshuai.xi 
135*53ee8cc1Swenshuai.xi #define NCP_IOC_GETDENTRYTTL		_IOW('n', 12, __u32)
136*53ee8cc1Swenshuai.xi #define NCP_IOC_SETDENTRYTTL		_IOR('n', 12, __u32)
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi /*
139*53ee8cc1Swenshuai.xi  * The packet size to allocate. One page should be enough.
140*53ee8cc1Swenshuai.xi  */
141*53ee8cc1Swenshuai.xi #define NCP_PACKET_SIZE 4070
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi #define NCP_MAXPATHLEN 255
144*53ee8cc1Swenshuai.xi #define NCP_MAXNAMELEN 14
145*53ee8cc1Swenshuai.xi 
146*53ee8cc1Swenshuai.xi 
147*53ee8cc1Swenshuai.xi #endif				/* _LINUX_NCP_FS_H */
148