Commit Graph

745 Commits

Author SHA1 Message Date
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
fvdl f22b808267 Make new gas happy. Use movzbl instead of xorl + movb. 2001-09-21 14:14:30 +00:00
fredette 7aaa6a4bc4 On the 68010, don't bother with the by-8-longwords loop, instead
only 16-bit align the region and use loop mode with longwords
to do the bulk of the work.

On the 68020+, fixed an optimization bug where all regions that start
on odd addresses would not be properly longword aligned.
2001-09-06 21:30:15 +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
matt 28c81ffc15 7450 requires a sync before the the isync (MPC7450UM - 3.4.4.8) 2001-08-22 21:19:58 +00:00
itojun 9fe945f2fe sync argument/return type of [hn]to[nh][ls] to XNET 5.2 (uint{16,32}_t).
as discussed on tech-net.
2001-08-22 07:42:07 +00:00
jdolecek c495131fe3 Move _insque()/_remque() to libkern. Once remaining uses would
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
lukem 9bbc26f3dc convert to ansi knf, and fix a bug where the last arg was incorrectly
'u_char' instead of 'int' (per the prototype and usage and other scanc
implementations)
2001-08-09 08:03:34 +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 ac8a2539c1 Provide bcopy() here. 2001-07-13 00:04:00 +00:00
perry 5624bbb1d4 restore bzero and bcmp prototypes for now -- this has to be hashed out. 2001-07-07 17:22:25 +00:00
simonb 5439e1a9ff Put the prototypes for bcmp() and bzero() back (ifdef _STANDALONE) so that
libsa builds again.
2001-07-07 12:23:43 +00:00
perry 7ab9c62227 Remove bcmp and bzero prototypes. And yes, I actually checked and
tested this time. (Slap self repeatedly.)
2001-07-07 05:42:16 +00:00
toshii 70e10fb682 Remove bcmp, bcopy and bzero. We don't need them as they aren't
called from asm code, and we shouldn't have them if we don't need them.
2001-07-06 17:35:44 +00:00
kleink e69c885f3e Sync with libc: use bzero-based assembly version of memset(). 2001-07-01 11:55:36 +00:00
fvdl 9b4c0e34d2 Initial commit of the port to AMD's upcoming 64 bit architecture, the
x86-64. Since there's no hardware available yet, this port is only
known to run on the Simics simulator for at the moment, and as such
uses the PC devices that it simulates for now. It will be developed
more (and cleaned up) as the hardware becomes available.
2001-06-19 00:19:12 +00:00
fredette 49fda862f9 When MACHINE_ARCH is m68000, compile ffs.c and random.c
instead of ffs.s and random.s, and sneak the libgcc
integer support routines into the list of library objects.
2001-05-16 03:30:39 +00:00
fredette 332aa50acb Use the EXTBL macro where we want the extbl instruction.
On the 68010 this expands to an extw/extl combination.
2001-05-16 03:14:12 +00:00
fredette 8ba384c841 On the 68010, we are forced to do bytewise compares
and copies if the two addresses aren't of the same
evenness.
2001-05-16 03:06:41 +00:00
kleink 95fa77ab80 Make this work for PIC (as opposed to pic) without taking chances of fitting
__ffstab into a GOT13 relocation; from Eduardo Horvath.
2001-05-13 20:03:45 +00:00
lukem 85772a1cef remove some lint 2001-04-30 02:34:58 +00:00
ross 2df695b1e4 o IEEE 754 floating-point completion code.
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-26 03:10:44 +00:00
thorpej 4747025b48 ctype-like functions are now in libkern. 2001-04-18 15:40:58 +00:00
thorpej 23a3a54650 libkern.h now has the ctype routines. 2001-04-05 04:39:02 +00:00
thorpej db5854a62c Build strtoul.c 2001-04-05 04:38:33 +00:00
thorpej 554aa34ee7 Add ctype routines. 2001-04-05 04:38:06 +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
cgd b7ad250ab1 copy from lib/libc/arch/mips/gen 2001-02-27 19:45:26 +00:00
enami 3d31264640 Don't set ARCHSUBDIR to empty string. 2001-02-18 22:38:50 +00:00
bjh21 d308c5c5ed Use MACHINE_CPU to find the architecture subdir, or MACHINE_ARCH if that
exists.  Same algorithm as libc uses.
2001-02-16 16:58:27 +00:00
simonb 0292c3474f Use arm arch directory for arm32 as well as arm26. 2001-02-15 23:17:44 +00:00
bjh21 da9d806354 Move arm32 over to using the shared ARM libkern. 2001-02-15 22:44:09 +00:00
msaitoh 3c31811206 don't profile (use NENTRY() and ALTENTRY()) 2001-02-14 21:04:17 +00:00
msaitoh 9af8d0bdad ENTRY() 2001-02-14 18:14:37 +00:00
msaitoh 2633a5dcb5 _C_LABEL() 2001-02-14 17:57:31 +00:00
bjh21 e68a8d59fa Sync with libc for licence update. 2001-01-23 19:12:29 +00:00
itojun f039f89ec5 prepare for sh3e[bl] split 2001-01-04 06:53:45 +00:00
bjh21 af14995e51 Create a shared set of ARM sources for libkern and move arm26 over to using
them.

These are identical to the current arm32 sources with the following exceptions:
 - References to C labels are wrapped in _C_LABEL().
 - Function returns have an alternate version inside #ifdef __APCS_26__.
2000-12-29 20:51:56 +00:00
bjh21 d839461405 Pull across arm32 rev 1.4:
ALTENTRY() must die.
2000-12-16 14:38:50 +00:00
bjh21 0b45f78538 Pull across arm32 rev 1.5:
ALTENTRY() must die.
2000-12-16 14:38:06 +00:00
mycroft 6d9be19e76 ALTENTRY() must die. 2000-12-14 22:00:20 +00:00
bjh21 1e720616fb Copy from libc 2000-12-14 19:51:51 +00:00
bjh21 af87db0411 Use _C_LABEL 2000-12-14 19:50:38 +00:00