355 Commits

Author SHA1 Message Date
dfr
7cb77dfe12 Reserve space for signal state. 2001-10-20 15:19:43 +00:00
marcel
11dcd74077 Save the AP wake-up vector from the SAL descriptor under SMP.
Note that the descriptor is optional. Add a comment to indicate
that we want to register the OS_BOOT_RENDEZ here as well.
2001-10-20 03:39:55 +00:00
marcel
35cc982506 Make this compile under option SMP. 2001-10-20 03:33:07 +00:00
dfr
7ebbe27eff Make a start at an unaligned trap handler. Only integer loads and stores
are handled so far.
2001-10-19 22:23:51 +00:00
dfr
242c14f742 Translate various userland traps into SIGBUS (instead of just panicing). 2001-10-19 20:46:12 +00:00
ru
b514c94182 Try two on the preprocessing logic.
Reviewed by:	obrien
2001-10-19 20:06:23 +00:00
jhb
d0bdf2ae5d Remove unneeded sys/mutex.h includes. 2001-10-19 19:23:32 +00:00
obrien
975b6d2e75 Blah, fix braino where ru had to remind me of proper preprocessor syntax.
Bad fingers, no cookie.
2001-10-19 19:17:11 +00:00
dfr
220747715a Rework pmap so that it separates the PTE structure from the pv_entry
structure. This makes it possible to pre-allocate PTEs for the kernel,
which is necessary for a reliable implementation of pmap_kenter(). This
also avoids wasting space (about 48 bytes per page) for kernel mappings
and user mappings of memory-mapped devices.

This also fixes a bug with the previous version where the implementation
required the pv_entry structure to be physically contiguous but did not
enforce this (the structure size was not a power of two). This meant
that the pv_entry free list was quickly corrupted as soon as the system
was even mildly loaded.
2001-10-19 09:47:02 +00:00
dfr
acb4f4cc33 Shift the code which packs and unpacks instruction bundles out of DDB
since it is useful for various emulations duties (e.g. unaligned trap
handling).
2001-10-18 16:20:04 +00:00
marcel
8542877fb0 Fix typos in previous commit:
o  s/sys_narg/sy_narg/
o  s/SYS_MPSAFE/SYF_MPSAFE/
2001-10-18 05:21:52 +00:00
obrien
1d7ce16d9a Add support for "__gnuc_va_list". Some overly "smart" libraries assume
the existence of the __gnuc_va_list type[*] because our compiler is GCC.

[*] __gnuc_va_list is defined in the GCC ginclude/stdarg.h replacement
headerwhich we don't use.
2001-10-18 00:27:39 +00:00
jhb
d51a15e1db - Small cleanups to the Giant handling in trap().
- Only release Giant in trap() if we locked it, otherwise we could release
  Giant in a kernel trap if we didn't get it for a page fault and the
  previous frame had grabbed the lock.
- Only get Giant for !MP safe syscalls.
2001-10-17 22:04:45 +00:00
mjacob
e666e03e1a Make SCSI changer and SES devices standard in generic kernels.
Reviewed by:	ken@kdm.org
2001-10-16 22:22:58 +00:00
dfr
19a85de402 Size the number of pv_entries we use to bootstrap the pv_entry allocator
based on the size of physical memory. This should eliminate the tweaking
needed for larger memory configurations.
2001-10-16 08:03:16 +00:00
marcel
1dc835d4bd When compiling with SKI support, create the fake memory regions
when either the memory descriptor in the bootinfo is NULL or
the descriptor count is 0.
2001-10-15 07:58:27 +00:00
dfr
ac1e1976ef Only the first eight arguments can possibly be in stacked registers. 2001-10-13 08:06:20 +00:00
dfr
66ae82dae0 Pass the correct trapframe pointer to fork_exit - sp is trapframe-16. 2001-10-12 11:50:09 +00:00
dfr
46f68d627c If the faulting instruction is a cmpxchg, then isr.w and isr.r will both
be set. We need to check isr.w before isr.r so that we can correctly
handle a cmpxchg to a copy-on-write page.

This fixes the hang-after-fork problem for dynamically linked programs.
2001-10-12 11:49:11 +00:00
dfr
e18643f7d6 Implement MCOUNT hook for assembler. Probably doesn't work right. 2001-10-11 13:35:31 +00:00
dfr
0d5aa1a03b Implement mcount trampoline (untested). 2001-10-11 13:31:55 +00:00
dfr
f16813dcd5 * Change the calling convention for execve so that it conforms to normal
C calling conventions. This allows crt1.c to be written nearly without
  any inline assembler.
* Initialise cpu_model[] so that the hw.model sysctl works properly.
2001-10-11 12:31:50 +00:00
ps
db0d5cd641 Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader
tunable.

