[USBOHCI_NEW][USBUHCI_NEW] Avoid unnecessary/incorrect status defines.
[reactos.git] / drivers / filesystems / nfs / nfs41_driver.h
1 /* NFSv4.1 client for Windows
2 * Copyright © 2012 The Regents of the University of Michigan
3 *
4 * Olga Kornievskaia <aglo@umich.edu>
5 * Casey Bodley <cbodley@umich.edu>
6 *
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or (at
10 * your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful, but
13 * without any warranty; without even the implied warranty of merchantability
14 * or fitness for a particular purpose. See the GNU Lesser General Public
15 * License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this library; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 */
21
22 #ifndef _NFS41_DRIVER_
23 #define _NFS41_DRIVER_
24
25 #define NFS41_DEVICE_NAME L"\\Device\\nfs41_driver"
26 #define NFS41_SHADOW_DEVICE_NAME L"\\??\\nfs41_driver"
27 #define NFS41_USER_DEVICE_NAME L"\\\\.\\nfs41_driver"
28 #define NFS41_USER_DEVICE_NAME_A "\\\\.\\nfs41_driver"
29 #define NFS41_PROVIDER_NAME_A "NFS41 Network"
30 #define NFS41_PROVIDER_NAME_U L"NFS41 Network"
31
32 #define NFS41_PIPE_NAME L"\\Device\\nfs41_pipe"
33 #define NFS41_SHADOW_PIPE_NAME L"\\??\\nfs41_pipe"
34 #define NFS41_USER_PIPE_NAME L"\\\\.\\nfs41_pipe"
35
36 #define NFS41_SHARED_MEMORY_NAME L"\\BaseNamedObjects\\nfs41_shared_memory"
37 #define NFS41_USER_SHARED_MEMORY_NAME "Global\\nfs41_shared_memory"
38
39 // See "Defining I/O Control Codes" in WDK docs
40 #define _RDR_CTL_CODE(code, method) \
41 CTL_CODE(FILE_DEVICE_NETWORK_REDIRECTOR, 0x800 | (code), method, FILE_ANY_ACCESS)
42
43 #define IOCTL_NFS41_START _RDR_CTL_CODE(0, METHOD_BUFFERED)
44 #define IOCTL_NFS41_STOP _RDR_CTL_CODE(1, METHOD_NEITHER)
45 #define IOCTL_NFS41_GETSTATE _RDR_CTL_CODE(3, METHOD_NEITHER)
46 #define IOCTL_NFS41_ADDCONN _RDR_CTL_CODE(4, METHOD_BUFFERED)
47 #define IOCTL_NFS41_DELCONN _RDR_CTL_CODE(5, METHOD_BUFFERED)
48 #define IOCTL_NFS41_READ _RDR_CTL_CODE(6, METHOD_BUFFERED)
49 #define IOCTL_NFS41_WRITE _RDR_CTL_CODE(7, METHOD_BUFFERED)
50 #define IOCTL_NFS41_INVALCACHE _RDR_CTL_CODE(8, METHOD_BUFFERED)
51
52 typedef enum _nfs41_opcodes {
53 NFS41_MOUNT,
54 NFS41_UNMOUNT,
55 NFS41_OPEN,
56 NFS41_CLOSE,
57 NFS41_READ,
58 NFS41_WRITE,
59 NFS41_LOCK,
60 NFS41_UNLOCK,
61 NFS41_DIR_QUERY,
62 NFS41_FILE_QUERY,
63 NFS41_FILE_SET,
64 NFS41_EA_GET,
65 NFS41_EA_SET,
66 NFS41_SYMLINK,
67 NFS41_VOLUME_QUERY,
68 NFS41_ACL_QUERY,
69 NFS41_ACL_SET,
70 NFS41_SHUTDOWN,
71 INVALID_OPCODE
72 } nfs41_opcodes;
73
74 enum rpcsec_flavors {
75 RPCSEC_AUTH_SYS,
76 RPCSEC_AUTHGSS_KRB5,
77 RPCSEC_AUTHGSS_KRB5I,
78 RPCSEC_AUTHGSS_KRB5P
79 };
80
81 typedef enum _nfs41_init_driver_state {
82 NFS41_INIT_DRIVER_STARTABLE,
83 NFS41_INIT_DRIVER_START_IN_PROGRESS,
84 NFS41_INIT_DRIVER_STARTED
85 } nfs41_init_driver_state;
86
87 typedef enum _nfs41_start_driver_state {
88 NFS41_START_DRIVER_STARTABLE,
89 NFS41_START_DRIVER_START_IN_PROGRESS,
90 NFS41_START_DRIVER_STARTED,
91 NFS41_START_DRIVER_STOPPED
92 } nfs41_start_driver_state;
93 #endif