/*********************************************************************** * * Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, Novell, Inc. * * To contact Novell about this file by physical or electronic mail, * you may find current contact information at www.novell.com. * ***********************************************************************/ #if ! defined ( NWDENTRY_H ) #define NWDENTRY_H #if ! defined ( NTYPES_H ) #include "ntypes.h" #endif #if ! defined ( NWCALDEF_H ) #include "nwcaldef.h" #endif #if ! defined ( NWDIRECT_H ) /* Needed to define TRUSTEE_INFO */ #include "nwdirect.h" #endif #include "npackon.h" #ifdef __cplusplus extern "C" { #endif typedef struct { nstr8 entryName[16]; nuint32 creationDateAndTime; nuint32 ownerID; nuint32 sequenceNumber; TRUSTEE_INFO trusteeList[20]; } NWET_INFO; typedef struct { nstr8 entryName[16]; nuint32 creationDateAndTime; nuint32 ownerID; nuint32 sequenceNumber; TRUSTEE_INFO trusteeList[100]; } NWET_INFO_EXT; typedef struct { nuint32 updateDateAndTime; nuint32 updatorID; nuint32 fileSize; nuint8 reserved[44]; nuint16 inheritedRightsMask; nuint16 lastAccessDate; nuint8 reserved2[28]; } NWFILE_INFO; typedef struct { nuint32 lastModifyDateAndTime; nuint32 nextTrusteeEntry; nuint8 reserved[48]; nuint32 maximumSpace; nuint16 inheritedRightsMask; nuint8 reserved2[14]; nuint32 volObjectID; nuint8 reserved3[8]; } NWDIR_INFO; typedef struct { nuint32 sequence; nuint32 parent; nuint32 attributes; nuint8 uniqueID; nuint8 flags; nuint8 nameSpace; nuint8 nameLength; nuint8 name[12]; nuint32 creationDateAndTime; nuint32 ownerID; nuint32 lastArchiveDateAndTime; nuint32 lastArchiverID; union { NWFILE_INFO file; NWDIR_INFO dir; }info; } NWENTRY_INFO; typedef struct { nuint32 sequence; nuint32 parent; nuint32 attributes; nuint8 uniqueID; nuint8 flags; nuint8 nameSpace; nuint8 nameLength; nuint8 name [12]; nuint32 creationDateAndTime; nuint32 ownerID; nuint32 lastArchiveDateAndTime; nuint32 lastArchiverID; nuint32 updateDateAndTime; nuint32 lastUpdatorID; nuint32 dataForkSize; /* file size */ nuint32 dataForkFirstFAT; nuint32 nextTrusteeEntry; nuint8 reserved[36]; nuint16 inheritedRightsMask; nuint16 lastAccessDate; nuint32 deletedFileTime; nuint32 deletedDateAndTime; nuint32 deletorID; nuint8 reserved2 [16]; nuint32 otherForkSize[2]; } NW_EXT_FILE_INFO; #define TR_NONE 0x0000 #define TR_READ 0x0001 #define TR_WRITE 0x0002 #define TR_OPEN 0x0004 #define TR_DIRECTORY 0x0004 #define TR_CREATE 0x0008 #define TR_DELETE 0x0010 #define TR_ERASE 0x0010 #define TR_OWNERSHIP 0x0020 #define TR_ACCESS_CTRL 0x0020 #define TR_FILE_SCAN 0x0040 #define TR_SEARCH 0x0040 #define TR_FILE_ACCESS 0x0040 #define TR_MODIFY 0x0080 #define TR_ALL 0x01FB #define TR_SUPERVISOR 0x0100 #define TR_NORMAL 0x00FB #ifndef MModifyNameBit #define MModifyNameBit 0x0001L #define MFileAttributesBit 0x0002L #define MCreateDateBit 0x0004L #define MCreateTimeBit 0x0008L #define MOwnerIDBit 0x0010L #define MLastArchivedDateBit 0x0020L #define MLastArchivedTimeBit 0x0040L #define MLastArchivedIDBit 0x0080L #define MLastUpdatedDateBit 0x0100L #define MLastUpdatedTimeBit 0x0200L #define MLastUpdatedIDBit 0x0400L #define MLastAccessedDateBit 0x0800L #define MInheritedRightsMaskBit 0x1000L #define MMaximumSpaceBit 0x2000L #endif N_EXTERN_LIBRARY( NWCCODE ) NWDeleteTrustee ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath, nuint32 objID ); N_EXTERN_LIBRARY( NWCCODE ) NWDeleteTrusteeExt ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath, nuint32 objID ); N_EXTERN_LIBRARY( NWCCODE ) NWAddTrustee ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint32 objID, nuint16 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWAddTrusteeExt ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint32 objID, nuint16 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWIntScanDirEntryInfo ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, nuint16 attrs, pnuint32 iterHandle, const nuint8 N_FAR * searchPattern, NWENTRY_INFO N_FAR * entryInfo, nuint16 augmentFlag ); #define NWScanForTrustees(a, b, c, d, e, f) \ NWIntScanForTrustees(a, b, c, d, e, f, 0) N_EXTERN_LIBRARY( NWCCODE ) NWIntScanForTrustees ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, pnuint32 iterHandle, pnuint16 numOfEntries, NWET_INFO N_FAR * entryTrusteeInfo, nuint16 augmentFlag ); #define NWScanForTrusteesExt(a, b, c, d, e, f) \ NWIntScanForTrusteesExt(a, b, c, d, e, f, 0) N_EXTERN_LIBRARY( NWCCODE ) NWIntScanForTrusteesExt ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, pnuint32 iterHandle, pnuint16 numOfEntries, NWET_INFO_EXT N_FAR * entryTrusteeInfo, nuint16 augmentFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWIntMoveDirEntry ( NWCONN_HANDLE conn, nuint8 searchAttrs, NWDIR_HANDLE srcDirHandle, const nstr8 N_FAR * srcPath, NWDIR_HANDLE dstDirHandle, const nstr8 N_FAR * dstPath, nuint16 augmentFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWSetDirEntryInfo ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, nuint8 searchAttrs, nuint32 iterHandle, nuint32 changeBits, const NWENTRY_INFO N_FAR * newEntryInfo ); N_EXTERN_LIBRARY( NWCCODE ) NWIntScanExtendedInfo ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, nuint8 attrs, pnuint32 iterHandle, const nstr8 N_FAR * searchPattern, NW_EXT_FILE_INFO N_FAR * entryInfo, nuint16 augmentFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWGetEffectiveRights ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, pnuint16 effectiveRights ); N_EXTERN_LIBRARY( NWCCODE ) NWGetEffectiveRightsExt ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, pnuint16 effectiveRights ); #ifdef __cplusplus } #endif /* The NLM LibC x-plat libraries do not support obsolete apis */ #include #if !defined(__NOVELL_LIBC__) #ifdef INCLUDE_OBSOLETE #include "obsolete/o_dentry.h" #endif #endif /* !defined(__NOVELL_LIBC__) */ #include "npackoff.h" #endif