Commit Graph

437 Commits

Author SHA1 Message Date
dsl
f671893500 Files to build ffsv1 and ffsv2 versions of ufs.c 2003-04-11 11:28:54 +00:00
dsl
af3660bcdb Use common ffs/lfs file ufs.c instead of lfs specific version. 2003-04-11 11:27:06 +00:00
dsl
5a0534abeb Merge in lfs.c, use defines to build ffsv1, ffsv2, lfsv1 or lfsv2.
(removes the ability to build a single ufs.o that supports ffs v1 and v2,
that animal was too large for some of the boot code.)
Use shifts and masks to avoid pulling in 64bit divide.
2003-04-11 11:24:49 +00:00
dsl
fbf4bd0cfe Put extern definition of bcopy in () to avoid macro expansion when
LIBSA_USE_MEMCPY is defined. Fixes breakage because the return
type of memcpy() is different to that of bcopy.
2003-04-11 10:34:38 +00:00
dsl
cff85b34d5 Fix prototypes of null_read and null_write, change to return errno values.
This code can't actually be used anywhere!  I don't think its obvious use
would compile!
2003-04-10 14:44:05 +00:00
dsl
4a16b1cc1d Add FS_DEF() and FS_OPS() defines to save typing (and errors) elsewhere.
Kill __P() and argument names in prototypes.
(approved by christos)
2003-04-10 14:39:46 +00:00
he
97b6d5bf4f Conditionalize declaration of local variable ``i'', now that the
code which uses it is also conditionalized.
2003-04-02 19:47:25 +00:00
fvdl
42614ed3f3 Add support for UFS2. UFS2 is an enhanced FFS, adding support for
64 bit block pointers, extended attribute storage, and a few
other things.

This commit does not yet include the code to manipulate the extended
storage (for e.g. ACLs), this will be done later.

Originally written by Kirk McKusick and Network Associates Laboratories for
FreeBSD.
2003-04-02 10:39:19 +00:00
mycroft
0b87bcb397 constify a couple of pointers. 2003-04-01 21:09:32 +00:00
drochner
8b0843a5b2 There is no point in initializing "rootpath" to "/".
Move it into BSS.
2003-03-27 12:28:58 +00:00
mycroft
c6052ec21f const! const! 2003-03-25 22:35:36 +00:00
drochner
f81c1c504b remove stuff just moved to bootparam.c and some variables which are
never used.
2003-03-19 17:19:32 +00:00
drochner
3906113e15 Move global variables which are used only by bootparam here.
("domainname" is useless and could be removed, but adding code to
skip this in the RPC reply would probably be more expensive than leaving
it as a dummy variable.)
2003-03-19 17:18:07 +00:00
mycroft
f6258762e1 Move some stuff into .rodata. 2003-03-18 19:20:09 +00:00
drochner
68edf0e576 separate ether_sprintf() from the rest of ethernet support -- sometimes
it makes sense to use the former w/o the latter (eg PXE)
2003-03-12 16:46:31 +00:00
drochner
7b3b2ea783 no need to include "netif.h" anymore
(shared interface stuff is in iodesc.h, included by net.h)
2003-03-12 14:51:31 +00:00
drochner
7816074c59 separate the netif interface from the rest of the networking code,
so that it can be replaced easily in md code
2003-03-12 14:49:19 +00:00
jmmv
5649a49e43 After the "insert disk <number>, and press return..." message, check only
for the return keypress.
2003-03-11 19:43:04 +00:00
drochner
dd688f888f translate EACCES (happens with NFS) 2003-03-11 15:02:54 +00:00
dsl
ef50700873 LIBSA_NO_CLOSE is LIBSA_NO_FS_CLOSE everywhere else. 2003-03-07 00:46:37 +00:00
ragge
e8d062d58b Remove bogus check for bogus netmask. 2003-02-25 14:42:30 +00:00
pk
d71686ab26 Introduce fdloadfile() to load an image from an open file descriptor;
implement loadfile() in terms of it.

