kernel - MPSAFE work - add vmspace_token
[dragonfly.git] / sys / sys / syslink_vfs.h
1 /*
2  * Copyright (c) 2007 The DragonFly Project.  All rights reserved.
3  * 
4  * This code is derived from software contributed to The DragonFly Project
5  * by Matthew Dillon <dillon@backplane.com>
6  * 
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  * 3. Neither the name of The DragonFly Project nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific, prior written permission.
20  * 
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
25  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
31  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32  * SUCH DAMAGE.
33  * 
34  * $DragonFly: src/sys/sys/syslink_vfs.h,v 1.1 2007/10/09 17:29:19 dillon Exp $
35  */
36
37 #ifndef _SYS_SYSLINK_VFS_H_
38 #define _SYS_SYSLINK_VFS_H_
39
40 #ifndef _SYS_SYSLINK_MSG_H_
41 #include <sys/syslink_msg.h>
42 #endif
43
44 /*
45  * Note: Base command codes are limited by SE_CMD_MASK (0x03FF).  The entire
46  * se_cmd is tested in switch()es to guarentee expectations.
47  */
48 #define SLVFS_CMD_VFS_ROOT              (0x0001|SE_CMDF_STRUCTURED)
49 #define SLVFS_CMD_VFS_STATFS            (0x0002|SE_CMDF_STRUCTURED)
50
51 /*
52  * Note: userfs implements advlock, open, close, read, and
53  * write internally.
54  */
55 #define SLVFS_CMD_VOP_FSYNC             (0x0010|SE_CMDF_STRUCTURED)
56 #define SLVFS_CMD_VOP_GETPAGES          (0x0011|SE_CMDF_STRUCTURED|SE_CMDF_DMAR)
57 #define SLVFS_CMD_VOP_PUTPAGES          (0x0012|SE_CMDF_STRUCTURED|SE_CMDF_DMAW)
58 #define SLVFS_CMD_VOP_READ              (0x0013|SE_CMDF_STRUCTURED|SE_CMDF_DMAR)
59 #define SLVFS_CMD_VOP_WRITE             (0x0014|SE_CMDF_STRUCTURED|SE_CMDF_DMAW)
60 #define SLVFS_CMD_VOP_ACCESS            (0x0015|SE_CMDF_STRUCTURED)
61 #define SLVFS_CMD_VOP_ADVLOCK           (0x0016|SE_CMDF_STRUCTURED)
62 #define SLVFS_CMD_VOP_CLOSE             (0x0017|SE_CMDF_STRUCTURED)
63 #define SLVFS_CMD_VOP_NCREATE           (0x0018|SE_CMDF_STRUCTURED)
64 #define SLVFS_CMD_VOP_GETATTR           (0x0019|SE_CMDF_STRUCTURED)
65 #define SLVFS_CMD_VOP_NRESOLVE          (0x001A|SE_CMDF_STRUCTURED)
66 #define SLVFS_CMD_VOP_NLOOKUPDOTDOT     (0x001B|SE_CMDF_STRUCTURED)
67 #define SLVFS_CMD_VOP_NLINK             (0x001C|SE_CMDF_STRUCTURED)
68 #define SLVFS_CMD_VOP_NMKDIR            (0x001D|SE_CMDF_STRUCTURED)
69 #define SLVFS_CMD_VOP_NMKNOD            (0x001E|SE_CMDF_STRUCTURED)
70 #define SLVFS_CMD_VOP_OPEN              (0x001F|SE_CMDF_STRUCTURED)
71 #define SLVFS_CMD_VOP_PATHCONF          (0x0020|SE_CMDF_STRUCTURED)
72 #define SLVFS_CMD_VOP_PRINT             (0x0021|SE_CMDF_STRUCTURED)
73 #define SLVFS_CMD_VOP_READDIR           (0x0022|SE_CMDF_STRUCTURED|SE_CMDF_DMAR)
74 #define SLVFS_CMD_VOP_READLINK          (0x0023|SE_CMDF_STRUCTURED)
75 #define SLVFS_CMD_VOP_NREMOVE           (0x0024|SE_CMDF_STRUCTURED)
76 #define SLVFS_CMD_VOP_NRENAME           (0x0025|SE_CMDF_STRUCTURED)
77 #define SLVFS_CMD_VOP_NRMDIR            (0x0026|SE_CMDF_STRUCTURED)
78 #define SLVFS_CMD_VOP_SETATTR           (0x0027|SE_CMDF_STRUCTURED)
79 #define SLVFS_CMD_VOP_STRATEGY_READ     (0x0028|SE_CMDF_STRUCTURED|SE_CMDF_DMAR)
80 #define SLVFS_CMD_VOP_STRATEGY_WRITE    (0x0029|SE_CMDF_STRUCTURED|SE_CMDF_DMAW)
81 #define SLVFS_CMD_VOP_STRATEGY_MISC     (0x002A|SE_CMDF_STRUCTURED)
82 #define SLVFS_CMD_VOP_NSYMLINK          (0x002B|SE_CMDF_STRUCTURED)
83 #define SLVFS_CMD_VOP_NWHITEOUT         (0x002C|SE_CMDF_STRUCTURED)
84
85 /*
86  * Note: Most elements without an ASIZE specification use the 32 bit se_aux
87  * field.
88  */
89 #define SLVFS_ELM_OFFSET                (0x0001|SE_CMDF_ASIZE8)
90 #define SLVFS_ELM_VNODE                 (0x0002|SE_CMDF_ASIZE8)
91 #define SLVFS_ELM_IOCMD                 (0x0003)
92 #define SLVFS_ELM_IOCOUNT               (0x0004)
93 #define SLVFS_ELM_INUM                  (0x0005|SE_CMDF_ASIZE8)
94 #define SLVFS_ELM_NCPFLAG               (0x0006)
95
96 #define SLVFS_ELM_STAT                  (0x0010|SE_CMDF_STRUCTURED)
97 #define SLVFS_ELM_VATTR                 (0x0011|SE_CMDF_STRUCTURED)
98 #define SLVFS_ELM_CRED                  (0x0012|SE_CMDF_STRUCTURED)
99
100 #define SLVFS_ELM_VA_TYPE               (0x0100)
101 #define SLVFS_ELM_VA_NLINK              (0x0101)
102 #define SLVFS_ELM_VA_MODE               (0x0102)
103 #define SLVFS_ELM_VA_UID                (0x0103)
104 #define SLVFS_ELM_VA_GID                (0x0104)
105 #define SLVFS_ELM_VA_FSID               (0x0105)
106 #define SLVFS_ELM_VA_FILEID             (0x0106)
107 #define SLVFS_ELM_VA_SIZE               (0x0107|SE_CMDF_ASIZE8)
108 #define SLVFS_ELM_VA_BLOCKSIZE          (0x0108)
109 #define SLVFS_ELM_VA_ATIME              (0x0109|SE_CMDF_ASIZE8)
110 #define SLVFS_ELM_VA_MTIME              (0x010A|SE_CMDF_ASIZE8)
111 #define SLVFS_ELM_VA_CTIME              (0x010B|SE_CMDF_ASIZE8)
112 #define SLVFS_ELM_VA_GEN                (0x010C)
113 #define SLVFS_ELM_VA_FLAGS              (0x010D)
114 #define SLVFS_ELM_VA_RMAJOR             (0x010E)
115 #define SLVFS_ELM_VA_RMINOR             (0x010F)
116 #define SLVFS_ELM_VA_BYTES              (0x0110|SE_CMDF_ASIZE8)
117 #define SLVFS_ELM_VA_FILEREV            (0x0111|SE_CMDF_ASIZE8)
118 #define SLVFS_ELM_VA_VAFLAGS            (0x0112)
119 #define SLVFS_ELM_VA_FSMID              (0x0113|SE_CMDF_ASIZE8)
120
121 #endif
122