Commit Graph

739 Commits

Author SHA1 Message Date
christos c8e246669c save cr2 for the benefit of linux emulation, and normalize use of pcb
in trap(), i.e. always initialize *pcb and use it instead of doing it
sometimes.
2002-02-16 16:22:03 +00:00
christos d47da1254f Fix comments. 2002-01-31 17:41:38 +00:00
rafal 37d3472889 Re-arrange GDT entries somewhat so that: (1) I can reserve the 8th entry for
BIOS-bug-avoidance [fixes part of my own port-i386/11299], and (2) lets you
have APM and COMPAT_MACHO in the kernel at the same time.  Also comments on
the special 8th entry and what else changing some of these values affects.

OK'ed by Frank.
2002-01-23 15:02:34 +00:00
drochner 5245358400 for ELF, put RCSID string into .ident section,
add __KERNEL_RCSID macro which is undefined in case of NO_KERNEL_RCSIDS
2002-01-13 12:44:31 +00:00
thorpej 2db4da1742 Fix some register constraints; specifically, the "port" operand,
if not an immediate, must be in a 16-bit register.
2001-12-28 06:42:40 +00:00
christos e59d5895b1 add a new function to the cpu struct's that can be called to print extra
cpu information after initialization.
2001-12-27 15:24:34 +00:00
thorpej 030d89cdf0 Use ANSI declarations for static inline functions, and give them
the __unused__ attribute.
2001-12-23 23:08:41 +00:00
jdolecek 845a3d15d2 rename (incorrect) SVR4_TRAP_CLOCK_SETTIME to SVR4_TRAP_GETHRESTIME - this
is what Solaris8 calls it
implement SVR4_TRAP_GETHRESTIME, though obviously only with microsecond accuracy

now clock_gettime(CLOCK_REALTIME, tp) works on Solaris8/i386
2001-12-21 07:02:23 +00:00
yamt 7ae83a7557 use #define<TAB> style.
pointed by enami.
2001-12-18 15:21:13 +00:00
fvdl e922d091ba Prevent gcc from reordering things such that instructions may fall out
of a range which is protected by spl/splx. Originally proposed by
YAMAMOTO Takashi (yamt@netbsd.org) on tech-kern. This change mirrors
the one done by Bill Sommerfeld on the i386 mp branch.
2001-12-18 10:12:28 +00:00
thorpej 51535d4bf5 Add support for dumping ELF-cormat core files. 2001-12-09 23:05:56 +00:00
sommerfeld 39424268c6 Use #if defined(FOO_CPU) instead of #if FOO_CPU just to be picky.
Spotted by Thomas Klausner.
2001-12-06 01:56:19 +00:00
thorpej 03efee5585 * Allow machine-dependent code to specify hooks for ptrace(2)
(__HAVE_PTRACE_MACHDEP) and procfs (__HAVE_PROCFS_MACHDEP).
  These changes will allow platforms like x86 (XMM) and PowerPC
  (AltiVec) to export extended register sets in a sane manner.

* Use __HAVE_PTRACE_MACHDEP to export x86 XMM registers (standard
  FP + SSE/SSE2) using PT_{GET,SET}XMMREGS (in the machdep
  ptrace request space).
* Use __HAVE_PROCFS_MACHDEP to export x86 XMM registers via
  /proc/N/xmmregs in procfs.
2001-12-05 00:58:05 +00:00
jdolecek 492b500611 Add couple hooks, needed primarily for NCR 53C90 MCA card driver:
* add flag to explicitly specify if the DMA should be done as 16bit or 8bit
* add flag to specify the DMA should happen via I/O port
* add new function mca_dma_set_ioport(), to set I/O port to be used for the
  DMA operation