Reviewed by:	peter
MFC after:	2 weeks
2001-10-10 23:06:54 +00:00
dfr
adca9bb8ab Add a definition for the ia64's special PLT_RESERVE entry in the _DYNAMIC
section.
2001-10-10 09:00:27 +00:00
dfr
ffdeb5e0d7 Clarify a comment.
Requested by: jhb
2001-10-09 19:50:29 +00:00
dfr
14cba3ae53 Don't include isavar.h - we don't need it. 2001-10-09 10:24:37 +00:00
dfr
cbcbd1952c Add a minimalist kernel config which can run inside SKI. 2001-10-09 10:14:06 +00:00
dfr
53b8dff6c7 Make printtrap() more informative. 2001-10-08 20:21:04 +00:00
dfr
0dc299a882 Implement inline versions of ntohl etc. 2001-10-07 21:09:35 +00:00
des
29c5c858fc Dissociate ptrace from procfs.
Until now, the ptrace syscall was implemented as a wrapper that called
various functions in procfs depending on which ptrace operation was
requested.  Most of these functions were themselves wrappers around
procfs_{read,write}_{,db,fp}regs(), with only some extra error checks,
which weren't necessary in the ptrace case anyway.

This commit moves procfs_rwmem() from procfs_mem.c into sys_process.c
(renaming it to proc_rwmem() in the process), and implements ptrace()
directly in terms of procfs_{read,write}_{,db,fp}regs() instead of
having it fake up a struct uio and then call procfs_do{,db,fp}regs().

It also moves the prototypes for procfs_{read,write}_{,db,fp}regs()
and proc_rwmem() from proc.h to ptrace.h, and marks all procfs files
except procfs_machdep.c as "optional procfs" instead of "standard".
2001-10-07 20:08:42 +00:00
dfr
aadf7f2191 * Use srlz.i to serialise changes to psr.ic
* Don't enable psr.i at the same time as psr.dt and psr.ic

These changes improve stability considerably.
2001-10-07 18:40:01 +00:00
dfr
006ac09328 Remove bogus include. 2001-10-07 14:20:01 +00:00
dfr
9c40c48b35 Move console probes until after we set boothowto so that 'boot -h' works. 2001-10-06 16:06:48 +00:00
dfr
9aa18339c5 Assume round-to-nearest mode for floating point. 2001-10-06 15:57:22 +00:00
dfr
db02c4b19d Delete legacy pcib code - we can't possibly work without acpi on ia64. 2001-10-06 10:09:57 +00:00
marcel
1cf975d017 o Change ia64_memory_address to explicitly take a u_int64_t
o  Add memcpy_fromio, memcpy_io, memcpy_toio, memset_io,
   memsetw and memsetw_io. I'm not sure this is the right
   place for it, though.
2001-10-06 09:31:43 +00:00
dfr
3908c08eda Add BOOTP support. 2001-10-05 19:03:01 +00:00
dfr
1b40dafbcc Fix some dependency violations (don't know why gas didn't catch this). 2001-10-05 19:02:21 +00:00
dfr
628e798360 Use physical addresses, not virtual addresses when calling PHYS_TO_VM_PAGE. 2001-10-05 19:00:03 +00:00
dfr
9e6ea50a9e Eliminate some alpha craziness. 2001-10-05 18:59:02 +00:00
dfr
603bf5b632 In in_cksumdata, len must be a signed type. 2001-10-05 18:58:22 +00:00
dfr
c307754b5d Low-level code for programming the I/O SAPIC. 2001-10-05 10:35:42 +00:00
dfr
8d0fc6ad69 Wire up most of the interrupt handling infrastructure. Not sure it works
right yet but its enough for the ATA probe to work. The SCSI probes which
follow are broken though.
2001-10-05 10:30:09 +00:00
dfr
9a18cc66ce Fix typo which meant that we never actually found the ACPI 2.0 table. 2001-10-05 10:29:03 +00:00
dfr
ef3435232b Disable interrupts when we are in DDB. 2001-10-05 08:23:08 +00:00
dfr
17d5b062c9 Add ia64_get_lid(). 2001-10-05 08:20:41 +00:00
dfr
618109d59e Don't pretend the argument to clockattach is a device - it isn't. 2001-10-04 15:28:27 +00:00
dfr
874825c3ca * Don't pretend the object passed to clockattach is a device - it isn't.
* Declare itc_frequency properly.
2001-10-04 15:27:35 +00:00
dfr
62360262bb Use EFI (or some reasonable simulation) to read the RTC. 2001-10-04 15:26:05 +00:00
dfr
7ed4fe7528 Fake the EFI runtime call GetTime. 2001-10-04 15:24:52 +00:00