From f42a57bf8677d1fea4959552f12d049f36fedee8 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 10 Apr 2018 23:25:44 +0100 Subject: [PATCH] super: tweak a bit Still don't rely upon this --- Kernel/include/kernel.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 */ -- 2.34.1