Commit Graph

289 Commits

Author SHA1 Message Date
mycroft 6698d239ca Use the U suffix to insure unsigned values are treated as such. 1995-12-20 23:30:57 +00:00
mycroft e28d5e9168 Use #pragma only for 2.0 <= GCC < 2.7. 1995-12-20 18:09:24 +00:00
mycroft e09cc4cf9d Use alternate structure packing method added in GCC 2.7. 1995-12-20 17:58:55 +00:00
mycroft dab27d0c21 Use explicit integer sizes. Adjust constraints for GCC 2.7.2. 1995-12-20 07:53:09 +00:00
mycroft 086845d5d3 Move the initialization of proc0's TSS and LDT to the end of cpu_startup(),
and switch to dynamically allocating the TSS.
1995-10-12 17:56:36 +00:00
mycroft 2765bc7b44 Go back to statically allocating the GDT entries for proc0. 1995-10-11 19:32:31 +00:00
mycroft ddbde6d166 Remove reference to dead variable. 1995-10-11 06:24:28 +00:00
mycroft 72805df917 Various changes from John Kohl and me:
Map kernel stacks only at unique addresses.
Use one TSS per process.
Add sysarch calls for modifying IOPL and the I/O permission bitmap.
Add a compacting GDT entry allocator, for TSS and LDT selectors.
Enable modifying %fs and %gs with PT_SETREGS.
Sanitize various bits of code.
1995-10-11 04:19:29 +00:00
mycroft 25f53a986f Add USERMODE() and KERNELMODE() macros, and use them. 1995-10-10 04:45:03 +00:00
mycroft 0ad97bc5c9 FreeBSD binary compatibility module, from Noriyuki Soda. 1995-10-10 01:22:31 +00:00
mycroft 8096b83664 Eliminate soft segment descriptors; instead use a functional interface for
creating segment descriptors.  Add the duplicate system call gate used by
BSD/OS 2.0 executables.  Prototype setsegment() and setgate(), and fix a bogon
caught by this.
1995-10-09 06:34:11 +00:00
fvdl 9ca2821d22 A couple of definitions added for previous changes. 1995-08-27 20:57:18 +00:00
mycroft 54c9a1df90 Replace splnet() with splsoftnet(). Add splnet(). 1995-08-13 00:22:40 +00:00
mycroft ce7cc0c18a Move the `used fpu' flag into mdproc, so it can be referenced when a process
is swapped out.  Implement process_{read,write}_fpregs.
1995-08-06 05:32:59 +00:00
cgd 479fb9e45b add <sys/cdefs.h> inclusions. namsspace-protect physadr, label_t
def'ns against _POSIX_SOURCE and _ANSI_SOURCE.
1995-07-06 03:39:32 +00:00
mycroft 9fbf4d6f47 Make hardware interrupts always block all software interrupts. 1995-07-04 07:09:53 +00:00
cgd c83f9c5568 remove unused cpu_exec() definitions. moved "broken swap" markers, for
ports that still need it, to types.h.
1995-06-28 02:55:18 +00:00
cgd db66a978e9 IdlePTD has been gone for a while. PTDpaddr now exists. 1995-06-26 13:25:29 +00:00
cgd 2d49c3885b clean up definitions of ctod(), dtoc(), ctob(), btoc(), btodb(), and
dbtob().  remove unused definitions of ctos(), stoc(), and dtob().
1995-06-26 06:55:38 +00:00
jtc 55fbbc705d Wrap with #ifndef _XXX_FLOAT_H_/#define _XXX_FLOAT_H_/ ... /#endif. 1995-06-20 20:45:22 +00:00
jtc 1d65cdd4ab #include <sys/cdefs.h>.
Wrap __flt_rounds() declaration with __BEGIN_DECLS/__END_DECLS.
1995-06-20 20:32:22 +00:00
pk a47021162b Prototype sysarch(2) (Thorsten Lockert, PR#1096) 1995-06-05 19:36:23 +00:00
mycroft 4ea6427a03 Increase size of imask[]. Sigh. 1995-06-04 20:22:50 +00:00
mycroft 8bb190daa3 Add a separate IPL_IMP, used by splimp(). 1995-06-04 08:29:41 +00:00
mycroft d69f7885b7 Allow [nh]to[hn][ls]() to do constant folding. 1995-06-01 17:19:18 +00:00
jtc 8aa6c376b6 KERNEL -> _KERNEL 1995-05-11 16:52:54 +00:00
mycroft 4e9f66f9ca Improve Linux signal emulation, and emulate the modify_ldt() call. 1995-05-07 02:59:30 +00:00
mycroft 6e02c4b647 Add a copy of the user code and data descriptors in the GDT. 1995-05-06 20:30:14 +00:00
mycroft 7a69a9c95b Define i386_[gs]et_ldt_args here. 1995-05-06 19:19:57 +00:00
cgd 8703076975 define BROKEN_SWAP and/or cpu_swapout as appropriate. 1995-05-05 03:41:51 +00:00
mycroft 40b72cc7a2 Wrap NGDT and NLDT in parens. 1995-05-04 05:37:39 +00:00
mycroft 029176e96b Add PCB_USEDFPU. 1995-05-03 00:08:19 +00:00
mycroft 4eea138a48 Add sc_gs and sc_fs. Move sc_onstack and sc_mask to end. 1995-05-01 14:14:11 +00:00
mycroft bbfcbb8483 Add VM86 segment registers to trapframe. 1995-05-01 14:13:26 +00:00
mycroft ae11bd216c Remove historical garbage. 1995-05-01 08:14:25 +00:00
mycroft 5a7e987371 Make md_regs a pointer to a trapframe. 1995-05-01 07:56:20 +00:00
mycroft 8b51849f9d Make this includable from locore. Remove unused GDT and LDT slots. 1995-05-01 07:37:43 +00:00
mycroft c2e46efab2 Rename ibcs2_sigflags to __spare, but leave the space for now. 1995-05-01 04:53:24 +00:00
mycroft 92e9818c88 Expose idt[] here. 1995-05-01 04:49:51 +00:00
mycroft b8d3de2758 Add pcb_cr0. 1995-05-01 04:49:28 +00:00
christos de42a28a1b - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
1995-04-22 20:24:40 +00:00
mycroft 20cf41aa94 Clean this up a bit:
* Abstract the conditional for immediate port numbers, and make it always
false if not optimizing.
* Add some whitespace to the string functions to make them more readable.
1995-04-22 03:59:59 +00:00
mycroft b4813fa24a Alias delay() to DELAY() for mi code. 1995-04-21 21:56:01 +00:00
mycroft 22cefc03bc Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.
1995-04-10 12:41:29 +00:00
mycroft e957423a98 Move fp_except and fp_rnd definitions to machine/include. 1995-04-09 21:31:58 +00:00
fvdl fb00b736fd Arch dependant defs for Linux. Just signal stackframe definition for now. 1995-04-07 22:31:19 +00:00
jtc ec2bda0f0b Changed FLT_ROUNDS from constant to a call to __flt_rounds(), so that the
current rounding mode is accurately reported.
1995-04-07 15:00:54 +00:00
christos 0fd8f81d69 Reorganization of the signal frame and ucontext to make it shareable with
the sparc code. Added trap defines.
1995-03-31 02:51:37 +00:00
jtc 71ab4ed9dc KERNEL -> _KERNEL 1995-03-28 18:13:48 +00:00
jtc f86410093b Changed name of __weak_reference() to __indr_reference(). They really
are indirect references, and I want to add a real __weak_reference()
macro to <machine/cdefs.h> soon.
1995-03-23 19:58:48 +00:00
cgd b8403d582b don't be so quick to cast macro arguments to unsigned; if the
arguments are really off_t's (e.g. to btodb), then you can lose
information.  This was the "> 4G file systems don't work" bug; physio
uses btodb, which was broken.
1995-03-18 07:22:43 +00:00
christos bbcbf6ccbf Added defines for svr4_sysarch() 1995-02-01 01:40:25 +00:00
jtc 830a53e394 ANSI says that <stdarg.h>'s va_end macro must expand to a void expression.
For consistancy, I'm changing <varargs.h> too.
1995-01-28 01:51:46 +00:00
mycroft 7b87637bb3 Rearrange struct reg to match what the rest of the world expects. 1995-01-26 18:12:03 +00:00
christos cf1d6b55f3 Modify the floating point part of our context to reflect reality. 1995-01-25 04:18:52 +00:00
jtc 9540190d45 This file, which will be included by <sys/cdefs.h>, will contain macros
such as __warn_references() and __weak_reference() which are actually
machine dependant.  This will make it easier for ports that are being
bootstraped with ELF and ECOFF based toolchains.

This change also introduces a new macro, _C_LABEL(x).  _C_LABEL expands
its argument, an identifier, to a character string of the identifier
name as it is represented in an object file.

For most ports, _C_LABEL(x) will expand to "_x", for ELF based ports
_C_LABEL(x) will expand to "x".
1995-01-19 01:38:36 +00:00
mycroft ecef8fddfa Remove PSL_USERCLR, and add a PSL_USERSTATIC. Change the bit descriptions to
more closely match the 386 manual.  (Probably the mnemonics should be changed,
too.)
1995-01-15 00:57:50 +00:00
jtc d7a8b2964f Only define sig_atomic_t when _ANSI_SOURCE is defined. 1995-01-10 19:01:00 +00:00
christos b006bf7e68 Added missing forward declaration 1995-01-09 01:05:24 +00:00
christos e1c97cde06 New file for signal handling and {g,s}etcontext(). 1995-01-08 21:23:31 +00:00
mycroft d16dcced99 Add interrupt sharing types. 1995-01-03 01:19:19 +00:00
cgd 7b8535b554 do the right thing with strange-sized varargs objects. 1994-12-28 22:45:42 +00:00
cgd e5049f4d59 make the definition of _JBLEN mach. dep. header-dependent. 1994-12-20 10:36:27 +00:00
mycroft d2d4dc4654 Use immediate constants for port numbers < 0x100. 1994-11-20 21:36:44 +00:00
christos f63115591a Included <sys/cdefs.h> since this file is now using __signed.
It broke non gnu compilers.
1994-11-20 18:50:18 +00:00
mycroft e075f8c13d Convert port, IRQ, and DRQ numbers to ints. 1994-11-18 22:18:35 +00:00
mycroft 1c5ac2e88c pcb.h requires segments.h now. 1994-11-08 23:09:21 +00:00
mycroft 205d425f2f As pointed out by Bruce, splsoftclock() needs to process pending interrupts
when lowering the priority.  Do this by simply calling splx().  For the
benefit of NFS (for now), modify splx() to return a value so that
splsoftclock() does.  This work is optimized out for every use of splx()
that ignores the value, so it only affects relevant code.
Also, clean up this file a little.
1994-11-06 01:37:47 +00:00
mycroft c2191a2ad0 Fully prototype ssdtosd() and sdtossd(). 1994-11-05 03:20:36 +00:00
mycroft 34c4570d61 Only use ssdtosd() when creating, expanding, or copying the LDT. Keep a copy
of the result in the PCB so it can be loaded quickly on context switches.
1994-11-05 03:17:33 +00:00
andrew 20cc8b6c5c Increase NKPDE to cope with 64MB RAM. 1994-10-31 06:30:52 +00:00
cgd 022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
cgd 77e4fe47ef update for new syscall args description mechanism 1994-10-20 04:43:21 +00:00
cgd f501e4e128 make <stdarg.h> a symlink, and clean up ports' stdarg.h and varargs.h files. 1994-10-15 04:57:29 +00:00
cgd 49c34d3337 move arch dependence to archs. clean up a bit. deal with weird MAXPARTITONS. 1994-10-14 18:26:22 +00:00
mycroft c3fa5122d6 #include cpufunc.h from pmap.h. 1994-10-09 15:00:38 +00:00
mycroft e19b0472c8 Make multiple-inclusion protection consistent. 1994-10-09 13:33:53 +00:00
mycroft c87fbde918 Fix typo. 1994-10-09 13:31:19 +00:00
mycroft 701c0f0058 Eliminate i386_saved_state. 1994-10-09 13:27:07 +00:00
mycroft 8295e4b8f2 Nuke dirty(). 1994-10-09 13:23:21 +00:00
mycroft ebbc8e0476 Make the conversion macros more consistent. 1994-10-09 13:20:37 +00:00
mycroft 18830ce0ea Define pmap_update() using tlbflush(). 1994-10-09 13:11:18 +00:00
mycroft 47db98b4d9 Eliminate register restrictions where possible. 1994-10-09 13:02:56 +00:00
mycroft 112dac786c Make reg, frame, and sigcontext more similar. 1994-10-09 12:39:05 +00:00
mycroft 13c1794b82 Eliminate tf_isp. 1994-10-09 09:20:28 +00:00
jtc badcc17a6d Add constants required by XPG3 1994-10-05 17:16:29 +00:00
jtc 62db8972b1 Updated bde's comments wrt. i387 control word settings so that they
describe NetBSD, rather than 386BSD 0.1.
Removed 386BSD and BDE control word constants, since we don't need and
will never use them.  However, The iBCS control word constant is kept,
since we might want to use it in the iBCS binary compatibility code.
1994-09-22 00:37:13 +00:00
mycroft 1c8e17fb63 Prototype spllower(). 1994-09-19 05:05:15 +00:00
jtc bdd26b125c asm -> __asm (PR #463). 1994-09-10 01:07:08 +00:00
mycroft 0d3651018e Make kernel_pmap a macro that points directly to kernel_pmap_store. 1994-09-09 23:58:48 +00:00
mycroft 4116a4243e Various changes:
* Inline some functions.
* Eliminate redundant calls to pmap_page_index().
* Reduce the number of TLB flushes in accordance with the i386 SSWG.
* Inline pmap_remove() in pmap_remove_all().  (Most if it is unnecessary.)
* Allocate pv_entry's in pages, and keep a list of free entries in each page,
and a list of pages with free entries.  (Trying to reduce malloc() overhead,
and improve locality of reference.)
* Remove a couple of macros that aren't really useful.
* Remove pmap_kernel() completely.
1994-09-07 20:48:52 +00:00
jtc b3b55d02f1 Misc changes to make this file more like the asm.h headers used by other
architectures:
	Renamed _C_FUNC() to _C_LABEL()
	Renamed _ASM_FUNC() to _ASM_LABEL()
	Merged _BEGIN_ENTRY with _ENTRY
	Renamed _END_ENTRY to _PROF_PROLOGUE

When assembling with profiling enabled, set up stack frame before calling
mcount() in _PROF_PROLOGUE.  Also omit emitting .long 0's, as they are no
longer used by the profiling code.
1994-09-02 05:02:47 +00:00
mycroft d20de15399 Add USPACE. 1994-08-24 19:32:36 +00:00
mycroft 01c2a3243e Add flags for iBCS2 compat. 1994-08-15 22:19:44 +00:00
mycroft 5f27568164 Eliminate struct pte and struct pde. 1994-08-15 14:46:45 +00:00
mycroft 60280d9735 Don't allow VM86 mode, for now. 1994-08-13 06:55:47 +00:00
deraadt ffb9d6e173 document cyrix configuration registers 1994-08-03 21:39:16 +00:00
cgd 3fbc338a62 define __BIT_TYPES_DEFINED__ for compatibility with things like BIND and nvi 1994-07-20 05:44:19 +00:00
mycroft 551f7bc780 Since we're no longer using xchg instructions, there's no reason to prefer
a q reg over and other.  Also, fix some types in the case of _POSIX_SOURCE.
1994-07-15 21:10:21 +00:00
deraadt 50b13742e4 _MACHINE_VARGS_H_ 1994-06-29 00:45:01 +00:00