1 /*
2  *  ncp_mount.h
3  *
4  *  Copyright (C) 1995, 1996 by Volker Lendecke
5  *
6  */
7 
8 #ifndef _LINUX_NCP_MOUNT_H
9 #define _LINUX_NCP_MOUNT_H
10 
11 #include <linux/types.h>
12 #include <linux/ncp.h>
13 
14 #define NCP_MOUNT_VERSION 3
15 
16 /* Values for flags */
17 #define NCP_MOUNT_SOFT		0x0001
18 #define NCP_MOUNT_INTR		0x0002
19 #define NCP_MOUNT_STRONG	0x0004	/* enable delete/rename of r/o files */
20 #define NCP_MOUNT_NO_OS2	0x0008	/* do not use OS/2 (LONG) namespace */
21 #define NCP_MOUNT_NO_NFS	0x0010	/* do not use NFS namespace */
22 #define NCP_MOUNT_EXTRAS	0x0020
23 #define NCP_MOUNT_SYMLINKS	0x0040	/* enable symlinks */
24 
25 struct ncp_mount_data {
26 	int version;
27 	unsigned int ncp_fd;	/* The socket to the ncp port */
28 	__kernel_uid_t mounted_uid;	/* Who may umount() this filesystem? */
29 	__kernel_pid_t wdog_pid;		/* Who cares for our watchdog packets? */
30 
31 	unsigned char mounted_vol[NCP_VOLNAME_LEN + 1];
32 	unsigned int time_out;	/* How long should I wait after
33 				   sending a NCP request? */
34 	unsigned int retry_count;	/* And how often should I retry? */
35 	unsigned int flags;
36 
37 	__kernel_uid_t uid;
38 	__kernel_gid_t gid;
39 	__kernel_mode_t file_mode;
40 	__kernel_mode_t dir_mode;
41 };
42 
43 #define NCP_MOUNT_VERSION_V4	(4)
44 
45 struct ncp_mount_data_v4 {
46 	int version;
47 	unsigned long flags;	/* NCP_MOUNT_* flags */
48 	/* MIPS uses long __kernel_uid_t, but... */
49 	/* we neever pass -1, so it is safe */
50 	unsigned long mounted_uid;	/* Who may umount() this filesystem? */
51 	/* MIPS uses long __kernel_pid_t */
52 	long wdog_pid;		/* Who cares for our watchdog packets? */
53 
54 	unsigned int ncp_fd;	/* The socket to the ncp port */
55 	unsigned int time_out;	/* How long should I wait after
56 				   sending a NCP request? */
57 	unsigned int retry_count;	/* And how often should I retry? */
58 
59 	/* MIPS uses long __kernel_uid_t... */
60 	/* we never pass -1, so it is safe */
61 	unsigned long uid;
62 	unsigned long gid;
63 	/* MIPS uses unsigned long __kernel_mode_t */
64 	unsigned long file_mode;
65 	unsigned long dir_mode;
66 };
67 
68 #ifdef __KERNEL__
69 
70 struct ncp_mount_data_kernel {
71 	unsigned long    flags;		/* NCP_MOUNT_* flags */
72 	unsigned int	 int_flags;	/* internal flags */
73 #define NCP_IMOUNT_LOGGEDIN_POSSIBLE	0x0001
74 	__kernel_uid32_t mounted_uid;	/* Who may umount() this filesystem? */
75 	__kernel_pid_t   wdog_pid;		/* Who cares for our watchdog packets? */
76 	unsigned int     ncp_fd;	/* The socket to the ncp port */
77 	unsigned int     time_out;	/* How long should I wait after
78 					   sending a NCP request? */
79 	unsigned int     retry_count;	/* And how often should I retry? */
80 	unsigned char	 mounted_vol[NCP_VOLNAME_LEN + 1];
81 	__kernel_uid32_t uid;
82 	__kernel_gid32_t gid;
83 	__kernel_mode_t  file_mode;
84 	__kernel_mode_t  dir_mode;
85 };
86 
87 #endif /* __KERNEL__ */
88 
89 #endif
90