This allows clients to open a file once and "load" it multiple times (e.g.
first with COUNT_KERNEL, then with LOAD_KERNEL) without the side-effects
of multiple open calls.
2003-02-24 10:51:05 +00:00
simonb
6e4342ca79 Add support for LFSv2 filesystems. From a libsa standpoint, LFSv1 and
LFSv2 are treated as separate filesystem types for size considerations.
2003-02-23 23:17:42 +00:00
simonb
7d43baad24 Use the MAX() macro from <sys/param.h> instead of a local inline. Results
in same code size in ufs.c and removes an unused inline function in lfs.c.
2003-02-23 22:47:43 +00:00
simonb
8d6004faf3 We can't use <string.h> for standalone programs;
use <lib/libkern/libkern.h> for str*() prototypes instead.
2003-02-23 12:31:29 +00:00
dsl
2d1837c8fc KNR, removing ugly 'unsigned' variables.
Probably should be size_t, but now matched prototype.
(mainly agreed with christos - he wanted size_t....)
2003-02-01 14:57:02 +00:00
dsl
912fab6ec9 Beautify a little 2003-02-01 14:54:22 +00:00
dsl
2c4edf02a4 Save some space
(agreed by christos)
2003-02-01 14:53:38 +00:00
dsl
3080e19ff3 Support limited filename globbing
- agreed by christos
2003-02-01 14:52:13 +00:00
fvdl
a3ff3a3038 Bump daddr_t to 64 bits. Replace it with int32_t in all places where
it was used on-disk, so that on-disk formats remain the same.
Remove ufs_daddr_t and ufs_lbn_t for the time being.
2003-01-24 21:55:02 +00:00
christos
8453828bf1 PR/19607: Bernd Ernesti: libsa does not have access to arpa/tftp.h. Put a
copy of it in our tftp.h
2003-01-12 18:59:15 +00:00
veego
a64314e402 Fix broken build due too the move of the cd9660 and msdosfs kernel source code. 2002-12-30 16:41:53 +00:00
pk
bd20047a69 Only display the final progress counter if any of the LOAD_ flags was given.
Fix comment describing the return value.
2002-12-11 09:55:20 +00:00
thorpej
e8cc3884de Rename __LDPGSZ to AOUT_LDPGSZ, to accurately reflect what it is. 2002-12-10 17:14:02 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
2699791533 Do not #include "/usr/include/arpa/tftp.h" directly. Doing so is
VERY BAD for cross-compiling.
2002-09-16 16:53:45 +00:00
itojun
937b671271 use exit(int), not exit(void), consistently - even if the arg has no meaning. 2002-06-01 11:40:31 +00:00
bjh21
a20462dc6e Implement LIBSA_NO_FS_CLOSE, LIBSA_NO_FS_WRITE and LIBSA_NO_FS_SEEK.
LIBSA_NO_FS_SYMLINK and LIBSA_FS_SINGLECOMPONENT are irrelevant here.
2002-05-28 14:30:53 +00:00
bjh21
43079a573b KNF. 2002-05-28 14:26:01 +00:00
lukem
e34d4e21de fix comment 2002-05-10 11:07:01 +00:00
simonb
5457f78a34 Don't bother testing if a uint8_t is > 256 -- that test is always false. 2002-05-09 02:44:39 +00:00
simonb
67c33ffcda Remove two shadowed variables, one of which was set to what it was
shadowing(!) and the other a temporary variable (as was it's shadow).
Code generated with "gcc -O2" is the same before and after.
2002-05-07 02:02:41 +00:00
ragge
b0fa7eb2c1 Someone had a braino here; IP_TTL != IPDEFTTL. This caused the standalone
udp traffic to only have a ttl of 4.
Found by Jens Nilsson, jens@rockstorm.se.
2002-04-23 09:16:09 +00:00
matt
fd1c084a68 Add a 1byte pad to make the ustar_t word aligned so the uas_1cyl after it
will also be word aligned.  This makes the VAX VMB bootrom happy since it
doesn't support odd-aligned buffers.
2002-03-30 01:29:48 +00:00
thorpej
6440db6488 * Add a NetBSD Vendor Class Identifier option as proposed on tech-net
in message <20020216172527.C23901@dr-evil.shagadelic.org>.
* Print the bootp/dhcp response, as is done for rarp/bootparam
  responses.
* Nuke bootp_flags and BOOTP_PXE; they're not used, nor should they be.
2002-03-20 23:10:39 +00:00
gmcgarry
d16aceedcc Protect remaining references to 'debug' with NETIF_DEBUG. 2002-03-17 05:46:37 +00:00
simonb
f28e18332c Move files[] from globals.c to its own file. Including all of globals.o
breaks the size limit for at least the pmax bootblocks.

Fixes PR port-pmax/15924 from Gregory McGarry.
2002-03-15 13:23:34 +00:00
thorpej
0b91bc440f Move files[] from open.c to globals.c, so that it's possible to
use libsa in an application where there are no file systems or
devices.
2002-02-23 05:44:24 +00:00
lukem
da694bd77b fix spelos 2002-02-22 12:46:53 +00:00
thorpej
15bffcdeed Add a comment describing what SA_USE_LOADFILE is for. 2002-02-17 23:22:22 +00:00
thorpej
0d210931e3 Add a missing "static". 2002-02-17 23:19:00 +00:00
thorpej
bf9a052aa4 Add EOFFSET. 2002-02-17 23:18:32 +00:00
reinoud
e858ed8fa4 Not all ports use the `offset' in their calulations and on those platforms
compile errors are generated due to it. By explicitly using `offset=offset'
the variable is used in the compilers view and is optimised away anyway.
2002-02-11 20:25:56 +00:00
tv
8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
jmc
2229499bfb Don't make clean and cleandir depend on the lib subdir. Just check for it's
existance before running the submake. This makes it possible to run a
make build (which runs cleandir before make obj) in a r/o source tree
2001-11-21 22:10:54 +00:00
lukem
2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
tv
4446c00002 Undefine DESTDIR; we don't want the special DESTDIR <bsd.lib.mk>
handling for kernel libraries.

XXX this build method should be replaced by something more sane
2001-11-14 21:59:31 +00:00
christos
c89e803d30 Remove USB copyrights. The coff and elf loading code did not come with BSD4.4. 2001-11-09 19:27:25 +00:00
scw
f1defc3543 To avoid backwards seeks on sequential devices (eq. QIC tapes), read all
the program headers in one operation into an internal buffer.
2001-11-09 18:31:08 +00:00
thorpej
0971f93345 Make the ELF loadfile routines byte-order independent when used in
a non-_STANDALONE environment (e.g. installboot(8)): internalize and
externalize the exec, program, and section headers as necessary.

Reviewed and OK'd by Christos.
2001-10-31 21:24:09 +00:00
thorpej
a43b4351a8 Oops, committed wrong copy of file in previous revision. 2001-10-31 20:22:22 +00:00
thorpej
90aee7593a Add standalone 64-bit to/from {big,little}-endian routines. 2001-10-31 20:19:52 +00:00
thorpej
e727e3f180 Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly.  BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
2001-10-31 17:20:45 +00:00
thorpej
4810d73020 Build the loadfile() a.out, ECOFF, and ELF back-ends as separate
objects.
2001-10-31 01:51:42 +00:00
thorpej
91626c3515 Split the exec formats included by loadfile() into separate files.
Primary goal: explcitly select which ELF format (elf32 or elf64) to
support for a cross tool which uses loadfile().
2001-10-30 23:51:03 +00:00
thorpej
74eebee33c Add standalone byte-swapping routines that don't require testing
the system's byte-order:
- host to {big,little}-endian {16,32}
- {big,little}-endian {16,32} to host

These are not intended to be used in libsa directly, but are rather
intended to be used by host tools which may use libsa routines (such
as loadfile()) which need to use explicit byte-ordering.
2001-10-30 23:35:33 +00:00
jdolecek
a8fcba2901 Fix compilation on Alpha with ARP_DEBUG.
Fixes kern/6440 by R. C. Dowdeswell
2001-10-18 19:00:38 +00:00
minoura
12ea5d8238 Add changedisk_hook().
Machine-dependent code can eject the floppy to prompt the next volume in it.
(Or add another method in devsw?)
2001-09-28 15:15:24 +00:00
wiz
4c99916337 va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).

