X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/91447636331957f3d9b5ca5b508f07c526b0074d..6601e61aa18bf4f09af135ff61fc7f4771d23b06:/bsd/hfs/hfs_catalog.h diff --git a/bsd/hfs/hfs_catalog.h b/bsd/hfs/hfs_catalog.h index 991478558..2f91eae90 100644 --- a/bsd/hfs/hfs_catalog.h +++ b/bsd/hfs/hfs_catalog.h @@ -118,13 +118,20 @@ struct cat_fork { * */ struct directoryhint { - SLIST_ENTRY(directoryhint) dh_link; /* chain */ + TAILQ_ENTRY(directoryhint) dh_link; /* chain */ int dh_index; /* index into directory (zero relative) */ u_int32_t dh_time; struct cat_desc dh_desc; /* entry's descriptor */ }; typedef struct directoryhint directoryhint_t; +/* + * HFS_MAXDIRHINTS cannot be larger than 63 without reducing + * HFS_INDEX_BITS, because given the 6-bit tag, at most 63 different + * tags can exist. When HFS_MAXDIRHINTS is larger than 63, the same + * list may contain dirhints of the same tag, and a staled dirhint may + * be returned. + */ #define HFS_MAXDIRHINTS 32 #define HFS_DIRHINT_TTL 45 @@ -262,7 +269,8 @@ extern int cat_getdirentries( directoryhint_t *dirhint, uio_t uio, int extended, - int * items); + int * items, + int * eofflag); extern int cat_insertfilethread ( struct hfsmount *hfsmp,