Commit Graph

47326 Commits

Author SHA1 Message Date
bouyer 3e3f9c7795 #include machine/bswap.h and remove -lutil. 1999-01-15 13:32:05 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
lukem 97cc62d6c3 merge nsswitch into main branch 1999-01-15 13:04:10 +00:00
lukem de3b78d72a merge nsswitch into main branch 1999-01-15 12:48:41 +00:00
lukem f649503d99 merge nsswitch into main branch 1999-01-15 12:21:16 +00:00
castor 45a22daf10 allow generated kernel includes and support mips pubassym.cf mechanism 1999-01-15 10:57:36 +00:00
castor c729b2ffeb add support for locore_mips[13].S 1999-01-15 10:33:11 +00:00
castor 534c67a373 Protect defopt against -D_LKM 1999-01-15 10:07:12 +00:00
castor 84915f67d7 Fix typo in mips3_ConfigCache() -- mips3_L2CachePresent 1999-01-15 09:58:43 +00:00
castor cfdc52bfa9 Break out utility functions from locore.S 1999-01-15 08:44:27 +00:00
matthias 655a41ea73 Fix from Phil Budne (add missing prototypes) to make ld.so compile again
on the pc532.
1999-01-15 07:48:07 +00:00
matthias 2dff258464 Support BUFCACHE option (stolen from i386). 1999-01-15 07:43:48 +00:00
matthias 88b2c1662d Protect all defines in this file with #ifdef _KERNEL. At least the
definition of T_SLAVE will cause the bind build to fail. Thank's
to Phil Budne for noting this.
1999-01-15 07:42:48 +00:00
lukem 72381e166d shut up `unused label' warning with %options yylineno, using a disgusting hack:
#ifdef __GNUC__
		if (0)
			goto find_label;
	#endif
:-)
1999-01-15 05:22:34 +00:00
castor 7ad987bb7c Userland support for 64-bit safe sigcontexts. 1999-01-15 03:53:33 +00:00
castor 4720afb463 Avoid introducing new prefix '__JB' -- '_JB' is fine. 1999-01-15 03:43:56 +00:00
castor e20f6d6203 * Elimination of UADDR/KERNELSTACK
Affected files:
	include/mips_param.h, include/pcb.h,
	mips/locore_mips1.S, mips/locore_mips3.S,
	mips/mips_machdep.c, mips/vm_machdep.c

   Issue:

So far, NetBSD/mips has not successfully got rid of fixed-address
kernel stack.  USPACE (two 4KB pages) of each process has two distinct
KSEG2 addresses, both refer to a single physical storage; one address
for fixed range [ UADDR .. KERNELSTACK ), and another for "normal" KSEG2
address which was allocated by kernel memory manager and unique to each
others of processes.

"Doubly mapped" USPACE complicates context switch.  Both address ranges
have to be managed with a special care of "wired" TLB entries which
are never replaced until next context switch to ensure no TLB miss for
USPACE access.  It's equally crumbersome that MIPS processor's cache
machinary gets be confused about USPACE contents because there are two
distinct KSEG2 addresses to manipulate one physical storage.

   Solution:

Purge KERNELSTACK constant for kernel stack pointer and replace
it with process unique values.  Kernel stack bottom is located at
'curproc->p_addr + USPACE'.  Context switch is simplified as it unloads
half of TLB hardwiring burden.  It just manages the unique KSEG2 address
of each USPACE to be wired.  As the side effect, switch_exit() has no
MIPS processor ISA dependent code anymore.  It switchs kernel stack to
proc0's USPACE which has KSEG0 address and no need of TLB entry.

* Extensive use of 'genassym.cf'

To hide target port dependent and/or processor register size dependent
constants from assembler routines, 'genassym.cf' now has an extentive
set of definitions for various constants and offset values of
structural objects.  This change will contribute possible NetBSD/mips64
portability too.

* Separation and rename of locore_r2000/_r4000.S

Those files are now indepedent standalones from locore.S to ease
maintainance works, and renamed to match MIPS processor ISA version.

* Changes in kernel mode exception handlers

Kernel mode exception handlers hold exception contexts by pushing a
certain set of register values on stack for resuming kernel mode
processing.  This context is now represented with 'struct trapframe',
which is smaller than full scale (user mode) exception context 'struct
frame'.  Stack consumption of kernel mode exception services is now
similar to 4.4BSD/mips.

* Relocation of exception frame

User mode context 'struct frame' is moved to the very bottom of kernel
stack at 'curproc->p_addr + USPACE - sizeof(struct frame)'  This change
saves a bit of instructions on every return to user processes as it
eliminates reference to global variable 'curpcb' each time.

* Refurblished DDB backtrace routine

It's a growing concern to maintain stacktrace() code correctly.  It
could be simplified by enforcing special arrangements for some of
obscure locore routines which violate usual coding conventions.

New backtrace code searchs for certain instructions peculiar to any of
function tails.  Specifically, "jr ra" for normal function returns, "jr
k0" for MIPS1 exception handlers and "eret" for MIPS3 handlers.

* Support for 64-bit safe user code
    Affected Files:
	${ARCH}/include/pubassym.cf lib/libc/arch/mips/gen/*setjmp*
	include/setjmp.h mips/include/[lots] mips/mips/[lots]

    Solution:

	We define macros REG_L/REG_S and SZREG for loading and storing
	registers and for the size of registers.  The exact meaning
	of these is controlled by a macro (currently _MIPS64) which
	allows one to treat the registers as either 32-bit or 64-bit.
	There are data types mips_reg_t and mips_fpreg_t which represent
	the true register sizes, and avoid confusing register_t.

	We needed a way to dynamically gen the structure sizes of things
	like sigcontext for setjmp.h, so we defined a pubassym.cf for
	libc routines like setjmp and longjmp.

	NetBSD/mips allows ${ARCH}'s to be defined which preserve
	all 64-bits of registers across user context switches.  There
	are still a few niceties to clean up for kernel mode context
	switches.

* Support for QED 52xx processors
    Affected Files:
	mips/locore_mips3.S mips/pmap.c include/locore.h

    Issue:
	The QED 52xx family of processors are targeted at low cost
	embedded systems, (i.e. CPUs ~$30) for systems like routers, printers,
	etc.  We have added preliminary support for some of the idiosyncrasies
	of this processor, e.g. no L2 cache, etc.  More work needs to be
	done here because with a modest 2-way  L1 cache, some of the rampant
	flushing has significant performance implications.  However,
	it doesn't crash, which is a start.

    Solution:
	A routine for flushing the cache based on virtual addresses was added;
	a routine which deals with the two-way set associativity of the
	5230 L1 cache was added, accomodations to 5230's instruction hazards
	were added.


* TLB Miss code for mips3/mips4 processors cleaned up significantly.
    Affected Files:
	mips/locore_mips3.S mips/vm_machdep.c include/locore.h mips_machdep.c
    Issue:
	The TLB Miss handler exceeded the allowed size, which wasn't
	a problem because there was no handler for when the processor
	was in 64-bit mode.  The handler for invalid TLB exceptions
	also appears to have much vestigial code, which made it
	difficult to understand.

    Solution:
	Use the XCONTEXT register to store a pointer to the segment
	map table, this coupled with removing some dead code allows
	the handlers to fit.
1999-01-15 01:23:12 +00:00
mrg bb4584ec40 look for /^Version:/ to find the boot block version, rather than using
the "version" file's RCS id (which is useless for branches).
1999-01-15 00:48:03 +00:00
augustss d7a044aeec Add -m option to display minutes left. From dbj@netbsd.org 1999-01-15 00:29:02 +00:00
pk 6a8119ff1d Sanity check from Matthias Drochner. 1999-01-15 00:26:24 +00:00
thorpej d8f3aefec7 Use M_RAIDFRAME. 1999-01-14 22:49:05 +00:00
kleink 6348b7d5b5 * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
1999-01-14 22:48:18 +00:00
thorpej 71242ada70 Add M_RAIDFRAME. 1999-01-14 22:38:41 +00:00
he 8344625106 Apply patches for mtrace in bin/5598 by yours truly.
This adds decoding of more error and result codes when tracing through
cisco routers running PIM and/or MBGP.
1999-01-14 21:54:10 +00:00
he 94a54434a5 Fix 'pand' MMX instruction opcode (and disassemble).
Crucial assistance from Bill Sommerfeld on port-i386.
Fixes bin/6809 by yours truly.
1999-01-14 21:25:21 +00:00
oster 4128f9df1e Duh... check that malloc() hasn't returned a NULL *before* we zero the buffer,
not after. Pointed out by Michael Graff.
1999-01-14 20:29:38 +00:00
castor a6f7b8ff0e Add defopt opt_mips_cache.h and allow 'clock' device to not require the mc6xx files 1999-01-14 18:51:31 +00:00
kleink f220184aa1 Make REGISTER_PREFIX actually work, and add a REGISTER_PREFIX_OPTIONAL compile-
time option.
1999-01-14 18:47:20 +00:00
castor a84ec5a3c1 * Create mips_reg_t data type to allow register size to be
decoupled from long or int or long long.  Define macros in asm.h to facilitate
  choosing these on a port by port basis.

* Create <machine/pubassym.h> mechanism to allow jmp_buf structure size
  to be calculated at system build time.

* Define _MIPS_BSD_SIM macro which specifies what calling style is appropritae
  for the architecture.  For 64-bit oriented systems set the Status Register
  to allow 64-bit instructions.

* Remove UADDR related macros because kernel U structure is now mapped
  normally.
* Separate cpu.h into cpu.h and cpuarch.h to keep things neat.
* Add support for QED 52xx processors
1999-01-14 18:45:45 +00:00
jtk 77b1ebc172 fix gcc complaint about assignment in truth value 1999-01-14 15:00:38 +00:00
pk 0372e36e3f device_register: recognize `lebuffer' and `isp' as controllers. 1999-01-14 13:08:24 +00:00
drochner 5c38fcea53 map the new "reset emulator" function to CTL-ALT-Backspace
(what somehow matches the effect on X11)
1999-01-14 11:57:48 +00:00
drochner d90442b612 add a "reset terminal emulator" command pseudo-keysym and call the
corresponding callback if one is hit
1999-01-14 11:44:54 +00:00
drochner 624d9f505f -actually reset the terminal emulator on close()
-add a callback to reset the terminal emulator by keyboard command
1999-01-14 11:40:58 +00:00
augustss 18ceacdd32 Add a reference to the USB documentation web site. 1999-01-14 11:07:44 +00:00
castor b60cd4e18b Remove bogus RCS Id. 1999-01-14 09:05:46 +00:00
castor 25c863649d Allow MD setjmp.h to specify attributes for jmp_buf, so more
stringent alignment requirements can be satisfied.
1999-01-14 09:03:37 +00:00
fair 2f886b8bd6 mtio.4 no longer missing 1999-01-14 08:35:46 +00:00
fair 2693a8ecf7 Rip out the VAX-specific stuff.
Rip out the (old) copy of sys/mtio.h that passed for documentation
of the tape ioctls - if we're going to be that lame, just tell 'em
to UTSL. Some other brave soul will have to do the documentation of
each specific ioctl beyond the comments in that file.