Also clarify copyright (welcome to 2001 :), and couple other minor nits
2001-12-02 17:02:33 +00:00
enami a0ae8adf89 Declare some asm statement with output as volatile. Without this,
gcc with -march=pentiumpro produce bad code.
2001-11-30 06:53:56 +00:00
lukem efc46c2fb9 minor knf 2001-11-29 02:46:55 +00:00
jdolecek 851fb345aa add mca_dmamap_create() prototype for MI code 2001-11-23 22:29:16 +00:00
christos e36e7f175a Add transmeta crusoe cpu support from toshi. 2001-11-17 08:21:43 +00:00
soren 662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
perry 9f8afd5252 Make the type of ports in the in*()/out*() routines u_long instead of
int. Massively reduced kernel lint, causes no harm. Discussed
extensively with christos and thorpej.
2001-11-13 03:27:50 +00:00
perry 2cff38a9ba trivially rename some macro parameters to avoid lint warnings. 2001-11-10 22:21:00 +00:00
yamt 4475186a1d correct comment. 2001-11-07 10:52:08 +00:00
lukem 3343f31154 explicitly pull in sys/types.h 2001-11-03 06:22:54 +00:00
lukem 153d16f7b1 replace __byte_swap_long_variable and __byte_swap_word_variable
#define ({ })  with  static __inline { }
2001-11-02 05:17:59 +00:00
jdolecek 6cb3157ebe Add defines for the rest of fasttraps as defined on Solaris8/i386. For
documentation purposes only (though CLOCK_SETTIME a.k.a T_GETHRESTIME
shouldn't be too hard to implement).
2001-10-31 18:20:13 +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
jdolecek 5d461f21ee Update freebsd_sigcontext to what FreeBSD currently uses, and save/restore
%fs/%gs as appropriate.

XXX Note that the new sigcontext uses the new sigset_t instead of old
int sc_mask. The new FreeBSD sigcontext doesn't contain any backward
compatibility sc_mask, so basically old FreeBSD application making
use of sigcontext are hosed. This can't be fixed in NetBSD compat code.
2001-10-27 12:26:29 +00:00
fvdl cbc00e701a Until early last year, the i386 port had 256M of kvm, and the max.
amount of kvm used for buffers was set at 70%, some 188M. Then
the total amount of kvm became 1G, and the amount for buffers
thus became some 716M. This is really too much, and some
device drivers want to map quite a bit of kvm these days.

So, cap it at 384M, which gives each buffer a little over 8k (the
default FFS blocksize) physical in an 1G physram configuration.
2001-10-20 00:17:47 +00:00
thorpej 3d5c31f282 Bah, fix typo that crept in (tank you vi(1)). 2001-09-28 01:50:04 +00:00
thorpej abd2c67167 Machine-dependent ACPI CA Osd routines for i386. 2001-09-28 01:46:56 +00:00
jdolecek f5599abc0a fix typo 2001-09-23 19:59:19 +00:00
simonb 808d23f484 {,u}intptr_t are longs; adjust printf/scanf formats. 2001-09-19 05:23:43 +00:00
thorpej 3792a5d8c5 Add code to frob the MTRR-like registers on the AMD K6-2
and AMD K6-III.
2001-09-19 01:26:18 +00:00
thorpej d941f3b164 Define UWCCR bits for the AMD K6 (these are its MTRR-like registers). 2001-09-19 00:31:21 +00:00
thorpej f0d792297e Define the AMD K6 cache/write-combinding control register MSR. 2001-09-19 00:30:11 +00:00
jmc 9185cf1b34 Add mtrr.h to INCS list to get installed on a make includes 2001-09-12 04:44:21 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
fvdl 78742dd0e0 Add flag to indicate that a process set some mtrrs that need to be
cleaned up automatically on exit.
2001-09-10 10:11:21 +00:00
fvdl c823d05ca0 Add definitions for mtrr syscalls. 2001-09-10 10:10:57 +00:00
fvdl e0a68652a8 MTRR include file, based on the one by Bill Sommerfeld from the i386 mp
branch.
2001-09-10 10:10:33 +00:00
perry edea1a2c17 Make it possible to query each battery individually by making the
APM_IOC_GETPOWER ioctl read/write. Setting the batteryid in the passed
structure returns the data for just that battery. The old ioctl
remains for binary compatibility but has been renamed.

Itojun already did the hard work -- I just added a couple of lines.

reviewed by: thorpej
2001-09-10 05:23:30 +00:00
thorpej 47920741b0 Implement bus_space_mmap(). 2001-09-04 02:37:08 +00:00
chs 9fa41ab3b9 use cli/sti instead of splhigh/splx for MCOUNT_ENTER/MCOUNT_EXIT.
this makes clearer how much time mcount() is really taking.
2001-08-23 06:17:00 +00:00
chs 7c661278ee update some comments. 2001-08-12 00:20:32 +00:00
thorpej 518ad20222 Upon further reading of the manual, don't save the MXCSR-at-last-exception.
Its status bits are sticky, and unaffacted by FNINIT.
2001-08-03 01:46:08 +00:00
thorpej 099e93139b In setregs(), initialize the process's MXCSR to the reset-default
value as documented in the IA-32 Instruction Set Reference (in the
description of the LDMXCSR insn).
2001-08-03 01:24:39 +00:00
thorpej f72ee0a9c6 Remember the MXCSR at last-exception the way we do the FPU SW/TW. 2001-08-03 01:11:49 +00:00
groo 3f5acd41c2 Remove trailing "U" on KERNBASE introduced in last commit.
Breaks assembly of locore.
2001-08-03 01:03:10 +00:00
thorpej 6e331fdd9f Define KERNTEXTOFF in terms of KERNBASE. 2001-08-03 00:47:59 +00:00
thorpej f0449fd933 - Rename cpu_use_fxsave to i386_use_fxsave.
- If we detect SSE/SSE2 support in the CPU, enable SSE exceptions
  and set i386_has_{sse,sse2} as appropriate.
- Expose i386_use_fxsave and i386_has_{sse,sse2} through sysctl
  as machdep.{osfsxr,sse,sse2}.
2001-08-02 22:04:28 +00:00