Add #ifdef for RAWBOOT.
remove some #if 0 stuff.
This commit is contained in:
parent
8b5d3828b2
commit
b679d552d3
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, Revision 2.2 92/04/04 11:35:49 rpd
|
||||
* $Id: disk.c,v 1.17 1996/07/12 05:35:47 bde Exp $
|
||||
* $Id: disk.c,v 1.18 1996/09/10 21:18:39 phk Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -83,9 +83,6 @@ devopen(void)
|
||||
struct disklabel *dl;
|
||||
char *p;
|
||||
int i, sector = 0, di;
|
||||
#if 0 /* Save space, already have hard error for cyl > 1023 in Bread */
|
||||
u_long bend;
|
||||
#endif
|
||||
|
||||
di = get_diskinfo(dosdev);
|
||||
spt = SPT(di);
|
||||
@ -96,14 +93,7 @@ devopen(void)
|
||||
|
||||
spc = spt * HEADS(di);
|
||||
|
||||
#if 0 /* save a little more space and avoid surprises when booting from fd2 */
|
||||
if (dosdev == 2)
|
||||
{
|
||||
boff = 0;
|
||||
part = (spt == 15 ? 3 : 1);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
#ifndef RAWBOOT
|
||||
{
|
||||
#ifdef EMBEDDED_DISKLABEL
|
||||
dl = &disklabel;
|
||||
@ -142,11 +132,6 @@ devopen(void)
|
||||
|
||||
/* This is a good idea for all disks */
|
||||
bsize = dl->d_partitions[part].p_size;
|
||||
#if 0 /* Save space, already have hard error for cyl > 1023 in Bread */
|
||||
bend = boff + bsize - 1 ;
|
||||
if (bend / spc >= 1024) {
|
||||
printf("boot partition end >= cyl 1024, BIOS can't load kernel stored beyond this limit\n");
|
||||
#endif
|
||||
#ifdef DO_BAD144
|
||||
do_bad144 = 0;
|
||||
if (dl->d_flags & D_BADSECT) {
|
||||
@ -194,12 +179,16 @@ devopen(void)
|
||||
else
|
||||
printf("Using bad sector table at %d\n", dkbbnum+i);
|
||||
}
|
||||
#endif DO_BAD144
|
||||
#endif /* DO_BAD144 */
|
||||
}
|
||||
#endif /* RAWBOOT */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Be aware that cnt is rounded up to N*BPS
|
||||
*/
|
||||
void
|
||||
devread(char *iodest, int sector, int cnt)
|
||||
{
|
||||
@ -251,8 +240,8 @@ Bread(int dosdev, int sector)
|
||||
int
|
||||
badsect(int dosdev, int sector)
|
||||
{
|
||||
#if defined(DO_BAD144) && !defined(RAWBOOT)
|
||||
int i;
|
||||
#ifdef DO_BAD144
|
||||
if (do_bad144) {
|
||||
u_short cyl;
|
||||
u_short head;
|
||||
@ -301,7 +290,7 @@ badsect(int dosdev, int sector)
|
||||
newsec -= dl->d_nsectors + i + 1;
|
||||
return newsec;
|
||||
}
|
||||
#endif DO_BAD144
|
||||
no_remap:
|
||||
#endif
|
||||
return sector;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
*
|
||||
* Permission to use, copy, modify and distribute this software and its
|
||||
* documentation is hereby granted, provided that both the copyright
|
||||
* notice and this permission notice appear in all copies of the
|
||||
e* notice and this permission notice appear in all copies of the
|
||||
* software, derivative works or modified versions, and any portions
|
||||
* thereof, and that both notices appear in supporting documentation.
|
||||
*
|
||||
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, Revision 2.2 92/04/04 11:36:34 rpd
|
||||
* $Id: sys.c,v 1.12 1996/09/07 21:06:43 bde Exp $
|
||||
* $Id: sys.c,v 1.13 1996/09/10 21:18:40 phk Exp $
|
||||
*/
|
||||
|
||||
#include "boot.h"
|
||||
@ -47,6 +47,10 @@ char buf[BUFSIZE], fsbuf[BUFSIZE], iobuf[BUFSIZE];
|
||||
char mapbuf[MAPBUFSIZE];
|
||||
int mapblock;
|
||||
|
||||
#ifdef RAWBOOT
|
||||
#define STARTBYTE 8192 /* Where on the media the kernel starts */
|
||||
#endif
|
||||
|
||||
void
|
||||
xread(char *addr, int size)
|
||||
{
|
||||
@ -61,6 +65,7 @@ xread(char *addr, int size)
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef RAWBOOT
|
||||
void
|
||||
read(char *buffer, int count)
|
||||
{
|
||||
@ -72,12 +77,9 @@ read(char *buffer, int count)
|
||||
logno = lblkno(fs, poff);
|
||||
cnt2 = size = blksize(fs, &inode, logno);
|
||||
bnum2 = fsbtodb(fs, block_map(logno)) + boff;
|
||||
if ( (!off) && (size <= count))
|
||||
{
|
||||
if ( (!off) && (size <= count)) {
|
||||
devread(buffer, bnum2, cnt2);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
size -= off;
|
||||
if (size > count)
|
||||
size = count;
|
||||
@ -89,7 +91,41 @@ read(char *buffer, int count)
|
||||
poff += size;
|
||||
}
|
||||
}
|
||||
#else
|
||||
void
|
||||
read(char *buffer, int count)
|
||||
{
|
||||
int cnt, bnum, off, size;
|
||||
|
||||
off = STARTBYTE + poff;
|
||||
poff += count;
|
||||
|
||||
/* Read any unaligned bit at the front */
|
||||
cnt = off & 511;
|
||||
if (cnt) {
|
||||
size = 512-cnt;
|
||||
if (count < size)
|
||||
size = count;
|
||||
devread(iobuf, off >> 9, 512);
|
||||
bcopy(iobuf+cnt, buffer, size);
|
||||
count -= size;
|
||||
off += size;
|
||||
buffer += size;
|
||||
}
|
||||
size = count & (~511);
|
||||
if (size && (off & (~511))) {
|
||||
devread(buffer, off >> 9, size);
|
||||
off += size;
|
||||
count -= size;
|
||||
buffer += size;
|
||||
}
|
||||
if (count) {
|
||||
devread(iobuf, off >> 9, 512);
|
||||
bcopy(iobuf, buffer, count);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
int
|
||||
find(char *path)
|
||||
{
|
||||
@ -245,6 +281,7 @@ openrd(void)
|
||||
if (devopen())
|
||||
return 1;
|
||||
|
||||
#ifndef RAWBOOT
|
||||
/***********************************************\
|
||||
* Load Filesystem info (mount the device) *
|
||||
\***********************************************/
|
||||
@ -259,5 +296,6 @@ openrd(void)
|
||||
return -1;
|
||||
poff = 0;
|
||||
name = cp;
|
||||
#endif /* RAWBOOT */
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user