1/* 2 * Copyright (c) 1999-2008 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24// AppleCDDAFileSystemVFSOps.h created by CJS on Mon 27-Apr-2000 25 26#ifndef __APPLE_CDDA_FS_VFS_OPS_H__ 27#define __APPLE_CDDA_FS_VFS_OPS_H__ 28 29#ifdef __cplusplus 30extern "C" { 31#endif 32 33// Project Includes 34#ifndef __APPLE_CDDA_FS_VNODE_OPS_H__ 35#include "AppleCDDAFileSystemVNodeOps.h" 36#endif 37 38#ifdef KERNEL 39 40#include <sys/types.h> 41#include <sys/ucred.h> 42#include <sys/mount.h> 43#include <sys/vnode.h> 44 45#endif 46 47 48//----------------------------------------------------------------------------- 49// Constants 50//----------------------------------------------------------------------------- 51 52enum 53{ 54 kAppleCDDARootFileID = 2, 55 kNumberOfFakeDirEntries = 3, 56 kOffsetForFiles = 100 57}; 58 59extern int ( **gCDDA_VNodeOp_p )( void * ); 60 61 62//----------------------------------------------------------------------------- 63// Function Prototypes 64//----------------------------------------------------------------------------- 65 66 67int CDDA_Mount ( mount_t mountPtr, 68 vnode_t blockDeviceVNodePtr, 69 user_addr_t data, 70 vfs_context_t context ); 71int CDDA_Unmount ( mount_t mountPtr, 72 int theFlags, 73 vfs_context_t context ); 74int CDDA_Root ( mount_t mountPtr, 75 vnode_t * vnodeHandle, 76 vfs_context_t context ); 77int CDDA_VFSGetAttributes ( mount_t mountPtr, 78 struct vfs_attr * attrPtr, 79 vfs_context_t context ); 80int CDDA_VGet ( mount_t mountPtr, 81 ino64_t nodeID, 82 vnode_t * vNodeHandle, 83 vfs_context_t context ); 84extern struct vfsops gCDDA_VFSOps; 85 86// Private internal methods 87int 88CDDA_VGetInternal ( mount_t mountPtr, 89 ino64_t ino, 90 vnode_t parentVNodePtr, 91 struct componentname * compNamePtr, 92 vnode_t * vNodeHandle ); 93 94 95#ifdef __cplusplus 96} 97#endif 98 99#endif // __APPLE_CDDA_FS_VFS_OPS_H__ 100