X-Git-Url: http://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsd%2Fcm_vnodeops.h;h=569f698808998b14b87972936f0455313c04de5a;hp=d4667b19216da985dd0f2de56a77464d7e817f1d;hb=14408c7e88c198d80ce89e90e209f48685da89da;hpb=7f4414ae3983fe7260de19cf3ccb7659d76a33f3 diff --git a/src/WINNT/afsd/cm_vnodeops.h b/src/WINNT/afsd/cm_vnodeops.h index d4667b1..569f698 100644 --- a/src/WINNT/afsd/cm_vnodeops.h +++ b/src/WINNT/afsd/cm_vnodeops.h @@ -15,7 +15,7 @@ extern unsigned int cm_mountRootGen; /* parms for attribute setting call */ typedef struct cm_attr { int mask; - unsigned long clientModTime; + time_t clientModTime; osi_hyper_t length; int unixModeBits; long owner; @@ -33,7 +33,7 @@ typedef struct cm_lookupSearch { cm_fid_t fid; char *searchNamep; int found; - int LCfound, UCfound, NCfound; + int LCfound, UCfound, NCfound, ExactFound; int caseFold; int hasTilde; } cm_lookupSearch_t; @@ -70,6 +70,10 @@ extern long cm_NameI(cm_scache_t *rootSCachep, char *pathp, long flags, extern long cm_Lookup(cm_scache_t *dscp, char *namep, long flags, cm_user_t *userp, cm_req_t *reqp, cm_scache_t **outpScpp); +extern long cm_LookupInternal(cm_scache_t *dscp, char *namep, long flags, + cm_user_t *userp, cm_req_t *reqp, + cm_scache_t **outpScpp); + extern void cm_TryBulkStat(cm_scache_t *dscp, osi_hyper_t *offsetp, cm_user_t *userp, cm_req_t *reqp); @@ -104,12 +108,18 @@ extern long cm_Rename(cm_scache_t *oldDscp, char *oldLastNamep, extern long cm_HandleLink(cm_scache_t *linkScp, struct cm_user *userp, cm_req_t *reqp); +extern long cm_Link(cm_scache_t *dscp, char *namep, cm_scache_t *sscp, + long flags, cm_user_t *userp, cm_req_t *reqp); + extern long cm_SymLink(cm_scache_t *dscp, char *namep, char *contentsp, long flags, cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp); -extern char cm_sysName[100]; +extern long cm_AssembleLink(cm_scache_t *linkScp, char *pathSuffixp, + cm_scache_t **newRootScpp, cm_space_t **newSpaceBufferp, + cm_user_t *userp, cm_req_t *reqp); -extern int cm_ExpandSysName(char *inp, char *outp, long outSize); +extern int cm_ExpandSysName(char *inp, char *outp, long outSize, + unsigned int sysNameIndex); extern long cm_Open(cm_scache_t *scp, int type, cm_user_t *userp); @@ -135,17 +145,43 @@ extern long cm_CheckNTDelete(cm_scache_t *dscp, cm_scache_t *scp, extern long cm_EvaluateSymLink(cm_scache_t *dscp, cm_scache_t *linkScp, cm_scache_t **outScpp, cm_user_t *userp, cm_req_t *reqp); -extern long cm_Lock(cm_scache_t *scp, unsigned char LockType, - LARGE_INTEGER LOffset, LARGE_INTEGER LLength, - u_long Timeout, cm_user_t *userp, cm_req_t *reqp, - void **lockpp); +extern long cm_Lock(cm_scache_t *scp, unsigned char sLockType, + LARGE_INTEGER LOffset, LARGE_INTEGER LLength, cm_key_t key, + int allowWait, cm_user_t *userp, cm_req_t *reqp, + cm_file_lock_t **lockpp); + +#define CM_UNLOCK_BY_FID 1 + +extern long cm_UnlockByKey(cm_scache_t * scp, + cm_key_t key, + int flags, + cm_user_t * userp, + cm_req_t * reqp); -extern long cm_Unlock(cm_scache_t *scp, unsigned char LockType, - LARGE_INTEGER LOffset, LARGE_INTEGER LLength, +extern long cm_Unlock(cm_scache_t *scp, unsigned char sLockType, + LARGE_INTEGER LOffset, LARGE_INTEGER LLength, cm_key_t key, cm_user_t *userp, cm_req_t *reqp); +extern long cm_LockCheckRead(cm_scache_t *scp, + LARGE_INTEGER LOffset, + LARGE_INTEGER LLength, + cm_key_t key); + +extern long cm_LockCheckWrite(cm_scache_t *scp, + LARGE_INTEGER LOffset, + LARGE_INTEGER LLength, + cm_key_t key); + extern void cm_CheckLocks(); -extern long cm_RetryLock(cm_file_lock_t *oldFileLock, int vcp_is_dead); +extern long cm_RetryLock(cm_file_lock_t *oldFileLock, int client_is_dead); + +#define CM_SESSION_SMB 0xffff +#define CM_SESSION_IFS 0xfffe +#define CM_SESSION_CMINT 0xfffd +#define CM_SESSION_RESERVED 0xfff0 + +extern cm_key_t cm_GenerateKey(unsigned int session, unsigned long process_id, unsigned int file_id); +#define MAX_SYMLINK_COUNT 16 #endif /* __CM_VNODEOPS_H_ENV__ */