Age | Commit message (Collapse) | Author |
|
* i386/i386/proc_reg.h (get_cr0, get_cr2, get_cr3, get_cr4, get_tr,
get_ldt): Add volatile qualifier to asm statement to prevent gcc from
optimizing it away since there seems to be no way to clobber these
properly in the set_* macros.
|
|
* device/device_emul.h (struct device_emulation_ops): Make members
reference, dealloc, dev_to_port, write_trap, and writev_trap take
mach_device_t parameter instead of void *.
* i386/i386at/autoconf.c: Make forward declarations for comintr()
and lprintr() match prototype. Add brackets around initialization
members for bus_ctlr and bus_device structs.
* i386/i386at/conf.c (dev_name_list): Pass nomap instead of nulldev
for map field.
* i386/i386at/pic_isa.c (intnull, fpintr, hardclock, kdintr,
prtnull): Declare the type of the value returned by functions to void.
|
|
* i386/configfrag.ac (enable_pae): Add checks: this is ix86-only.
|
|
* i386/i386/i386asm.sym (PTE_SIZE): New assembly macro.
* i386/i386/locore.S (copyout_retry): take PTE_SIZE into account.
* i386/intel/pmap.c (pmap_bootstrap, pmap_create): Use WRITE_PTE instead
of dereference.
|
|
[task #8135 --- ``PAE for GNU Mach']
* i386/configfrag.ac: Add --enable-pae option, which defines PAE.
* i386/i386/i386asm.sym (PDPSHIFT, PDEMASK): New assembly macros.
* i386/i386/locore.S [PAE] (copyout_retry): Use page directory pointer
bits.
* i386/i386at/model_dep.c [PAE] (i386at_init): Set second initial 2MB
page. Enable PAE bit. Set cr3 to page directory pointer table instead
of page directory.
* i386/intel/pmap.c [PAE] (pmap_bootstrap, pmap_create): Allocate 4
pages for dirbase. Setup pdpbase.
[PAE] (pmap_destroy): Free 4 pages from dirbase. Free pdpbase.
* i386/intel/pmap.h [PAE] (pt_entry_t): Typedef to unsigned long long.
[PAE] (PDPSHIFT, PDPNUM, PDPMASK): New macros.
[PAE] (PDESHIFT, PDEMASK, PTEMASK): Set to PAE values.
[PAE] (lin2pdenum, NPDES): Make them take the page directory pointer
index into account too.
[PAE] (struct pmap): Add `pdpbase' member.
(set_dirbase): Remove macro, replaced by...
(set_pmap): New macro, taking a pmap instead of the dirbase.
(PMAP_ACTIVATE_USER): Use set_pmap instead of set_dirbase.
|
|
* i386/i386/trap.c (user_trap): On page fault, raise exception instead
of asserting that cr2 is below LINEAR_MIN_KERNEL_ADDRESS.
|
|
* i386/i386/lock.h (_simple_lock_xchg_, bit_lock, bit_unlock): Add
memory clobbers.
* i386/include/mach/i386/cthreads.h (spin_unlock, spin_try_lock): Add
memory clobbers.
|
|
* device/chario.c (ttyinput_many): Change chars param to char *.
* device/tty.h (ttyinput_many): Likewise.
* i386/i386/pcb.h: Include <mach/exec/exec.h>.
* i386/i386at/autoconf.h: Include <chips/busses.h>.
* i386/i386at/model_dep.c (inittodr): Cast &new_time.seconds to u_int *.
* ipc/mach_port.c (mach_port_insert_right): Cast poly to ipc_object_t.
* ipc/mach_debug.c (host_ipc_hash_info): Initialize size to 0 to make
the compiler believe that there is no bug.
* ipc/mach_debug.c (mach_port_space_info): Likewise for tree_size and
table_size.
* i386/i386at/com.c (commctl): Likewise for b.
* i386/i386/trap.c (user_trap): Likewise for exc.
* i386/i386/user_ldt.c (i386_set_ldt): Likewise for old_copy_object.
* i386/i386at/com.c (comintr): Check line_stat&iOR instead of line&iOR.
|
|
* i386/i386/locore.h (copyinmsg, copyoutmsg):
Make parameters const void* and void* instead of vm_offset_t.
* i386/i386at/com.c (comportdeath): Cast port as ipc_port_t in
tty_portdeath call.
* i386/i386at/kd.c (kdportdeath): Likewise.
* i386/i386at/lpr.c (lprportdeath): Likewise.
* i386/i386at/kd_mouse.c (mouse_handle_byte): Cast param to wakeup() as
vm_offset_t.
* i386/intel/pmap.c (pmap_destroy): Cast arg 2 of kmem_free() to
vm_offset_t.
* i386/intel/pmap.h: Cast all arg 1 params to kvtophy() to vm_offset_t.
* ipc/ipc_kmsg.c: Remove casts from params to copyinmsg and
copyoutmsg calls.
* ipc/mach_msg.c: Likewise.
* kern/exceptions.c: Likewise.
* ipc/mach_msg.c: Remove casts from params to copyout calls.
* ipc/bootstrap.c: Likewise.
* kern/ipc_tt.c (mach_ports_register): Cast memory[i] as ipc_port_t in
assignment.
|
|
* chips/busses.h (bus_ctlr, bus_device): Make intr return void instead
of int.
* device/tty.h (tty): Make t_start and t_stop return void instead of
int.
* i386/i386/ipl.h (ivect[]): return void instead of int.
* i386/i386at/pic_isa.h (ivect[]): Likewise.
* i386/i386at/kd_mouse.c (mouseintr): Likewise.
* i386/i386at/com.c (comintr, comstop): Likewise.
* i386/i386at/kd.c (kdcnputc, kdstart, kdstop, kdintr): Likewise.
* i386/i386/trap.c (exception, thread_exception_return, i386_exception):
Add __attribute__ ((noreturn)).
* i386/i386at/kd.c (kdcnprobe): Return 0 at end of function.
* i386/i386at/lpr.c (lprintr, lprstart): Return void instead of int.
(lprstart): Don't return numeric values any longer.
* kern/eventcount.c (evc_wait_clear): Return a value.
* kern/exceptions.c (exception, exception_try_task, exception_no_server,
exception_raise, exception_raise_continue, exception_raise_continue_slow,
exception_raise_continue_fast): Add __attribute__ ((noreturn)).
(exception, exceptio_try_task, exception_raise,
exception_raise_continue_slow, exception_raise_continue_fast):
Remove spurious returns.
(exception_no_server): Add panic() on return from thread_halt_self().
|
|
* device/net_io.c (net_set_filter): Reference the proper member
instead of casting pointers.
* device/subrs.c (ether_sprintf): Set type of `i' to `int'.
* i386/i386/trap.c (kernel_trap): Pass page fault address to printf.
* i386/i386at/rtc.c (rtcget): Fix parenthesis to really test the bit.
|
|
* linux/pcmcia-cs/glue/wireless_glue.h (schedule_task): Add parameter
to Debugger() call.
* kern/lock_mon.c (retry_simple_lock, retry_bit_lock): Likewise.
* kern/machine.c (Debugger): Remove declaration.
2008-07-19 Barry deFreese <bddebian@comcast.net>
* device/dev_hdr.h (dev_name_lookup, dev_set_indirection): Add
prototypes.
* device/dev_pager.c: Include <vm/vm_user.h>.
* device/ds_routines.c: Likewise.
* device/subrs.c: Likewise.
* device/device_init.c: Include <device/tty.h>.
* device/ds_routines.h (iowait): Add prototype.
* device/net_io.h (net_kmsg_collect): Add prototype.
* device/net_io.c (hash_ent_remove, net_free_dead_infp,
net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info,
bpf_match): Add forward declarations.
* device/subrs.h: New header.
* i386/i386/fpu.h: Include <sys/types.h>.
Change <i386/thread.h> include to <kern/thread.h>.
(fp_save, fp_load, fp_free, fpu_module_init, fpu_set_state,
fpu_get_state, fpnoextflt, fpextovrflt, fpexterrflt, init_fpu):
Add prototypes.
* i386/i386/gdt.h (gdt_init): Add prototype.
* i386/i386/io_map.c: Include <vm/pmap.h>.
* vm/vm_kern.c: Likewise.
* i386/i386/ktss.h (ktss_init): Add prototype.
* i386/i386/ldt.h (ldt_init): Add prototype.
* i386/i386/loose_ends.h: New header.
* i386/i386/loose_ends.c (delay): Complete prototype.
* i386/i386/model_dep.h (startrtclock): Add prototype.
* i386/i386/pcb.h (load_context, stack_attach, stack_detach,
switch_ktss): Add prototypes.
* i386/i386/pic.h (form_pic_mask, picinit): Add prototypes.
* i386/i386/pit.c: Include <i386/pic.h>.
* i386/i386at/kd_mouse.c: Likewise.
* i386/i386/pit.h (clkstart): Add prototype.
* i386/i386/trap.c: Include <i386/fpu.h>, <intel/read_fault.h>,
<vm/vm_fault.h>.
* i386/i386/trap.h (interrupted_pc): Add prototype.
* i386/i386/user_ldt.c: Include <i386/pcb.h>.
* i386/i386at/autoconf.h: New header.
* i386/i386at/com.h: New header.
* i386/i386at/com.c: Include <i386at/autoconf.h>, <i386at/com.h>.
* i386/i386at/idt.h (idt_init): Add prototype.
* i386/i386at/int_init.h: New header.
* i386/i386at/kd.c: Include <i386/loose_ends.h>.
* kern/debug.c: Likewise.
* i386/i386at/kd_event.c: Include <device/ds_routines.h>.
* i386/i386at/kd_mouse.c: Likewise.
* i386/i386at/kd_mouse.c: Include <device/subrs.h>, <i386at/com.h>.
* i386/i386at/lpr.c: Include <i386at/autoconf.h>
* i386/i386at/model_dep.c: Include: <i386/fpu.h>, <i386/gdt.h>,
<i386/ktss.h>, <i386/ldt.h>, <i386/pic.h>, <i386/pit.h>,
<i386at/autoconf.h>, <i386at/idt.h>, <i386at/int_init.h>,
<i386at/kd.h>, <i386at/rtc.h>.
* i386/i386at/rtc.h (readtodc, writetodc): Add prototypes.
* i386/intel/pmap.h: Include <mach/vm_prot.h>.
(pmap_bootstrap, pmap_unmap_page_zero, pmap_zero_page, pmap_copy_page,
kvtophys): Add prototypes.
* i386/intel/read_fault.h: New header.
* kern/ast.h (ast_init, ast_check): Add prototypes.
* kern/debug.c (Debugger): Move prototype to...
* kern/debug.h (Debugger): ... here.
* kern/eventcount.h (evc_notify_abort): Add prototype.
* kern/ipc_mig.c: Include <kern/syscall_subr.h>, <kern/ipc_tt.h>,
<device/ds_routines.h>
* kern/ipc_mig.h: New header.
* kern/ipc_tt.h (mach_reply_port): Add prototype.
* kern/machine.h: New header.
* kern/processor.h (pset_sys_bootstrap): Move prototype outside of
MACH_HOST check.
* kern/sched_prim.h (thread_bind, compute_priority,
thread_timeout_setup): Add prototypes.
* kern/startup.c: Include <kern/machine.h>, <machine/pcb.h>.
* kern/syscall_subr.c: Include <kern/syscall_subr.h>.
(thread_depress_abort): Remove prototype.
* kern/syscall_subr.h: Include <sys/types.h>, <mach/mach_types.h>
(thread_depress_abort): Add prototype.
* kern/syscall_sw.c: Include: <kern/debug.h>.
* kern/task.h (consider_task_collect): Add prototype.
* kern/thread.c: Include <kern/eventcount.h>, <kern/ipc_mig.h>,
<kern/syscall_subr.h>.
* kern/thread.h (stack_collect): Add prototype.
* linux/pcmcia-cs/glue/pcmcia_glue.h (Debugger): Remove prototype.
* util/putchar.c: Include <device/cons.h>.
* util/putchar.h: New header.
* util/puts.c: Include <device/cons.h>, <util/putchar.h>.
* vm/memory_object.c: Include <vm/vm_map.h>.
(memory_object_data_provided): Move function below
memory_object_data_supply definition.
* vm/vm_init.c: Include <vm/vm_fault.h>.
* vm/vm_kern.h (projected_buffer_in_range): Add prototype.
* vm/vm_map.c: Include <vm/pmap.h>, <vm/vm_resident.h>.
(vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard):
Add forward declaration.
* vm/vm_map.h (vm_map_copyin_object, vm_map_submap,
_vm_map_clip_start, _vm_map_clip_end): Add prototypes.
* vm/vm_pageout.c: Include <device/net_io.h>, <kern/task.h>,
<machine/locore.h>.
* vm/vm_resident.h: New header.
* vm/vm_user.c: Include <vm/vm_kern.h>.
* vm/pmap.h (pmap_pageable, pmap_map_bd): Add prototype.
|
|
* (ddb/db_sym.h): Add _DDB_DB_SYM_H_ header protection.
(db_find_sym_and_offset, db_find_xtrn_sym_and_offset,
db_find_task_sym_and_offset, db_find_xtrn_task_sym_and_offset): Call
db_free_symbol.
(db_free_symbol): New declaration.
(db_sym_switch): New `free_symbol' member.
(X_db_free_symbol): New macro.
* ddb/db_sym.c (db_value_of_name, db_lookup, db_name_is_ambiguous,
db_search_task_symbol, db_search_in_task_symbol, db_task_printsym):
Call db_free_symbol.
(db_free_symbol): New function.
(dummy_db_free_symbol): New empty function.
(x_db): Initialize `free_symbol' memberi with dummy_db_free_symbol.
* i386/i386/db_trace.c (db_i386_stack_trace): Call db_free_symbol.
* kern/lock_mon.c (print_lock_info): Likewise.
|
|
* i386/i386/db_interface.c (db_read_bytes): Do not increment the
address before printing it.
|
|
* i386/i386/db_disasm.c (Iba): New macro.
(db_inst_table): Use Iba for aam and aad instructions.
(db_disasm): Decode operands for Iba case.
|
|
|
|
|
|
* device/dev_pager.c (device_pager_data_request,
device_pager_data_request_done, device_pager_init_pager): Fix printf
formats.
* i386/i386/debug_i386.c (dump_ss): Likewise.
* i386/i386/trap.c (user_trap): Likewise.
* i386/i386at/com.c (comtimer): Likewise.
* ipc/ipc_notify (ipc_notify_port_deleted, ipc_notify_msg_accepted,
ipc_notify_port_destroyed, ipc_notify_no_senders,
ipc_notify_send_once, ipc_notify_dead_name): Likewise.
* kern/ipc_kobject.c (ipc_kobject_destroy): Likewise.
* kern/sched_prim.c (do_runq_scan): Likewise.
* linux/pcmcia-cs/clients/smc91c92_cs.c (smc_start_xmit): Likewise.
* linux/src/drivers/net/sundance.c (start_tx): Likewise.
* vm/vm_fault.c (vm_fault_page): Likewise.
* vm/vm_map.c (vm_map_pmap_enter): Likewise.
* vm/vm_object.c (vm_object_collapse): Likewise.
|
|
* i386/i386/model_dep.h: New header.
* i386/i386at/model_dep.c: Include <i386/model_dep.h>.
* kern/debug.c: Include <machine/model_dep.h>.
* kern/mach_clock.c: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/machine.c: Likewise.
(halt_cpu): Remove prototype.
* vm/pmap.h (pmap_grab_page): Add prototype.
|
|
* i386/i386at/kd.h (kd_isupper, kd_islower, kd_senddata, kd_sendcmd,
kd_cmdreg_write, kd_mouse_drain, set_kd_state, kd_setleds1, kd_setleds2,
cnsetleds, kdreboot, kd_putc, kd_parseesc, kd_down, kd_up, kd_cr,
kd_tab, kd_left, kd_right, kd_scrollup, kd_scrolldn, kd_cls, kd_home,
kd_atoi, kd_insch, kd_cltobcur, kd_cltopcur, kd_cltoecur, kd_clfrbcur,
kd_eraseln, kd_insln, kd_delln, kd_delch, kd_erase, kd_bellon,
kd_belloff, kdinit, kdsetkbent, kdgetkbent, kdsetbell, kd_resend,
kd_handle_ack, kd_kbd_magic, kdstate2idx, kd_parserest, kdcnmaygetc,
kd_slmwd, kd_slmscu, kd_slmscd): Add prototypes.
* i386/i386at/kd.c (do_modifier): Add prototype.
|
|
* device/cons.c (cnputc): Turn parameter `c' into a char.
* device/cons.h (cninit, cngetc, cnmaygetc, cnputc): Add prototypes.
* i386/i386at/model_dep.c: Include <device/cons.h>
* kern/printf.c: Include <device/cons.h>
(cnputc): Remove prototype.
(vprintf, iprintf): Explicitely cast cnputc into the type _doprnt
expects.
* linux/dev/kernel/printk.c: Include <device/cons.h>
(cnputc): Remove prototype.
|
|
* i386/i386/fpu.c (fpintr): Do not panic if the we receive the
interrupt twice in the same thread.
|
|
* i386/i386/loose_ends.c (DELAY): Use volatile qualifier instead of
register to prevent optimization.
|
|
|
|
* i386/Makefrag.am (i386/i386at/boothdr.o, i386/i386at/interrupt.o)
(i386/i386/cswitch.o, i386/i386/locore.o): Remove targets.
* configure.ac <Dependency tracking for `.S' files>: Add a hack to
re-add the four targets with have been removed above for the (legacy)
case only where they are actually needed.
|
|
* i386/Makefrag.am (i386/i386at/interrupt.o): New target, depends on
i386/i386/i386asm.h
(i386/i386/cswitch.o): Likewise.
(i386/i386/locore.o): Likewise.
|
|
* i386/intel/pmap.c (pmap_map_bd): Use
INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock.
|
|
* i386/i386/db_interface.c (int_regs): Drop gs and fs fields.
(kdb_kentry): Get fs and gs from struct i386_interrupt_state instead of
struct int_regs.
* i386/i386/kttd_interface.c (int_regs, kttd_netentry): Likewise.
* i386/i386/locore.S (all_intrs): Save fs and gs and set them to kernel
segment too.
(return_to_iret): Restore fs and gs too.
(return_to_iret_i): Likewise.
(ast_from_interrupt): Set fs and gs to kernel segment too.
(kdb_from_iret): Don't save/restore fs and gs either.
(ttd_from_iret): Likewise.
* i386/i386/thread.h (i386_interrupt_state): Add gs and fs fields.
* linux/src/include/asm-i386/irq.h (SAVE_ALL): Set gs to kernel
segment too.
|
|
* configfrag.ac (mach_ncpus): Define to 1.
(NCPUS): Set to $mach_ncpus.
[$mach_ncpus > 1] (MULTIPROCESSOR): Set to 1.
* linux/configfrag.ac [$mach_ncpus > 1] (__SMP__): Define.
|
|
* i386/linux/dev/include/linux/autoconf.h [NCPUS > 1]: Define
CONFIG_SMP and __SMP__.
|
|
* i386/i386/mp_desc.c: (cpu_control, interrupt_processor, cpu_start)
(start_other_cpus): New functions.
* i386/i386/i386asm.sym (MP_GDT, MP_IDT): Remove macros.
* i386/i386/lock.h: Don't include_next "lock.h".
|
|
* i386/i386at/model_dep.c: Make init_alloc_aligned() extern.
|
|
* i386/i386/cswitch.S: Use EXT(interrupt_stack) instead of
_interrupt_stack.
|
|
* i386/i386/mp_desc.c (interrupt_stack_alloc): Call init_alloc_aligned()
instead of init_alloc().
|
|
* i386/i386/io_perm.c (i386_io_perm_create): Lock io_perm->port, not
inexistent device->port.
* i386/i386/mp_desc.c: Include <machine/vm_param.h>
* i386/i386/mp_desc.h: Include <i386at/idt.h> instead of "idt.h"
|
|
* i386/i386/locore.S
(current_tstamp, TIME_TRAP_UENTRY, TIME_TRAP_SENTRY, TIME_TRAP_UEXIT)
(TIME_INT_ENTRY, TIME_INT_EXIT, timer_switch, start_timer): Use
EXT(current_tstamp) and EXT(current_timer) instead of _current_tstampt
and _current_timer.
|
|
* i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY)
(TIME_TRAP_UEXIT): Use TH_SYSTEM_TIMER instead of old TH_SYS_TIMER.
|
|
|
|
* i386/i386/seg.h (SZ_64): New macro.
* i386/i386/user_ldt.c (selector_check, i386_set_gdt): Check
user-provided descriptor against SZ_64.
|
|
* i386/intel/pmap.c (pmap_enter): Use INTEL_PTE_NCACHE|INTEL_PTE_WTHRU
when cpu >= 486 and physical address is after memory end.
|
|
* i386/i386/trap.c (user_trap): Read faulting linear address before
using it.
|
|
* Makerules.mig.am: New file, factored out of code of...
* Makefrag.am: ... this file and...
* Makerules.am: ... this file.
* i386/Makefrag.am: Update comment.
|
|
* i386/i386/fpu.c (fpu_set_state): Set fp_valid to TRUE. Free the
unused ifps.
|
|
[bug #15295 --- ``Mach lets processes write to I/O ports'']
* i386/Makefrag.am (libkernel_a_SOURCES): Add `i386/i386/io_perm.c',
`i386/i386/io_perm.h', `i386/i386/machine_task.c', `i386/i386/task.h'
and remove `i386/i386/io_port.h', `i386/i386/iopb.c',
`i386/i386/iopb.h'.
* i386/i386/io_port.h: Remove file.
* i386/i386at/kd.c: Don't include <i386/io_port.h>.
(vga_port_list, kd_io_device, kd_io_map_open, kd_io_map_close): Don't
define and don't use anymore.
* include/stddef.h: New file.
* i386/i386/io_perm.c: Include <string.h>, <device/device_emul.h>,
<ipc/ipc_space.h> and don't include <oskit/ds_oskit.h>.
(io_perm_device_emulation_ops): New variable.
(dev_open_alloc, setup_no_senders): Remove declarations.
(convert_io_perm_to_port, convert_port_to_io_perm, io_perm_deallocate):
Rewrite.
(no_senders): New function.
(i386_io_perm_create, i386_io_perm_modify): Rewrite partially, to adapt
to the GNU Mach environment.
* i386/i386/io_perm.h: Include <device/dev_hdr.h> and
<ipc/ipc_types.h>.
(io_perm, io_perm_t): New structure and accompanying type definition.
(IO_PERM_NULL): Define.
* i386/i386/locore.S (ktss): Move variable to...
* i386/i386/ktss.c: ... here, make it a ``struct task_tss''.
(ktss_init): Initialize the `task_tss' structure and the i/o permission
bit map.
* i386/i386/ktss.h: Adapt to that.
* i386/i386/machine_task.c (machine_task_module_init): Adapt the `zinit'
call to the GNU Mach environment.
* i386/i386/mp_desc.c: Include <machine/ktss.h>.
* i386/i386/tss.h: Include <machine/io_perm.h>.
(task_tss): New structure, equivalent to the OSKit-Mach one.
* i386/include/mach/i386/mach_i386.defs: Don't include
<device/device_types.defs>.
(device_list_t): Remove type.
* i386/include/mach/i386/mach_i386_types.h (device_list_t): Remove type
definition.
2007-05-07 Marcus Brinkmann <marcus@gnu.org>
[bug #15295 --- ``Mach lets processes write to I/O ports'']
* i386/i386/iopb.h, i386/i386/iopb.c: Obsolete files removed.
* i386/i386/pcb.c (switch_context): Update the I/O permission
bitmap from stack_handoff() here (not only in stack_handoff()).
* i386/i386/machine_task.c (machine_task_module_init): Set
ZONE_COLLECTABLE and ZONE_EXHAUSTIBLE flags for the iopb zone.
Requested by Roland McGrath <roland@frob.com>.
* i386/i386/io_perm.h: New file.
* i386/i386/io_perm.c: New file.
* i386/i386/machine_task.c: New file.
* i386/i386/mp_desc.h: (struct mp_desc_table): Change type of ktss to
struct task_tss.
(mp_ktss): Likewise for array of pointers to the struct.
* i386/i386/mp_desc.c: Include `machine/tss.h' and `machine/io_perm.h'.
(mp_ktss): Change type to array of struct task_tss.
(mp_desc_init): Cast pointer to x86_tss into pointer to task_tss,
and use size of struct task_tss instead size of struct x86_tss.
Initialize the task_tss structure.
* i386/i386/pcb.c: Include `stddef.h' and `machine/tss.h'.
(iopb_create, iopb_destroy): Prototypes removed.
(curr_ktss): Cast pointer to base_tss to pointer to struct
task_tss.
(switch_ktss): Always use kernel TSS.
(update_ktss_iopb): New function.
(stack_handoff): Call update_ktss_iopb.
(pcb_module_init): Do not call iopb_init.
(pcb_terminate): Do not call iopb_destroy.
(thread_setstatus): Remove local variable tss.
(thread_getstatus): Rewrite i386_ISA_PORT_MAP_STATE case handler.
* i386/i386/task.h: New file.
* i386/i386/thread.h: Do not include `i386/iopb.h'.
(struct i386_machine_state): Remove member io_tss.
* i386/include/mach/i386/mach_i386.defs [KERNEL_SERVER]: Include
`machine/io_perm.h'. Define intran, outtran and destructor.
(io_port_t): New type.
(io_perm_t): Likewise.
(i386_io_port_add): Interface removed.
(i386_io_port_remove): Likewise.
(i386_io_port_list): Likewise.
(i386_io_perm_create): New interface.
(i386_io_perm_modify): Likewise.
* i386/include/mach/i386/mach_i386_types.h [MACH_KERNEL]: Include
`i386/io_perm.h'.
[!MACH_KERNEL]: Define types io_port_t and io_perm_t.
* kern/task.c (task_init): Call machine_task_module_init.
(task_create): Call machine_task_init.
(task_deallocate): Call machine_task_terminate.
(task_collect_scan): Call machine_task_collect.
* task.h: Include `machine/task.h'.
(struct task): Add member machine.
|
|
* i386/i386at/model_dep.c (halt_cpu, halt_all_cpus): Call
`machine_idle' to avoid busy-looping.
|
|
* i386/intel/read_fault.c (intel_read_fault): Remove the last parameter
from the calls of `vm_map_lookup'.
|
|
* configure.ac (--disable-default-device-drivers): Transform into...
(--enable-device-drivers): ... this new option and extend it.
* i386/configfrag.ac (--enable-lpr): Adapt to that.
* linux/configfrag.ac (AC_OPTION_Linux_ix86_at, AC_Linux_DRIVER):
Likewise.
(AC_Linux_DRIVER_qemu): New definition. Use it for the `floppy', `ide'
and `ne' device drivers.
* doc/mach.texi: Document all that.
|
|
We're not in the eighties anymore. List arguments in function
prototypes and definitions for a lot of symbols. Also drop some unused
prototypes. I refrain from listing every changed symbol.
* chips/busses.h: Do as described.
* ddb/db_break.c: Likewise.
* ddb/db_break.h: Likewise.
* ddb/db_command.c: Likewise.
* ddb/db_command.h: Likewise.
* ddb/db_lex.c: Likewise.
* ddb/db_lex.h: Likewise.
* ddb/db_output.c: Likewise.
* ddb/db_output.h: Likewise.
* ddb/db_sym.h: Likewise.
* ddb/db_task_thread.c: Likewise.
* ddb/db_task_thread.h: Likewise.
* ddb/db_variables.h: Likewise.
* ddb/db_watch.c: Likewise.
* ddb/db_watch.h: Likewise.
* device/buf.h: Likewise.
* device/conf.h: Likewise.
* device/dev_hdr.h: Likewise.
* device/ds_routines.h: Likewise.
* device/if_ether.h: Likewise.
* device/io_req.h: Likewise.
* device/net_io.h: Likewise.
* i386/i386/io_port.h: Likewise.
* i386/i386/lock.h: Likewise.
* i386/i386/mp_desc.c: Likewise.
* i386/i386/mp_desc.h: Likewise.
* i386/i386/proc_reg.h: Likewise.
* i386/i386/user_ldt.h: Likewise.
* i386/i386at/kd_queue.h: Likewise.
* i386/i386at/kdsoft.h: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/intel/pmap.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* ipc/ipc_entry.h: Likewise.
* ipc/ipc_hash.h: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_marequest.h: Likewise.
* ipc/ipc_mqueue.h: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_pset.h: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/ipc_table.h: Likewise.
* ipc/mach_msg.c: Likewise.
* ipc/mach_msg.h: Likewise.
* kern/ast.c: Likewise.
* kern/ast.h: Likewise.
* kern/debug.c: Likewise.
* kern/debug.h: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/ipc_tt.h: Likewise.
* kern/mach_factor.c: Likewise.
* kern/mach_factor.h: Likewise.
* kern/printf.c: Likewise.
* kern/printf.h: Likewise.
* kern/queue.h: Likewise.
* kern/sched.h: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/syscall_subr.h: Likewise.
* kern/task.h: Likewise.
* kern/thread_swap.c: Likewise.
* kern/thread_swap.h: Likewise.
* kern/timer.h: Likewise.
* kern/xpr.c: Likewise.
* kern/xpr.h: Likewise.
* kern/zalloc.c: Likewise.
* kern/zalloc.h: Likewise.
* ipc/ipc_port.h: Don't include <ipc/ipc_space.h>.
* device/net_io.h: Include <device/if_hdr.h> and <device/io_req.h>.
* ipc/ipc_entry.h: Include <mach/mach_types.h> and <ipc/ipc_types.h>.
* ipc/ipc_kmsg.h: Include <ipc/ipc_object.h>, <ipc/ipc_types.h> and
<vm/vm_map.h>.
* ipc/ipc_marequest.h: Include <mach_debug/hash_info.h> and
<ipc/ipc_types.h>.
* ipc/ipc_object.h: Include <ipc/ipc_types.h>.
* ipc/ipc_right.h: Include <ipc/ipc_entry.h>.
* ipc/ipc_space.h: Include <mach/mach_types.h> and <ipc/ipc_types.h>.
* kern/ipc_tt.h: Include <mach/mach_types.h>.
* kern/sched.h: Include <kern/kern_types.h>.
* ipc/ipc_hash.c (ipc_hash_index_t): Move type definition...
* ipc/ipc_hash.h: ... into here.
|
|
[task #5878 --- ``Backport code from GNU Mach's trunk to
gnumach-1-branch: i386_set_gdt, i386_get_gdt'']
* i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt):
Shift by two to maintain rpc id compatibility with OSKit-Mach.
|
|
* i386/i386/io_emulate.c: Remove file.
* i386/i386/io_emulate.h: Likewise.
* i386/i386at/iopl.c: Likewise.
* i386/Makefrag.am (libkernel_a_SOURCES): Remove the aforementioned
files.
* i386/i386/trap.c: Don't include <i386/io_emulate.h>.
(v86_assist, check_io_fault): Remove functions.
(user_trap): Remove the code referencing the above functions.
* i386/i386at/conf.c (dev_name_list): Remove the `iopl' device.
* DEVELOPMENT: Document this.
|