1The hfs_fs "to do" list. 2------------------------ 3Items are broken down into groups and the groups are listed in order 4from most important to least important. The items within each group 5are not placed in any particular order. The order in which items are 6listed probably doesn't correlate well with the order they will be 7addressed. 8 9Genuine bugs: 101. Header files have compiled-in limit (currently 10) on descriptors. 11 12Missing features: 131. 1k block support is needed for some devices. 142. An ioctl()-based interface is needed to provide a consistent way 15 to do things under all of the representations of forked files. 16 17Possible additional "fork" mount options: 181. AppleSingle. 192. The scheme MacOS uses on FAT disks (PC Exchange). 203. "Flat" (no resource forks or metadata). 21 22Performance issues: 231. Use drAllocPtr to speed block allocations. 242. Keep a real cache of bnodes, rather than just a hash table of 25 the ones that are currently in use. 263. Keep a real cache of extent records, rather than just a linked 27 list of the ones that are currently in use and the one most 28 recently used. This is particularly needed to get acceptable 29 performance with multiple readers on a file. Perhaps simply 30 keep them in memory once they've been read until the file is 31 closed. 32 33Implementation details: 341. Allocation scheme could/should be closer to that used by Apple. 352. B*-tree insertion could/should be closer to that used by Apple. 363. Magic-number checks on data structures are rarely done. 374. Error recovery is needed for failed binsert(), bdelete() and rename(). 385. Deadlock detection is needed to make insert_empty_bnode() and 39 bdelete() less likely to hang on a corrupted B-tree. 406. Metadata for covered directories shouldn't appear in the filesystem. 41 Under CAP and AppleDouble it currently does. However, the obvious 42 solution is a real performance killer and is not worth implementing. 43 44Fantasy features: 451. Access Desktop file/database for comment and icon. 462. Implement mmap() for AppleDouble header files and CAP info files. 473. Implement AppleShare client support. 48 49Suggestions/comments/questions are welcome. 50Code addressing any of the issues listed above is especially welcome. 51Paul H. Hargrove 52hargrove@sccm.Stanford.EDU 53