1/* 2 * Copyright (c) 2012 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#ifndef _SMBFS_ATTRLIST_H_ 25#define _SMBFS_ATTRLIST_H_ 26 27#include <sys/appleapiopts.h> 28 29#ifdef KERNEL 30#ifdef __APPLE_API_PRIVATE 31#include <sys/attr.h> 32#include <sys/vnode.h> 33 34#include <smbfs/smbfs_node.h> 35 36 37struct attrblock { 38 struct attrlist *ab_attrlist; 39 void **ab_attrbufpp; 40 void **ab_varbufpp; 41 int ab_flags; 42 int ab_blocksize; 43 vfs_context_t ab_context; 44}; 45 46/* 47 * The following define the attributes that HFS supports: 48 */ 49 50#define SMBFS_ATTR_CMN_VALID \ 51 (ATTR_CMN_NAME | ATTR_CMN_DEVID | \ 52 ATTR_CMN_FSID | ATTR_CMN_OBJTYPE | \ 53 ATTR_CMN_OBJTAG | ATTR_CMN_OBJID | \ 54 ATTR_CMN_OBJPERMANENTID | ATTR_CMN_PAROBJID | \ 55 ATTR_CMN_SCRIPT | ATTR_CMN_CRTIME | \ 56 ATTR_CMN_MODTIME | ATTR_CMN_CHGTIME | \ 57 ATTR_CMN_ACCTIME | ATTR_CMN_BKUPTIME | \ 58 ATTR_CMN_FNDRINFO |ATTR_CMN_OWNERID | \ 59 ATTR_CMN_GRPID | ATTR_CMN_ACCESSMASK | \ 60 ATTR_CMN_FLAGS | ATTR_CMN_USERACCESS | \ 61 ATTR_CMN_FILEID | ATTR_CMN_PARENTID ) 62 63#define SMBFS_ATTR_CMN_SEARCH_VALID \ 64 (ATTR_CMN_NAME | ATTR_CMN_OBJID | \ 65 ATTR_CMN_PAROBJID | ATTR_CMN_CRTIME | \ 66 ATTR_CMN_MODTIME | ATTR_CMN_CHGTIME | \ 67 ATTR_CMN_ACCTIME | ATTR_CMN_BKUPTIME | \ 68 ATTR_CMN_FNDRINFO | ATTR_CMN_OWNERID | \ 69 ATTR_CMN_GRPID | ATTR_CMN_ACCESSMASK | \ 70 ATTR_CMN_FILEID | ATTR_CMN_PARENTID ) 71 72 73 74#define SMBFS_ATTR_DIR_VALID \ 75 (ATTR_DIR_LINKCOUNT | ATTR_DIR_ENTRYCOUNT | ATTR_DIR_MOUNTSTATUS) 76 77#define SMBFS_ATTR_DIR_SEARCH_VALID \ 78 (ATTR_DIR_ENTRYCOUNT) 79 80#define SMBFS_ATTR_FILE_VALID \ 81 (ATTR_FILE_LINKCOUNT |ATTR_FILE_TOTALSIZE | \ 82 ATTR_FILE_ALLOCSIZE | ATTR_FILE_IOBLOCKSIZE | \ 83 ATTR_FILE_CLUMPSIZE | ATTR_FILE_DEVTYPE | \ 84 ATTR_FILE_DATALENGTH | ATTR_FILE_DATAALLOCSIZE | \ 85 ATTR_FILE_RSRCLENGTH | ATTR_FILE_RSRCALLOCSIZE) 86 87#define SMBFS_ATTR_FILE_SEARCH_VALID \ 88 (ATTR_FILE_DATALENGTH | ATTR_FILE_DATAALLOCSIZE | \ 89 ATTR_FILE_RSRCLENGTH | ATTR_FILE_RSRCALLOCSIZE ) 90 91int smbfs_vnop_readdirattr(struct vnop_readdirattr_args *ap); 92 93#endif /* __APPLE_API_PRIVATE */ 94#endif /* KERNEL */ 95#endif /* ! _SMBFS_ATTRLIST_H_ */ 96