Removed root filesystem blocksize restriction by reducing boot monitor
stack size from 16kB to 8kB. No apparent adverse affects.
This commit is contained in:
parent
cff515edd8
commit
f8bd2691ec
2 changed files with 9 additions and 8 deletions
|
@ -38,7 +38,7 @@ rawfs86.o: rawfs.c rawfs.o
|
|||
boot: boothead.s boot.o bootimage.o rawfs86.o
|
||||
$(LD86) -o $@ \
|
||||
boothead.s boot.o bootimage.o rawfs86.o $(LIBS)
|
||||
install -S 16kb boot
|
||||
install -S 8kb boot
|
||||
|
||||
bootcd: bootcdhead.s boot.o bootimage.o rawfs86.o
|
||||
$(LD86) -o $@ \
|
||||
|
|
15
boot/rawfs.c
15
boot/rawfs.c
|
@ -52,12 +52,10 @@ static struct super_block super; /* Superblock of file system */
|
|||
#define SUPER_V1 SUPER_MAGIC /* V1 magic has a weird name. */
|
||||
#endif
|
||||
|
||||
#define RAWFS_MAX_BLOCK_SIZE 1024
|
||||
|
||||
static struct inode curfil; /* Inode of file under examination */
|
||||
static char indir[RAWFS_MAX_BLOCK_SIZE]; /* Single indirect block. */
|
||||
static char dindir[RAWFS_MAX_BLOCK_SIZE]; /* Double indirect block. */
|
||||
static char dirbuf[RAWFS_MAX_BLOCK_SIZE]; /* Scratch/Directory block. */
|
||||
static char indir[MAX_BLOCK_SIZE]; /* Single indirect block. */
|
||||
static char dindir[MAX_BLOCK_SIZE]; /* Double indirect block. */
|
||||
static char dirbuf[MAX_BLOCK_SIZE]; /* Scratch/Directory block. */
|
||||
#define scratch dirbuf
|
||||
|
||||
static block_t a_indir, a_dindir; /* Addresses of the indirects. */
|
||||
|
@ -72,7 +70,10 @@ off_t r_super(int *bs)
|
|||
* (zero on error).
|
||||
*/
|
||||
{
|
||||
/* Read superblock. */
|
||||
/* Read superblock. (The superblock is always at 1kB offset,
|
||||
* that's why we lie to readblock and say the block size is 1024
|
||||
* and we want block number 1 (the 'second block', at offset 1kB).)
|
||||
*/
|
||||
readblock(1, scratch, 1024);
|
||||
|
||||
memcpy(&super, scratch, sizeof(super));
|
||||
|
@ -83,7 +84,7 @@ off_t r_super(int *bs)
|
|||
super.s_block_size = 1024;
|
||||
*bs = block_size = super.s_block_size;
|
||||
if(block_size < MIN_BLOCK_SIZE ||
|
||||
block_size > RAWFS_MAX_BLOCK_SIZE) {
|
||||
block_size > MAX_BLOCK_SIZE) {
|
||||
printf("bogus block size %d\n", block_size);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue