summaryrefslogtreecommitdiff
path: root/i386
AgeCommit message (Collapse)Author
2009-06-182007-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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"
2009-06-182007-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182007-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY) (TIME_TRAP_UEXIT): Use TH_SYSTEM_TIMER instead of old TH_SYS_TIMER.
2009-06-18fix trivial syntax errorSamuel Thibault
2009-06-182007-07-08 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182007-07-04 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/intel/pmap.c (pmap_enter): Use INTEL_PTE_NCACHE|INTEL_PTE_WTHRU when cpu >= 486 and physical address is after memory end.
2009-06-182007-06-23 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/trap.c (user_trap): Read faulting linear address before using it.
2009-06-182007-06-02 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* Makerules.mig.am: New file, factored out of code of... * Makefrag.am: ... this file and... * Makerules.am: ... this file. * i386/Makefrag.am: Update comment.
2009-06-182007-05-08 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/fpu.c (fpu_set_state): Set fp_valid to TRUE. Free the unused ifps.
2009-06-182007-05-07 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[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.
2009-06-182007-05-05 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* i386/i386at/model_dep.c (halt_cpu, halt_all_cpus): Call `machine_idle' to avoid busy-looping.
2009-06-182007-05-05 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* i386/intel/read_fault.c (intel_read_fault): Remove the last parameter from the calls of `vm_map_lookup'.
2009-06-182007-05-02 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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.
2009-06-182007-04-30 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
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.
2009-06-182007-04-25 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[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.
2009-06-182007-04-02 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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.
2009-06-182007-03-27 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
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.
2009-06-182007-03-24 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* i386/i386at/conf.c (block_io_mmap): Remove declaration.
2009-06-182007-03-23 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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.
2009-06-182007-03-19 Tim Retout <tim@retout.co.uk>Thomas Schwinge
* i386/ldscript: Correct 'LINKFLAGS_gnumach' in comment.
2009-06-182007-03-06 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/user_ldt.c (i386_set_gdt): Call switch_ktss() if target is current thread.
2009-06-182007-02-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182007-02-19 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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'.
2009-06-182007-02-19 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
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.
2009-06-182007-02-05 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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.
2009-06-182007-02-04 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* i386/i386/hardclock.c: Don't check for the `SYMMETRY' platform.
2009-06-182007-02-04 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* kern/timer.h: Add some comments from... * i386/i386/timer.h: ... here and remove this file.
2009-06-182006-01-06 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* 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>.
2009-06-182006-12-30 Richard Braun <syn@hurdfr.org>Samuel Thibault
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.
2009-06-182007-01-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182007-01-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
Fix loop indexing. * i386/intel/pmap.c (pmap_change_wiring): Increment pte in the unwiring loop.
2009-06-182007-01-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182006-12-19 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-18typoSamuel Thibault
2009-06-182006-12-19 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182006-12-19 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182006-12-13 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182006-12-03 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[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.
2009-06-182006-12-03 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[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.
2009-06-182006-11-30 Barry deFreese <bddebian@comcast.net>Thomas Schwinge
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.
2009-06-182006-11-26 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
Fix i386's 4GiB overflow. * i386/i386at/model_dep.c (mem_size_init): Truncate memory size to 4GiB.
2009-06-182006-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
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.
2009-06-182006-11-17 Constantine Kousoulos <wuwei@freemail.gr>Thomas Schwinge
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.
2009-06-182006-11-13 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386at/iopl.c (ioplmmap): Add `int' return type. * i386/i386at/model_dep.c (halt_all_cpus): Fix typo in declaration. * kern/assert.h (Assert): Add __attribute__ ((noreturn)) to declaration. * kern/debug.c (Debugger): Add __attribute__ ((noreturn)) to declaration. (Debugger): Add call to panic(). * kern/debug.h (panic): Add __attribute__ ((noreturn)) to declaration.
2009-06-182006-11-14 Barry deFreese <bddebian@comcast.net>Samuel Thibault
* device/chario.c (tty_cts): Add `void' return type. * device/cons.c (cninit, cnputc): Add `void' return type. (cngetc, cnmaygetc): Add `int' return type. * device/net_io.c (net_del_q_info, net_free_dead_infp) (net_free_dead_entp): Add `void' return type. * i386/i386/fpu.c (fpnoextflt, fpextovrflt, fpexterrflt, fp_save) (fp_load, fpintr): Add `void' return type. * i386/i386/ktss.c (ktss_init): Add `int' type to `exception_stack'. * i386/i386/loose_ends.c (delay): Add `void' return type. * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys) (copy_from_phys): Add `void' return type. * i386/i386/pic.c (picinit, form_pic_mask, intnull, prtnull): Add `void' return type. * i386/i386/pit.c (clkstart): Add `void' return type. * i386/i386at/com.c (comparm, comtimer, fix_modem_state) (commodem_intr): Add `void' return type. (comintr, commctl, comstop): Add `int' return type. * i386/i386at/iopl.c (ioplclose): Add `int' return type. * i386/i386at/kd.c (kd_io_map_openn, kd_io_map_close, feep, pause) (kd_debug_put, cnpollc, kdclose, kd_handle_ack, kd_resend, kdinit) (kd_belloff, kd_bellon, kd_putc, kd_setpos, kd_scrollup, kd_scrolldn) (kd_parseesc, kd_parserest, kd_tab, kd_cls, kd_home, kd_up, kd_down) (kd_right, kd_left, kd_cr, kd_cltobcur, kd_cltopcurn, kd_cltoecur) (kd_clfrbcur, kd_delln, kd_insln, kd_delch, kd_erase, kd_eraseln) (kd_insch, kd_senddata, kd_sendcmd, kd_cmdreg_write, kd_mouse_drain) (set_kd_state, kd_setleds1, kd_setleds2, cnsetleds, kdreboot): Add `void' return type. (kdopen, kdread, kdwrite, kdportdeath, kdsetbell, kdgetkbent, kdintr) (do_modifier, kdstate2idx, kdstart, kdstop, kd_kbd_magic): Add `int' return type. (kd_isupper, kd_islower): Add `boolean_t' return type. (kd_cmdreg_read): Add `unsigned char' return type. * i386/i386at/kd_event.c (kbdinit, kbdclose, kdb_in_out, X_kdb_enter) (X_kdb_exit, X_kdb_enter_init, X_kdb_exit_init): Add `void' return type. (kbdopen, kbdioctl, kbdselect, kbdread): Add `int' return type. * i386/i386at/kd_mouse.c (init_mouse_hw, serial_mouse_open) (kd_mouse_open, mouseclose, serial_mouse_close, kd_mouse_close) (mouse_handle_byte, mouse_packet_mouse_system_mouse) (mouse_packet_microsoft_mouse, ibm_ps2_mouse_open) (ibm_ps2_mouse_close, mouse_packet_ibm_ps2_mouse, mouse_moved) (mouse_button): Add `void' return type. (mouseopen, mouseioctl, mouseselect, mouseread, mouseintr): Add `int' return type. * i386/i386at/lpr.c (lprclose, lprpr_addr): Add `void' return type. (lprprobe, lpropen, lprread, lprwrite, lprportdeath, lprstop, lprpr): Add `int' return type. * i386/i386at/model_dep.c (i386at_init, startrtclock): Add `void' return type. (timemmap): Add `int' return type. * i386/i386at/rtc.c (rtcinit, rtcput): Add `void' return type. (yeartoday, hexdectodec, readtodc, writetodc): Add `int' return type. * i386/intel/pmap.c (pmap_pageable): Add `void' return type. * kern/eventcount.c (simpler_thread_setrun): Add `int' type to `whichrq' variable.
2009-06-182006-11-13 Barry deFreese <bddebian@comcast.net>Samuel Thibault
* i386/i386/locore.h: New file. * i386/i386/pcb.h: New file. * i386/i386/pcb.c: Include `pcb.h'. * i386/i386/pit.c (clkstart): Fix type of s into unsigned long. * i386/i386/spl.h (spl0, splsched, splx, splsoftclock, splon, sploff) (splhigh, splimp, spltty, splclock, setsoftclock): Add prototype. * i386/i386at/kd_event.h: New file. * i386/i386at/kd_event.c: Include `kd_event.h'. * i386/i386at/kd_mouse.h: New file. * i386/i386at/kd_mouse.c: Include `kd_mouse.h'. (mouseclose): Fix call of `serial_mouse_close' function. * i386/i386at/kd.c: Include `kd_event.h' and `kd_mouse.h'. * i386/i386at/kd.h (splx, spltty): Remove prototypes.h * i386/i386at/lpr.c: Likewise. * ipc/mach_msg.c: Include `machine/locore.h' and `machine/pcb.h'. * kern/mach_clock.h: New file. * kern/mach_clock.c: Include `kern/queue.h', `kern/timer.h' and `mach_clock.h'. * kern/mach_factor.h: New file. * kern/mach_factor.c: Include `mach_factor.h'. * kern/sched_prim.c: Include `kern/mach_factor.h'. * kern/thread.c: Include `machine/pcb.h'.
2009-06-182006-11-11 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/intel/pmap.c (SPLVM, SPLX): Artificially use parameter of macro.
2009-06-182006-11-11 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
Fix I/O port type. * i386/i386/pic.c (master_icq, master_ocw, slaves_icq, slaves_ocw): Change variables type from char * to unsigned short. (picinit): Remove now-useless cast. * i386/i386at/kd_mouse.c (init_mouse_hw, serial_mouse_close) (mouseintr): Change variable type from caddr_t to unsigned short, remove now-useless cast.
2009-06-18Fix artificial use of parameterSamuel Thibault
2009-06-182006-11-11 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
Fix a bunch of "unused variable" warnings. * device/ds_routines.c (ds_device_open): Remove unused `namebuf' variable. * device/kmsg.c (kmsgread): Remove unused `err' variable. * device/net_io.c (net_set_filter): Remove unused `j' variable. * i386/i386/pcb.c (curr_gdt, curr_ktss): Artificially use parameter of macro. * i386/i386/pic.c (picinit): Remove unused `i' variable. * i386/i386/pit.c (clkstart): Remove unused `flags' variable. * i386/i386/trap.c (kernel_trap): Remove unused `exc' variable. (user_trap): Remove unused `map' and `result' variables. (v86_assist): Remove unused `size' variable. * i386/i386at/i386at_ds_routines.c (ds_device_open): Remove unused `dev' variable. * i386/i386at/kd.c (kdintr): Remove unused `o_pri' variable. (kdcngetc): Remove unused `i' variable. * i386/i386at/kd_event.c (kbdgetstat, kbdsetstat): Remove unused `result' variable. * i386/i386at/kd_mouse.c (mousegetstat): Likewise. * i386/i386at/lpr.c (lprattach): Remove unused `tp' variable. (lprsetstat): Remove unused `dev_addr' and `s' variables. * i386/intel/pmap.c (pmap_bootstrap): Remove unused `pteva' variable. * ipc/ipc_kmsg.c (ipc_kmsg_copyin_body): Remove unused `mr' variable. * kern/bootstrap.c (boot_script_exec_cmd): Remove unused `boot_exec_info' and `user_map' variables. * vm/vm_kern.c (projected_buffer_map): Remove unused `object' variable.