From: Alan Cox Date: Tue, 10 Apr 2018 22:25:44 +0000 (+0100) Subject: super: tweak a bit X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=f42a57bf8677d1fea4959552f12d049f36fedee8;p=FUZIX.git super: tweak a bit Still don't rely upon this --- diff --git a/Kernel/include/kernel.h b/Kernel/include/kernel.h index 2b915f6d..6771204b 100644 --- a/Kernel/include/kernel.h +++ b/Kernel/include/kernel.h @@ -336,18 +336,33 @@ typedef struct filesys { // note: exists in mem and on disk blkno_t s_tfree; uint16_t s_tinode; uint8_t s_shift; /* Extent size */ +} filesys, *fsptr; + +/* + * Superblock with userspace fields that are not kept in the kernel + * mount table. + */ +struct filesys_user { + struct filesys s_fs; + /* Allow for some kernel expansion */ uint8_t s_reserved; + uint16_t s_reserved2[16]; + /* This is only used by userspace */ uint16_t s_props; /* Property bits indicating which are valid */ +#define S_PROP_LABEL 1 +#define S_PROP_GEO 2 /* For now only one property set - geometry. We'll eventually use this when we don't know physical geometry and need to handle stuff with tools etc */ + uint8_t s_label_name[32]; + uint16_t s_geo_heads; /* If 0/0/0 is specified and valid it means */ uint16_t s_geo_cylinders; /* pure LBA - no idea of geometry */ uint16_t s_geo_sectors; uint8_t s_geo_skew; /* Soft skew if present (for hard sectored media) */ /* Gives the skew (1/2/3/4/5/... etc) */ uint8_t s_geo_secsize;/* Physical sector size in log2 form*/ -} filesys, *fsptr; +}; typedef struct oft { off_t o_ptr; /* File position pointer */