Improved by comments from enami and christos -- thanks!

Heimdal/krb4/KAME changes already fed back, rest to follow.

Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
tsutsui
cf574991b8 Add a small version of memmove() for libsa.
Mostly identical with libsa/bcopy.c.
2001-09-02 07:04:16 +00:00
bjh21
acf574f63e When loading ELF, zero out:
The e_shstrndx field in the ELF header, since we don't load .shstrtab.
The sh_name field in each section header, for the same reason.
The sh_offset field for any section we don't load.

This means the kernel has some chance of knowing what it's being given.  It
also means that the behaviour of old kernels with new loaders should be
deterministic (if not terribly useful: they still can't find the symbol
table).
2001-07-31 22:11:57 +00:00
bjh21
30f144749a G/C "off", since it was just tracking the difference between maxp and elfp. 2001-07-31 21:09:52 +00:00
bjh21
67a82e1d4e Fix a small memory leak when counting the size of the symbol table (shp was
ALLOC'ed if (LOAD_SYM|COUNT_SYM), but FREEd if (LOAD_SYM)).
2001-07-31 20:03:03 +00:00
bjh21
1a35da3617 When loading an ELF kernel, don't load all the STRTAB sections. Instead, just
load those STRTAB sections that are referenced by a SYMTAB that we're loading.

The main advantage of this is that (at least with the binaries output by my
ARM ELF linker) this removes the need to seek backwards through the file, which
is a big win when loading a gzipped kernel.

While we're here, don't allocate space for string tables we don't load.
2001-07-31 19:20:29 +00:00
fvdl
3350f68f80 Avoid warnings about uninitialised usage. 2001-07-19 18:55:38 +00:00
wiz
1bc6d2cee9 Fix typo (`information' has an 'r'). 2001-07-19 16:13:00 +00:00
christos
366971a414 Back out previous. The booter will need to find the symbol table itself,
as explained in the code.
2001-07-13 17:43:23 +00:00
christos
6711e49228 From Nigel Pearson: Make SYMS and NSYMS work on ELF.
The MacOS booter needs them.
2001-07-13 17:17:12 +00:00
thorpej
23a3a54650 libkern.h now has the ctype routines. 2001-04-05 04:39:02 +00:00
hubertf
267271c1b2 Explain some SA_* options - reading compressed kernels, netboot
Useful for stripping down bootcode.
2001-03-31 09:45:11 +00:00
sommerfeld
5348dfb6ac Have recursive make invocations depend on the .MAKE pseudo-target so
make knows to handle them specially.
2000-12-05 17:01:19 +00:00
tsutsui
99d2177add Don't try to load a.out header if there is no space for it before text. 2000-12-03 02:53:04 +00:00
simonb
cdfbd303f9 Fix tyop in comment. 2000-11-26 03:31:20 +00:00
tsutsui
071bf9bca9 Don't print "]" if loading kernel does not have symbol table. 2000-11-11 09:25:12 +00:00
matt
c4e14613b2 dos_unmount is only is dos_close is present but so conditionalize it like
dos_close.
2000-11-09 01:55:31 +00:00
matt
6c15ee2986 avoid pointer addition on void pointers 2000-11-08 19:38:12 +00:00
thorpej
29b685b9f0 Introduce a way for boot programs to modify the behavior of
bootp().  Add a BOOTP_PXE flag which causes bootp() to send
"PXEClient" in the DHCP class field.

Derived from similar code in FreeBSD.
2000-11-02 03:22:23 +00:00
thorpej
abf350ddcf Sprinkle some const -- gets things out of the .data segment, which
is important in the i386 boot blocks (grmumble).
2000-11-02 00:34:51 +00:00
thorpej
904d7ceb3c Add a standalone MS-DOS file system reader package, lifted
from FreeBSD, and modified use NetBSD's already-existing
MS-DOS file system data structure definitions, rather than
defining our own.
2000-11-02 00:25:05 +00:00
ragge
aeb756f1b5 Add define NO_MID_CHECK that avoids checking of the a.out mid field. 2000-11-01 14:23:04 +00:00
thorpej
9516ee90da Split the UDP routines out of net.c. 2000-10-25 01:49:55 +00:00
takemura
c6304c954b Add LIBSA_RENAME_PRINTF to solve conflict with prototype definition of
printf() and etc in header files of Windows CE native compiler.
2000-10-21 13:48:06 +00:00
lukem
2a5013bcd3 show "press return" instead of "type return", since it's a key name and
not the actual word...
2000-10-02 23:35:54 +00:00
castor
5e29a96b48 Make standalone in_cksum work on little-endian machines, too, courtesy of
Jeff Smith, <jeffs@geocast.com>.
2000-03-31 19:55:09 +00:00
augustss
1279e67b6e Kill some more register declarations. 2000-03-30 12:19:46 +00:00
drochner
f458367b3f cosmetics: remove double semicolon, whitespace 2000-02-03 19:53:03 +00:00
cgd
fbf9177d1b provide stat() and fstat() here for standalone programs' use 2000-02-03 02:00:31 +00:00
tsutsui
11c8f56d48 Revert STRIPPROG -> STRIP 2000-02-01 05:25:24 +00:00
tsutsui
e61f177ab1 STRIP -> STRIPPROG 2000-01-19 16:29:54 +00:00
hannken
2b8c4ea32e Fix IS_DATA and IS_TEXT. PF_X and PF_W are valid on p_pflags, not p_ptype. 1999-12-29 11:08:02 +00:00