veench@cs.vu.nl (12/01/88)
The difs in the following shar file make it much more easy to
put the root file-system on a harddisk.
It is done by moveing the macro's ROOT_DEV and BOOT_DEV
from h/const.h to fs/const.h (MM and KERNEL don't need them.)
To put the root filesystem on the ramdisk just define
RAM_DISK on line 2 of fs/const.h,
to put the root filesystem on harddisk, outcomment it.
Dick van Veen
-------------------------------------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# h
# fs
# This archive created: Mon Nov 28 18:40:13 1988
export PATH; PATH=/bin:/usr/bin:$PATH
if test ! -d 'h'
then
mkdir 'h'
fi
cd 'h'
if test -f 'const.h.cdif'
then
echo shar: "will not over-write existing file 'const.h.cdif'"
else
cat << \SHAR_EOF > 'const.h.cdif'
*** /usr/src/minix/h/const.h Thu Nov 10 21:07:45 1988
--- h/const.h Mon Nov 28 16:28:18 1988
***************
*** 76,85 ****
#define SIG_PUSH_BYTES 8 /* how many bytes pushed by signal */
#define MAX_ISTACK_BYTES 2048 /* maximum initial stack size for EXEC */
- /* Device numbers of root (RAM) and boot (fd0) devices. */
- #define ROOT_DEV (dev_nr) 256 /* major-minor device number of root dev */
- #define BOOT_DEV (dev_nr) 512 /* major-minor device number of boot diskette */
-
/* Flag bits for i_mode in the inode. */
#define I_TYPE 0170000 /* this field gives inode type */
#define I_REGULAR 0100000 /* regular file, not dir or special */
--- 76,81 ----
SHAR_EOF
fi
cd ..
if test ! -d 'fs'
then
mkdir 'fs'
fi
cd 'fs'
if test -f 'const.h.cdif'
then
echo shar: "will not over-write existing file 'const.h.cdif'"
else
cat << \SHAR_EOF > 'const.h.cdif'
*** /usr/src/minix/fs/const.h Thu Nov 10 21:06:23 1988
--- fs/const.h Mon Nov 28 17:51:42 1988
***************
*** 1,3 ****
--- 1,13 ----
+ /* Device numbers of root (RAM) and boot (fd0) devices. */
+ /*#define RAM_DISK /* define this macro for root system in ram */
+ #define RAM_IMAGE (dev_nr)0x303 /* major-minor dev where root image is kept */
+ #ifdef RAM_DISK
+ #define ROOT_DEV (dev_nr) 0x100 /* major-minor device number of root dev */
+ #else
+ #define ROOT_DEV RAM_IMAGE
+ #endif
+ #define BOOT_DEV (dev_nr) 0x200 /* major-minor device number of boot diskette */
+
/* Tables sizes */
#define NR_ZONE_NUMS 9 /* # zone numbers in an inode */
#define NR_BUFS 30 /* # blocks in the buffer cache */
SHAR_EOF
fi
if test -f 'main.c.cdif'
then
echo shar: "will not over-write existing file 'main.c.cdif'"
else
cat << \SHAR_EOF > 'main.c.cdif'
*** /usr/src/minix/fs/main.c Thu Nov 10 21:06:28 1988
--- fs/main.c Mon Nov 28 18:03:06 1988
***************
*** 34,40 ****
#define M64K 0xFFFF0000L /* 16 bit mask for DMA check */
#define INFO 2 /* where in data_org is info from build */
#define MAX_RAM 16384 /* maximum RAM disk size in blocks */
- #define RAM_IMAGE (dev_nr)0x303 /* major-minor dev where root image is kept */
#ifdef i8088
#define EM_ORIGIN 0x100000 /* origin of extended memory RAM disk on AT */
--- 34,39 ----
***************
*** 252,257 ****
--- 251,257 ----
base = (long) init_org + (long) init_text_clicks + (long) init_data_clicks;
base = base << CLICK_SHIFT;
+ #ifdef RAM_DISK
/* Get size of RAM disk by reading root file system's super block.
* First read block 0 from the floppy. If this is a valid file system, use
* it as the root image, otherwise try the hard disk (RAM_IMAGE).
***************
*** 293,298 ****
--- 293,301 ----
base = EM_ORIGIN; /* tell RAM disk driver RAM disk origin */
}
#endif
+ #else
+ ram_clicks = 0; /* we don't read it in ram disk */
+ #endif
/* Tell MM the origin and size of INIT, and the amount of memory used for the
* system plus RAM disk combined, so it can remove all of it from the map.
***************
*** 308,313 ****
--- 311,317 ----
#endif
if (sendrec(MM_PROC_NR, &m1) != OK) panic("FS Can't report to MM", NO_NUM);
+ #ifdef RAM_DISK
/* Tell RAM driver where RAM disk is and how big it is. */
m1.m_type = DISK_IOCTL;
m1.DEVICE = RAM_DEV;
***************
*** 340,345 ****
--- 344,350 ----
printf("\rRAM disk loaded. Please remove root diskette. \n\n");
else
printf("\rRAM disk loaded. \n\n");
+ #endif
}
SHAR_EOF
fi
cd ..
exit 0
# End of shell archive