📄 changes
字号:
changes to Ken's file server to make this 63-bit file server Geoff Collyer July—October 2004note: 2⁶=9,223,372,036,854,775,808 or 8EB (9.2×10ⁱ⁸)• identified longs that refer to offsets, sizes and block numbers, andchanged them to type Off (vlong); fixed all print formats to match.fixed byte-swapping for the 'x' config to match.• fixed VLONG 9p1 message packing and unpacking macros to actuallyhandle 64-bit offsets and sizes.• implemented triple-indirect blocks. affected code in dev/cw.c port/con.c port/dentry.c port/sub.c port/chk.c port/console.c port/portdat.h• Fri Aug 6 16:50:59 PDT 2004 ; ./sizes Plan 9 v4 63-bit file server sizeof(Dentry) = 124 sizeof(Cache) = 88• added long(er) file name components (56 bytes), long enough for all but one name in my /.longnames file (68-byte .xml name).• Fri Aug 6 21:43:41 PDT 2004 ; ./sizes Plan 9 v4 63-bit file server sizes sizeof(Dentry) = 160 sizeof(Cache) = 88• touched up lib.h (from libc.h) to bring it up to date with formatting functions, verbs & flags.• check now reports stack usage: 320 bytes upon entry to fsck first time, 92 bytes of stack per recursion. given 16000 bytes of stack, that's 170 recursions maximum.• booted xtc (terminal) from fs64 (used fs64 as main file system)note: current file server with triple-indirect blocks at 4k block size has a maximum file size of ~505GB (5.42×10ⁱⁱ). with quadruple-indirect blocks, max would be ~275TB @ 4k block size.• got igbe fs driver working (a couple small changes)• eliminated some gotos (started with 580, down to 454)• added quadruple indirect blocks: lets us reach 2⁶ with a 32kB block size• got igbe boot driver & pxe booting working• on-disk qid paths are now Offs, but 9p1 qids on the wire are still ulongs• generalised & parameterised indirect block implementation• tested with plain w0 fs, cached fake worm on w0, cw jukebox (hp 160fx)• ip directories in fs & fs64 are identical except for whitespace and goto-elimination• replaced most of nemo's ide code with newer ide code lifted from 9load, then from cpu kernel (sdata.c & support). this brings us dma, rwm & lba48, finds ide controllers by itself, even pci ones, & copes with dead drives (i.e., doesn't panic).• fixed long-standing bug that caused a 5-second delay before each console prompt on systems without a serial console.• further type parameterisation: Userid (short), Timet (long), Devsize (vlong). Comment on v7 kernel portability work, quoting scj & dmr from BSTJ v57 #6 part 2., p. 2038: ``The important data types used within the system were identified and specified using typedef: disk offsets, absolute times, internal device names, and the like. This effort was carried out by K. Thompson.''• corrected compat.h dependencies in mkfiles• eliminated all warnings• implemented truncation via wstat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -