Age | Commit message (Collapse) | Author |
|
* 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.
|
|
Unconditionally use the device driver multiplexing. Suggested by
Gianluca Guida <glguida@gmail.com>.
* i386/i386at/dev_hdr.h: Merge into `device/dev_hdr.h' and remove.
* i386/i386at/device_emul.h: Rename to `device/device_emul.h'. Adapt
all users.
* i386/i386at/i386at_ds_routines.c: Merge into `device/ds_routines.c'
and remove.
* i386/linux/dev/include/linux_emul.h: Remove file.
* Makefrag.am (libkernel_a_SOURCES): Add `device/device_emul.h'.
* i386/Makefrag.am (libkernel_a_SOURCES): Remove
`i386/i386at/dev_hdr.h', `i386/i386at/device_emul.h' and
`i386/i386at/i386at_ds_routines.c'.
* i386/linux/Makefrag.am (liblinux_a_SOURCES): Remove
`i386/linux/dev/include/linux_emul.h'.
* dev/dev_hdr.h: Adapt all users of `i386' as if it were always
defined.
* device/dev_lookup.c: Likewise.
* device/ds_routines.c: Likewise.
* device/device_init.c (ds_init): Rename to `mach_device_init'.
* device/ds_routines.c (ds_init): Likewise.
(ds_trap_init): Rename to `mach_device_trap_init'.
(mach_device_trap_init): Make it `static'.
* linux/dev/glue/block.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h> and <i386at/disk.h>.
* linux/dev/glue/net.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h>.
* linux/pcmcia-cs/glue/ds.c: Likewise.
|
|
* i386/i386at/conf.c (block_io_mmap): Remove declaration.
|
|
* Makerules.am (%.server.msgids, %.user.msgids): Merge into the
existing ``%.h %.c'' rules.
Comment out the currently unused rpc stub rules.
* Makefrag.am (gnumach.msgids): Rewrite.
(nodist_libkernel_a_SOURCES): Add all ``.msgids'' files.
* i386/Makefrag.am (nodist_libkernel_a_SOURCES): Likewise.
|
|
* i386/ldscript: Correct 'LINKFLAGS_gnumach' in comment.
|
|
* i386/i386/user_ldt.c (i386_set_gdt): Call switch_ktss() if target is
current thread.
|
|
Fix ddb's trace command.
* i386/i386/db_trace.c (db_find_trace_symbols): Drop _ prefix on ELF
targets.
(db_i386_stack_trace): Check that adresses of known functions were
really found.
|
|
* Makefile.am (gnumach_LINKFLAGS): New variable.
(gnumach_LINK): Use that one instead of the previously used
`LINKFLAGS_gnumach'.
* i386/Makefrag.am (LINKFLAGS_gnumach): Rename to `gnumach_LINKFLAGS',
move into [PLATFORM_at] and pass `_START'.
* i386/ldscript: Don't hardcode a _start address of 0x100000, but make
it configurable via `_START'.
|
|
Add a `--enable-platform' option for future use. Allow building
without any Linux code.
* Makefile.am: Don't include `linux/Makefrag.am' in there...
* Makefrag.am: ... but rather in here.
* configfrag.ac (MACH_MACHINE_ROUTINES): AC_DEFINE_UNQUOTED based on
then shell variable `mach_machine_routines'.
(--disable-default-device-drivers): Don't define in there...
* configure.ac: ... but rather in here.
(--enable-platform): New option.
(host_platform): New variable.
(HOST_i386): Don't define there...
* i386/configfrag.ac (HOST_ix86): ... but rather here, rename it and
adapt all users.
(PLATFORM_at): New conditional.
(MACH_MACHINE_ROUTINES): Don't AC_DEFINE, but rather set a shell
variable `mach_machine_routines'.
* linux/Makefrag.am (noinst_LIBRARIES, gnumach_o_LDADD): Only enhance
``if CODE_linux'' or ``if device_driver_group_pcmcia''.
* linux/configfrag.ac (AC_OPTION): Rename to `AC_OPTION_Linux_ix86_at'
and rework a bit. Adapt all users.
(AC_OPTION_nodef): Rename to `AC_OPTION_Linux_ix86_at_nodef' and rework
a bit. Adapt all users.
(CODE_linux): New conditional.
* i386/Makefrag.am (LINKFLAGS_gnumach): Don't evaluate $(systype).
* Makefile.am: Update the FSF's postal address.
* doc/Makefrag.am: Likewise.
* i386/linux/Makefrag.am: Likewise.
* linux/Makefrag.am: Likewise.
* tests/Makefrag.am: Likewise.
* tests/configfrag.ac: Move to GPL.
|
|
* i386/i386/hardclock.c: Include <kern/mach_clock.h> instead of
<kern/time_out.h>.
* i386/i386/pit.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386at/rtc.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/mach_factor.c: Likewise.
* kern/priority.c: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.h: Likewise.
* kern/zalloc.c: Likewise.
* kern/host.c: Include <kern/mach_clock.h>.
(tick): Remove declaration.
* kern/pc_sample.c: Likewise.
* kern/thread.c: Likewise.
* kern/sched_prim.c (hz): Remove declaration.
* kern/syscall_subr.c (hz): Likewise.
* linux/dev/init/main.c (hz): Likewise.
|
|
* i386/i386/hardclock.c: Don't check for the `SYMMETRY' platform.
|
|
* kern/timer.h: Add some comments from...
* i386/i386/timer.h: ... here and remove this file.
|
|
* ddb/db_break.c (db_delete_thread_breakpoint): Don't declare
`db_cond_free'.
* ddb/db_run.c: Include <ddb/db_cond.h>.
(db_stop_at_pc): Don't declare `db_cond_check'.
* ddb/db_input.c: Include <ddb/db_input.h>.
* ddb/db_macro.c: Include <ddb/db_macro.h>.
* ddb/db_trap.c: Include <ddb/db_trap.h>.
* i386/i386/db_interface.h: Include <machine/thread.h>.
* i386/i386/db_interface.c: Include <machine/db_interface.h>.
* i386/i386/db_machdep.h: Include <machine/db_interface.h>.
(db_check_access, db_phys_eq, db_task_name): Remove declarations.
2006-01-06 Barry deFreese <bddebian@comcast.net>
* ddb/db_aout.c: Include <ddb/db_output.h>.
* ddb/db_break.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_delete_cmd, db_breakpoint_cmd): Explicitly define untyped variables
as `int'.
* ddb/db_command.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_macro.h>.
* ddb/db_command.h (db_exec_cmd_nest): New declaration.
* ddb/db_cond.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_cond_cmd): Explicitly define untyped variable as `int'.
* ddb/db_cond.h: New file.
* ddb/db_examine.c: Include <machine/db_interface.h>,
<ddb/db_examine.h> and <ddb/db_expr.h>.
(db_strcpy, db_examine): Remove forward declarations.
(db_xcdump): Explicitly define untyped variables as `int'.
* ddb/db_examine.h: New file.
* ddb/db_expr.c: Include <ddb/db_expr.h>, <ddb/db_output.h>,
<ddb/db_sym.h> and <ddb/db_variables.h>.
* ddb/db_input.c: Include <ddb/db_command.h>.
* ddb/db_input.h: New file.
* ddb/db_lex.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_input.h> and <ddb/db_output.h>.
(db_skip_to_eol, db_lex): Explicitly define untyped variables as `int'.
* ddb/db_lex.h (db_lex): New declaration.
* ddb/db_macro.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_def_macro_cmd, db_exec_macro): Explicitly define untyped variables
as `int'.
* ddb/db_macro.h: New file.
* ddb/db_output.c: Include <ddb/db_command.h>.
* ddb/db_output.h (db_putchar): New declaration.
* ddb/db_print.c: Include <machine/db_interface.h>, <ddb/db_command.h>
and <ddb/db_output.h>.
(db_show_regs): Explicitly define untyped variables as `int'.
* ddb/db_run.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_output.h> and <ddb/db_watch.h>.
* ddb/db_run.h: Include <kern/task.h> and <machine/db_machdep.h>.
(db_single_step, db_single_step_cmd, db_in_single_step): New
declarations.
* ddb/db_sym.c: Include <ddb/db_command.h> and <ddb/db_output.h>.
(db_sym_parse_and_lookup): Explicitly define untyped variables as
`int'.
* ddb/db_sym.h (db_line_at_pc): New declaration.
* ddb/db_task_thread.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_lex.h> and <ddb/db_output.h>.
(db_lookup_task, db_lookup_task_thread, db_lookup_thread)
(db_lookup_task_id, db_lookup_thread_id): Explicitly define untyped
variables as `int'.
* ddb/db_trap.c: Include <ddb/db_examine.h> and <ddb/db_output.h>.
* ddb/db_trap.h: New file.
* ddb/db_variables.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_expr.h> and <ddb/db_output.h>.
(db_get_suffix, db_cmp_variable_name): Explicitly define untyped
variables as `int'.
* ddb/db_variables.h (db_get_variable): New declaration.
* ddb/db_watch.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_output.h> and <ddb/db_run.h>.
* ddb/db_write_cmd.c: Include <ddb/db_expr.h> and <ddb/db_output.h>.
* i386/i386/db_interface.c: Include <kern/printf.h>, <ddb/db_access.h>,
<ddb/db_command.h>, <ddb/db_output.h>, <ddb/db_run.h> and
<ddb/db_trap.h>.
(kdbprinttrap): Add `void' return type.
(db_user_to_kernel_address, db_task_name): Explicitly define untyped
variables as `int'.
* i386/i386/db_interface.h: New file.
* i386/i386/db_trace.c (db_i386_reg_value): Add `int' return type.
* i386/i386/trap.c [MACH_KDB]: Include <ddb/db_run.h> and
<ddb/db_watch.h>.
* ipc/ipc_kmsg.c [MACH_KDB]: Include <ddb/db_output.h>.
* kern/lock.c [MACH_KDB]: Include <ddb/db_output.h>.
|
|
Add alignment support in the zone allocator.
* kern/zalloc.c (ALIGN_SIZE_UP): New macro.
(zinit): New `align' parameter.
(zget_space): Likewise.
(zalloc): Updated call to zget_space() with the zone alignment.
* kern/zalloc.h (zone): New member `align'.
(zinit): Declaration updated as required.
* device/dev_lookup.c (dev_lookup_init): Updated call to zinit() with
alignment of 0.
* device/dev_pager.c (dev_pager_hash_init): Likewise.
(device_pager_init): Likewise.
* device/ds_routines.c (ds_init): Likewise.
(ds_trap_init): Likewise.
* device/net_io.c (net_io_init): Likewise.
* i386/i386/fpu.c (fpu_module_init): Likewise.
* i386/i386/pcb.c (pcb_module_init): Likewise.
* i386/intel/pmap.c (pmap_init): Likewise.
* ipc/ipc_init.c (ipc_bootstrap): Likewise.
* ipc/ipc_marequest.c (ipc_marequest_init): Likewise.
* kern/act.c (global_act_init): Likewise.
* kern/kalloc.c (kalloc_init): Likewise.
* kern/processor.c (pset_sys_init): Likewise.
* kern/task.c (task_init): Likewise.
* kern/thread.c (thread_init): Likewise.
* kern/zalloc.c (zone_bootstrap): Likewise.
* vm/vm_external.c (vm_external_module_initialize): Likewise.
* vm/vm_fault.c (vm_fault_init): Likewise.
* vm/vm_map.c (vm_map_init): Likewise.
* vm/vm_object.c (vm_object_bootstrap): Likewise.
* vm/vm_resident.c (vm_page_module_init): Likewise.
|
|
Fix translation of port into device in the "no sender" notification.
* i386/i386at/i386at_ds_routines.c (ds_notify): Use dev_port_lookup()
for translating the remote port.
|
|
Fix loop indexing.
* i386/intel/pmap.c (pmap_change_wiring): Increment pte in the
unwiring loop.
|
|
Drop old and broken support for Olivetti XP7 & XP9
* i386/intel/pma.c [ORC] (OLIVETTICACHE): Remove macro.
[OLIVETTICACHE] (pstart): Remove declaration.
(CACHE_LINE, CACHE_SIZE, CACHE_PAGE, WRITE_PTE, WRITE_PTE_FAST): Remove
macros.
[OLIVETTICACHE] (write_pte): Remove function.
* DEVELOPMENT: Document the removal.
|
|
Add support for global pages.
* i386/i386at/model_dep.c: Include <i386/locore.h>.
(i386at_init): Set CR4_PGE if available.
(c_boot_entry): Call discover_x86_cpu_type() before i386at_init().
* i386/intel/pmap.c: Include <i386/locore.h>.
(pmap_map_bd): Use INTEL_PTE_GLOBAL if available.
(pmap_bootstrap): Likewise.
|
|
|
|
Add support for cr3/cr4 flags.
* i386/i386/proc_reg.h (CR3_PCD, CR3_PWT, CR4_VME, CR4_PVI, CR4_TSD)
(CR4_DE, CR4_PSE, CR4_PAE, CR4_MCE, CR4_PGE, CR4_PCE, CR4_OSFXSR)
(CR4_OSXMMEXCPT, get_cr4, set_cr4): New macros.
* i386/intel/pmap.h (INTEL_PTE_GLOBAL): New macro.
|
|
Add support for x86 features.
* i386/i386/locore.h (cpu_features): New variable declaration.
(CPU_FEATURE_FPU, CPU_FEATURE_VME, CPU_FEATURE_DE,
CPU_FEATURE_PSE, CPU_FEATURE_TSC, CPU_FEATURE_MSR, CPU_FEATURE_PAE,
CPU_FEATURE_MCE, CPU_FEATURE_CX8, CPU_FEATURE_APIC, CPU_FEATURE_SEP,
CPU_FEATURE_MTRR, CPU_FEATURE_PGE, CPU_FEATURE_MCA, CPU_FEATURE_CMOV,
CPU_FEATURE_PAT, CPU_FEATURE_PSE_36, CPU_FEATURE_PSN,
CPU_FEATURE_CFLSH, CPU_FEATURE_DS, CPU_FEATURE_ACPI, CPU_FEATURE_MMX,
CPU_FEATURE_FXSR, CPU_FEATURE_SSE, CPU_FEATURE_SSE2, CPU_FEATURE_SS,
CPU_FEATURE_HTT, CPU_FEATURE_TM, CPU_FEATURE_PBE, CPU_HAS_FEATURE): New
macros
* i386/i386/locore.S (cpu_features): New variable.
(discover_x86_cpu_type): Record CPUID feature word 0.
|
|
Drop useless and broken FPE support.
* i386/configfrac.ac (FPE): Don't define.
* i386/i386/gdt.h (FPE_CS, USER_FPREGS): Remove macros.
* i386/i386/fpu.c (init_fpu, fpu_set_state, fpu_get_state): Remove FPE
support.
* i386/i386/fpu.h: Likewise.
* i386/i386/trap.c (user_trap, i386_exception): Likewise.
* i386/i386/fpe_linkage.c: Remove file.
* i386/Makefrag.am: Remove i386/i386/fpe_linkage.c.
* Makefile.in: Regenerate.
|
|
[patch #5019 --- ``Remove checks for continuations'']
* DEVELOPMENT: Document the removal.
* i386/configfrag.ac (CONTINUATIONS): Don't define.
2006-12-03 Leonardo Lopes Pereira <leonardolopespereira@gmail.com>
[patch #5019 --- ``Remove checks for continuations'']
* ipc/mach_msg.c: Adopt all users of CONTINUATIONS as if it were always
defined.
* kern/eventcount.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/syscall_subr.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/vm_resident.c: Likewise.
|
|
[patch #5017 --- ``Remove obsolete IPC interfaces.'']
* DEVELOPMENT: Document the removal.
* configfrag.ac (MACH_IPC_COMPAT): Don't define.
2006-12-03 Leonardo Lopes Pereira <leonardolopespereira@gmail.com>
[patch #5017 --- ``Remove obsolete IPC interfaces.'']
* kern/act.c [MIGRATING_THREADS]: Don't include <mach_ipc_compat.h>.
* kern/act.h: Likewise.
* i386/include/mach/i386/machine_types.defs: Adapt all users of
MACH_IPC_COMPAT as if it were always defined to `0'.
* include/mach/mach.defs: Likewise.
* include/mach/mach_param.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* include/mach/message.h: Likewise.
* include/mach/mig_errors.h: Likewise.
* include/mach/notify.h: Likewise.
* include/mach/port.h: Likewise.
* include/mach/std_types.defs: Likewise.
* include/mach/syscall_sw.h: Likewise.
* include/mach/task_special_ports.h: Likewise.
* include/mach/thread_special_ports.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_notify.c: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_right.c: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.c: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/mach_debug.c: Likewise.
* ipc/mach_msg.c: Likewise
* ipc/mach_msg.h: Likewise.
* ipc/mach_port.c: Likewise.
* kern/act.c: Likewise.
* kern/act.h: Likewise.
* kern/ipc_host.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/syscall_sw.c: Likewise.
* kern/thread.h: Likewise.
|
|
Thomas Schwinge <tschwinge@gnu.org>
[bug #18015 --- ``GNU Mach: `make dist' and friends'']
* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
(EXTRA_DIST): Enhance with the patches and documentation files.
(dist-hook): New target to remove the `CVS' directories.
* Makefrag.am (libkernel_a_SOURCES, EXTRA_DIST): Add header and `mig'
input files.
(DISTCHECK_CONFIGURE_FLAGS): Enable the kernel debugger.
* i386/Makefrag.am: Likewise. Also add `i386/i386/i386asm.sym',
`i386/ldscript' and `i386/README-Drivers'.
* i386/linux/Makefrag.am (liblinux_a_SOURCES): Add the header files
from `i386/linux/'.
* linux/Makefrag.am (liblinux_a_SOURCES, EXTRA_DIST)
(liblinux_pcmcia_cs_modules_a_SOURCES)
(liblinux_pcmcia_cs_clients_a_SOURCES)
(liblinux_pcmcia_cs_wireless_a_SOURCES): Add header and other included
files.
(dist-hook): Depend on `dist-hook-linux'.
(dist-hook-linux): New phony target to remove the `asm' symbolic links.
* Makerules.am (EXTRA_DIST): Add `gensym.awk'.
* doc/Makefrag.am (EXTRA_DIST): Add `$(mach_TEXINFOS)'.
* configure.ac (AC_CONFIG_LINKS): Move instantiation to...
* configfrag.ac: ... here and change quotation.
* linux/configfrag.ac (AC_CONFIG_LINKS): Change quotation.
|
|
Fix i386's 4GiB overflow.
* i386/i386at/model_dep.c (mem_size_init): Truncate memory size to
4GiB.
|
|
Asm tidy.
* i386/i386/fpe_linkage.c (disable_fpe): Gather dependent asm
statements, add `ax' clobber.
(fpe_exception_fixup): Drop bogus cast from input parameter of lcall asm
statement.
* i386/i386/pio.h (inw, outw): Drop 0x66 prefix an just use the w
instruction variant.
* i386/i386/proc_reg.h: (get_eflags, get_tr, get_ldt): Drop
useless "volatile" from asm statement.
(get_esp): Use direct asm register specification.
* i386/include/mach/i386/cthreads.h (cthread_sp): Likewise.
* i386/intel/pmap.c (pmap_unmap_page_zero): Fix asm clobber into `eax'.
De4x5 probe fixup.
* linux/src/drivers/net/de4x5.c (pci_probe): Make probe loop stop on
any error, not only device not found.
|
|
Thomas Schwinge <tschwinge@gnu.org>
* i386/README-Drivers: Move most of the text into...
* doc/mach.texi: ... here and update a number of things.
(UPDATED): Don't override.
|