/*********************************************************************** * * 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 ( NWDIRECT_H ) #define NWDIRECT_H #if ! defined ( NTYPES_H ) #include "ntypes.h" #endif #if ! defined ( NWAPIDEF_H ) #include "nwapidef.h" #endif #if ! defined ( NWCALDEF_H ) #include "nwcaldef.h" #endif #include "npackon.h" #ifdef __cplusplus extern "C" { #endif typedef struct { nuint32 totalBlocks; nuint32 availableBlocks; nuint32 purgeableBlocks; /* set to zero if a dirHandle is present */ nuint32 notYetPurgeableBlocks;/*....when the NWGetDIrSpaceInfo() is called */ nuint32 totalDirEntries; nuint32 availableDirEntries; nuint32 reserved; nuint8 sectorsPerBlock; nuint8 volLen; nuint8 volName[NW_MAX_VOLUME_NAME_LEN]; } DIR_SPACE_INFO; /* Trustee Access Rights in a network directory */ /* NOTE: TA_OPEN is obsolete in 3.x */ #ifndef TA_NONE #define TA_NONE 0x00 #define TA_READ 0x01 #define TA_WRITE 0x02 #define TA_OPEN 0x04 #define TA_CREATE 0x08 #define TA_DELETE 0x10 #define TA_OWNERSHIP 0x20 #define TA_SEARCH 0x40 #define TA_MODIFY 0x80 #define TA_ALL 0xFB #endif typedef struct { nuint32 objectID; nuint16 objectRights; } TRUSTEE_INFO; typedef struct { nuint8 numEntries; struct { nuint8 level; nuint32 max; nuint32 current; } list[102]; } NW_LIMIT_LIST; N_EXTERN_LIBRARY( NWCCODE ) NWAddTrusteeToDirectory ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint32 trusteeID, nuint8 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWDeleteTrusteeFromDirectory ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint32 objID ); N_EXTERN_LIBRARY( NWCCODE ) NWGetEffectiveDirectoryRights ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, pnuint16 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWModifyMaximumRightsMask ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint8 revokeRightsMask, nuint8 grantRightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWScanDirectoryForTrustees ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * searchPath, pnuint16 iterHandle, pnstr8 dirName, pnuint32 dirDateTime, pnuint32 ownerID, pnuint32 trusteeIDs, pnuint8 trusteeRights ); N_EXTERN_LIBRARY( NWCCODE ) NWScanDirectoryForTrustees2 ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * searchPath, pnuint32 iterHandle, pnstr8 dirName, pnuint32 dirDateTime, pnuint32 ownerID, TRUSTEE_INFO N_FAR * trusteeList ); #define NWScanDirectoryInformation(a, b, c, d, e, f, g, h) \ NWIntScanDirectoryInformation(a, b, c, d, e, f, g, h, 0) N_EXTERN_LIBRARY( NWCCODE ) NWIntScanDirectoryInformation ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * searchPath, pnuint16 iterHandle, pnstr8 dirName, pnuint32 dirDateTime, pnuint32 ownerID, pnuint8 rightsMask, nuint16 augmentFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWIntScanDirectoryInformation2 ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * searchPath, pnuint8 sequence, pnstr8 dirName, pnuint32 dirDateTime, pnuint32 ownerID, pnuint8 rightsMask, nuint16 augmentFlag ); N_EXTERN_LIBRARY( NWCCODE ) NWSetDirectoryInformation ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * path, nuint32 dirDateTime, nuint32 ownerID, nuint8 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWAllocPermanentDirectoryHandle ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath, NWDIR_HANDLE N_FAR * newDirHandle, pnuint8 effectiveRights ); N_EXTERN_LIBRARY( NWCCODE ) NWAllocTemporaryDirectoryHandle ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath, NWDIR_HANDLE N_FAR * newDirHandle, pnuint8 rightsMask ); N_EXTERN_LIBRARY( NWCCODE ) NWDeallocateDirectoryHandle ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle ); N_EXTERN_LIBRARY( NWCCODE ) NWSetDirectoryHandlePath ( NWCONN_HANDLE conn, NWDIR_HANDLE sourceDirHandle, const nstr8 N_FAR * dirPath, NWDIR_HANDLE destDirHandle ); N_EXTERN_LIBRARY( NWCCODE ) NWGetDirectoryHandlePath ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, pnstr8 dirPath ); N_EXTERN_LIBRARY( NWCCODE ) NWCreateDirectory ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath, nuint8 accessMask ); N_EXTERN_LIBRARY( NWCCODE ) NWDeleteDirectory ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * dirPath ); N_EXTERN_LIBRARY( NWCCODE ) NWRenameDirectory ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, const nstr8 N_FAR * oldName, const nstr8 N_FAR * newName ); N_EXTERN_LIBRARY( NWCCODE ) NWSetDirSpaceLimit ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, nuint32 spaceLimit ); N_EXTERN_LIBRARY( NWCCODE ) NWGetDirSpaceLimitList ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, pnuint8 returnBuf ); N_EXTERN_LIBRARY( NWCCODE ) NWGetDirSpaceLimitList2 ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, NW_LIMIT_LIST N_FAR * limitList ); N_EXTERN_LIBRARY( NWCCODE ) NWGetDirSpaceInfo ( NWCONN_HANDLE conn, NWDIR_HANDLE dirHandle, nuint16 volNum, DIR_SPACE_INFO N_FAR * spaceInfo ); #ifndef TF_READ_ONLY #define TF_NORMAL 0x0000 #define TF_READ_ONLY 0x0001L #define TF_HIDDEN 0x0002L #define TF_SYSTEM 0x0004L #define TF_EXECUTE_ONLY 0x0008L #define TF_DIRECTORY 0x0010L #define TF_NEEDS_ARCHIVED 0x0020L #define TF_EXECUTE_CONFIRM 0X0040L #define TF_SHAREABLE 0x0080L #define TF_LOW_SEARCH_BIT 0x0100L #define TF_MID_SEARCH_BIT 0x0200L #define TF_HI_SEARCH_BIT 0x0400L #define TF_PRIVATE 0x0800L #define TF_TRANSACTIONAL 0x1000L #define TF_INDEXED 0x2000L #define TF_READ_AUDIT 0x4000L #define TF_WRITE_AUDIT 0x8000L #define TF_PURGE 0x10000L #define TF_RENAME_INHIBIT 0x20000L #define TF_DELETE_INHIBIT 0x40000L #define TF_COPY_INHIBIT 0x80000L #define TF_AUDITING_BIT 0x00100000L #endif /* DIRECTORY ATTRIBUTES */ #define TD_HIDDEN TF_HIDDEN #define TD_SYSTEM TF_SYSTEM #define TD_PURGE TF_PURGE #define TD_PRIVATE TF_PRIVATE #define TD_VISIBLE TF_PRIVATE #define TD_RENAME_INHIBIT TF_RENAME_INHIBIT #define TD_DELETE_INHIBIT TF_DELETE_INHIBIT #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_direct.h" #endif #endif /* !defined(__NOVELL_LIBC__) */ #include "npackoff.h" #endif