Write text about generic UNIX tape handling, which sucks and probably
always will.

This puts PR#5698 to bed.
1999-01-14 08:31:08 +00:00
fair 7f1164dca1 Add reference to mtio(4). 1999-01-14 07:52:52 +00:00
lukem f860489a38 remove "unused function yy_flex_realloc()" warning if using %options yylineno 1999-01-14 06:58:40 +00:00
fair 028004a8cc Document worked over for mdoc(7) and [nt]roff problems; also corrected
a few spelling errors. It would be nice to get a reference (authors, title,
date) to the proper USB specification in the SEE ALSO section.
1999-01-14 06:29:18 +00:00
ross 5709f532d1 Random compile nits in BHADEBUG code. 1999-01-14 04:47:18 +00:00
cgd ba831d2c43 update for present reality 1999-01-14 04:44:23 +00:00
cgd f3c3f37dc8 update for ed split 1999-01-14 04:26:46 +00:00
thorpej b29e386709 Domains are associated with protocol families, not address families. 1999-01-14 01:28:23 +00:00
thorpej 4b0e6bb4dc Domains are associated with protocol families, not address families. 1999-01-14 01:16:55 +00:00
thorpej 54cabada51 Garbage-collect some straggling netimp stuff. 1999-01-14 01:14:01 +00:00
sommerfe c09dbe4f28 Apply fix from PR2176, edited appropriately 1999-01-14 00:16:42 +00:00
sommerfe d6797d8b82 Apply patch as found in PR1892 1999-01-13 23:55:26 +00:00