/* * Copyright (c) 2007 The DragonFly Project. All rights reserved. * * This code is derived from software contributed to The DragonFly Project * by Matthew Dillon * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * 3. Neither the name of The DragonFly Project nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific, prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $DragonFly: src/sys/sys/syslink_vfs.h,v 1.1 2007/10/09 17:29:19 dillon Exp $ */ #ifndef _SYS_SYSLINK_VFS_H_ #define _SYS_SYSLINK_VFS_H_ #ifndef _SYS_SYSLINK_MSG_H_ #include #endif /* * Note: Base command codes are limited by SE_CMD_MASK (0x03FF). The entire * se_cmd is tested in switch()es to guarentee expectations. */ #define SLVFS_CMD_VFS_ROOT (0x0001|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VFS_STATFS (0x0002|SE_CMDF_STRUCTURED) /* * Note: userfs implements advlock, open, close, read, and * write internally. */ #define SLVFS_CMD_VOP_FSYNC (0x0010|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_GETPAGES (0x0011|SE_CMDF_STRUCTURED|SE_CMDF_DMAR) #define SLVFS_CMD_VOP_PUTPAGES (0x0012|SE_CMDF_STRUCTURED|SE_CMDF_DMAW) #define SLVFS_CMD_VOP_READ (0x0013|SE_CMDF_STRUCTURED|SE_CMDF_DMAR) #define SLVFS_CMD_VOP_WRITE (0x0014|SE_CMDF_STRUCTURED|SE_CMDF_DMAW) #define SLVFS_CMD_VOP_ACCESS (0x0015|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_ADVLOCK (0x0016|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_CLOSE (0x0017|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NCREATE (0x0018|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_GETATTR (0x0019|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NRESOLVE (0x001A|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NLOOKUPDOTDOT (0x001B|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NLINK (0x001C|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NMKDIR (0x001D|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NMKNOD (0x001E|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_OPEN (0x001F|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_PATHCONF (0x0020|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_PRINT (0x0021|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_READDIR (0x0022|SE_CMDF_STRUCTURED|SE_CMDF_DMAR) #define SLVFS_CMD_VOP_READLINK (0x0023|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NREMOVE (0x0024|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NRENAME (0x0025|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NRMDIR (0x0026|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_SETATTR (0x0027|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_STRATEGY_READ (0x0028|SE_CMDF_STRUCTURED|SE_CMDF_DMAR) #define SLVFS_CMD_VOP_STRATEGY_WRITE (0x0029|SE_CMDF_STRUCTURED|SE_CMDF_DMAW) #define SLVFS_CMD_VOP_STRATEGY_MISC (0x002A|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NSYMLINK (0x002B|SE_CMDF_STRUCTURED) #define SLVFS_CMD_VOP_NWHITEOUT (0x002C|SE_CMDF_STRUCTURED) /* * Note: Most elements without an ASIZE specification use the 32 bit se_aux * field. */ #define SLVFS_ELM_OFFSET (0x0001|SE_CMDF_ASIZE8) #define SLVFS_ELM_VNODE (0x0002|SE_CMDF_ASIZE8) #define SLVFS_ELM_IOCMD (0x0003) #define SLVFS_ELM_IOCOUNT (0x0004) #define SLVFS_ELM_INUM (0x0005|SE_CMDF_ASIZE8) #define SLVFS_ELM_NCPFLAG (0x0006) #define SLVFS_ELM_STAT (0x0010|SE_CMDF_STRUCTURED) #define SLVFS_ELM_VATTR (0x0011|SE_CMDF_STRUCTURED) #define SLVFS_ELM_CRED (0x0012|SE_CMDF_STRUCTURED) #define SLVFS_ELM_VA_TYPE (0x0100) #define SLVFS_ELM_VA_NLINK (0x0101) #define SLVFS_ELM_VA_MODE (0x0102) #define SLVFS_ELM_VA_UID (0x0103) #define SLVFS_ELM_VA_GID (0x0104) #define SLVFS_ELM_VA_FSID (0x0105) #define SLVFS_ELM_VA_FILEID (0x0106) #define SLVFS_ELM_VA_SIZE (0x0107|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_BLOCKSIZE (0x0108) #define SLVFS_ELM_VA_ATIME (0x0109|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_MTIME (0x010A|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_CTIME (0x010B|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_GEN (0x010C) #define SLVFS_ELM_VA_FLAGS (0x010D) #define SLVFS_ELM_VA_RMAJOR (0x010E) #define SLVFS_ELM_VA_RMINOR (0x010F) #define SLVFS_ELM_VA_BYTES (0x0110|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_FILEREV (0x0111|SE_CMDF_ASIZE8) #define SLVFS_ELM_VA_VAFLAGS (0x0112) #define SLVFS_ELM_VA_FSMID (0x0113|SE_CMDF_ASIZE8) #endif