Changeset 2868 for trunk/src/lib/nt/kFsCache.h
- Timestamp:
- Sep 4, 2016, 3:28:12 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/nt/kFsCache.h
r2863 r2868 80 80 /** @name KFSOBJ_F_XXX - KFSOBJ::fFlags 81 81 * @{ */ 82 /** Use custom generation. 83 * @remarks This is given the value 1, as we use it as an index into 84 * KFSCACHE::auGenerations, 0 being the default. */ 85 #define KFSOBJ_F_USE_CUSTOM_GEN KU32_C(0x00000001) 86 82 87 /** Whether the file system update the modified timestamp of directories 83 88 * when something is removed from it or added to it. 84 89 * @remarks They say NTFS is the only windows filesystem doing this. */ 85 #define KFSOBJ_F_WORKING_DIR_MTIME KU32_C(0x0000000 1)90 #define KFSOBJ_F_WORKING_DIR_MTIME KU32_C(0x00000002) 86 91 /** NTFS file system volume. */ 87 92 #define KFSOBJ_F_NTFS KU32_C(0x80000000) 93 /** Flags that are automatically inherited. */ 94 #define KFSOBJ_F_INHERITED_MASK KU32_C(0xffffffff) 88 95 /** @} */ 89 96 … … 304 311 /** Set if aboslute path. */ 305 312 KBOOL fAbsolute; 313 /** Index into KFSCACHE:auGenerationsMissing when pFsObj is NULL. */ 314 KU8 idxMissingGen; 306 315 /** The cache generation ID. */ 307 316 KU32 uCacheGen; … … 333 342 /** Set if aboslute path. */ 334 343 KBOOL fAbsolute; 344 /** Index into KFSCACHE:auGenerationsMissing when pFsObj is NULL. */ 345 KU8 idxMissingGen; 335 346 /** The cache generation ID. */ 336 347 KU32 uCacheGen; … … 365 376 KU32 fFlags; 366 377 367 /** The current cache generation for objects that already exists. */ 368 KU32 uGeneration; 369 /** The current cache generation for missing objects, negative results, ++. */ 370 KU32 uGenerationMissing; 378 /** The default and custom cache generations for stuff that exists, indexed by 379 * KFSOBJ_F_USE_CUSTOM_GEN. 380 * 381 * The custom generation can be used to invalidate parts of the file system that 382 * are known to be volatile without triggering refreshing of the more static 383 * parts. Like the 'out' directory in a kBuild setup or a 'TEMP' directory are 384 * expected to change and you need to invalidate the caching of these frequently 385 * to stay on top of things. Whereas the sources, headers, compilers, sdk, 386 * ddks, windows directory and such generally doesn't change all that often. 387 */ 388 KU32 auGenerations[2]; 389 /** The current cache generation for missing objects, negative results, ++. 390 * This comes with a custom variant too. Indexed by KFSOBJ_F_USE_CUSTOM_GEN. */ 391 KU32 auGenerationsMissing[2]; 371 392 372 393 /** Number of cache objects. */ … … 437 458 PKFSOBJ kFsCacheLookupW(PKFSCACHE pCache, const wchar_t *pwszPath, KFSLOOKUPERROR *penmError); 438 459 PKFSOBJ kFsCacheLookupRelativeToDirA(PKFSCACHE pCache, PKFSDIR pParent, const char *pszPath, KU32 cchPath, 439 KFSLOOKUPERROR *penmError );460 KFSLOOKUPERROR *penmError, PKFSOBJ *ppLastAncestor); 440 461 PKFSOBJ kFsCacheLookupRelativeToDirW(PKFSCACHE pCache, PKFSDIR pParent, const wchar_t *pwszPath, KU32 cwcPath, 441 KFSLOOKUPERROR *penmError );462 KFSLOOKUPERROR *penmError, PKFSOBJ *ppLastAncestor); 442 463 PKFSOBJ kFsCacheLookupWithLengthA(PKFSCACHE pCache, const char *pchPath, KSIZE cchPath, KFSLOOKUPERROR *penmError); 443 464 PKFSOBJ kFsCacheLookupWithLengthW(PKFSCACHE pCache, const wchar_t *pwcPath, KSIZE cwcPath, KFSLOOKUPERROR *penmError); … … 459 480 PKFSCACHE kFsCacheCreate(KU32 fFlags); 460 481 void kFsCacheDestroy(PKFSCACHE); 461 void kFsCacheInvalidateMissing(PKFSCACHE pFsCache); 462 void kFsCacheInvalidateAll(PKFSCACHE pFsCache); 463 464 #endif 482 void kFsCacheInvalidateMissing(PKFSCACHE pCache); 483 void kFsCacheInvalidateAll(PKFSCACHE pCache); 484 void kFsCacheInvalidateCustomMissing(PKFSCACHE pCache); 485 void kFsCacheInvalidateCustomBoth(PKFSCACHE pCache); 486 KBOOL kFsCacheSetupCustomRevisionForTree(PKFSCACHE pCache, PKFSOBJ pRoot); 487 488 #endif
Note:
See TracChangeset
for help on using the changeset viewer.