summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-10-14Revert spurious part of 909c941dSamuel Thibault
2009-10-14Fix db kernel memory accessSamuel Thibault
i386/i386/db_interface.c (db_read_bytes): Also check addr against VM_MAX_KERNEL_ADDRESS.
2009-10-14Fix macro escapesSamuel Thibault
i386/intel/pmap.c (INVALIDATE_TLB): Fix macro escapes
2009-10-14Fix allocation failure during gcSamuel Thibault
kern/zalloc.c (zone_gc): Allocate and free a vm_map_kentry_zone element to make sure the gc will be able to allocate one for vm_map_delete.
2009-10-14More restrictive requirements on zone alignmentSamuel Thibault
kern/zalloc.c (zinit): Panic if requested alignment doesn't match page size and list elements.
2009-10-14Fix return with lock heldSamuel Thibault
vm/vm_map.c (vm_map_copy_overwrite): Unlock dst_map before returning.
2009-10-14Fix return with lock heldSamuel Thibault
vm/vm_map.c (vm_map_enter): Use RETURN instead of return to unlock the map before returning.
2009-10-14Make local variable staticSamuel Thibault
kern/lock.c (lock_wait_time): Add static qualifier.
2009-10-14Advertise memory size truncationsSamuel Thibault
i386/i386at/model_dep.c (mem_size_init): Advertise memory size truncations.
2009-09-27Disable CMD-640 supportSamuel Thibault
It messes too much with probing and brings hang issue. * i386/linux/dev/include/linux/autoconf.h (CONFIG_BLK_DEV_CMD640, CONFIG_BLK_DEV_CMD640_ENHANCED): Undefine macros.
2009-07-11Switch to the new ChangeLog style.Thomas Schwinge
* ChangeLog: Wipe out content, and add instructions about how to get it back. * ChangeLog.0: Remove file. * ChangeLog.00: Likewise.
2009-06-182009-02-26 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/prog_reg.h (invlpg_linear): Rename macro into... (invlpg_linear_range): ... this. (invlpg_linear): New macro. * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_linear instead of flush_tlb when e - S is compile-time known to be PAGE_SIZE, instead of run-time known to be less than 32 * PAGE_SIZE.
2009-06-182009-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/intel/pmap.c (INVALIDATE_TLB): For now, disable use of invlpg.
2009-06-182009-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/gdt.h (LINEAR_DS): New macro. * i386/i386/gdt.c (gdt_init): Initialize LINEAR_DS descriptor. * i386/i386/proc_reg.h (invlpg_user): Rename macro into... (invlpg_linear): ... this. Use movw instead of movl to set KERNEL_DS selector. Use LINEAR_DS selector instead of USER_DS selector. * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_linear instead of invlpg_user.
2009-06-182008-12-30 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/proc_reg.h [__ASSEMBLER__ && __GNUC__]: Include <i386/gdt.h> and <i386/ldt.h> (invlpg_user): New macro. * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_user instead of invlpg. (pmap_remove, pmap_page_protect, pmap_protect, pmap_enter, pmap_collect, phys_attribute_clear): Call PMAP_UPDATE_TLBS after pde update instead of before.
2009-06-182008-12-29 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/intel/pmap.c (pmap_bootstrap): Extend kernel virtual memory to at least the size of the physical memory.
2009-06-182008-12-05 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* vm/vm_fault.c (vm_fault_page): Print value returned memory_object_data_request as %x instead of %d.
2009-06-182008-11-15 Shakthi Kannan <shakshurd@gmail.com>Samuel Thibault
* device/ds_routines.h (device_reference, device_deallocate): Add function prototypes. * kern/task.c (task_create): Moved unused i variable inside FAST_TAS. * vm/vm_map.h (vm_map_copy_page_discard): Add function prototype. * vm/vm_kern.c (projected_buffer_deallocate): Give &map->hdr instead of map to _vm_map_clip_start and _vm_map_clip_end functions. 2008-12-01 Samuel Thibault <samuel.thibault@ens-lyon.org> * device/device_emul.h (device_emulation_ops): Turn back reference, dealloc, dev_to_port, write_trap and writev_trap into taking a void*, as they do not always take a mach_device_t. * device/ds_routines.c (mach_device_emulation_ops): Cast mach_device_reference, mach_device_deallocate, mach_convert_device_to_port, device_write_trap and device_writev_trap to (void*) to make them accept a void* argument. * linux/pcmcia-cs/glue/ds.c (device_deallocate): Rename function into... (ds_device_deallocate): ... this. (dev_to_port): Call ds_device_deallocate instead of device_deallocate. (linux_pcmcia_emulation_ops): Use ds_device_deallocate instead of device_deallocate, cast mach_device_reference to (void*) to make it accept a void* argument.
2009-06-182008-11-28 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/Makefrag.am: Only advertize updating the web pages on gnumach-1-branch.
2009-06-182008-11-27 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/proc_reg.h (invlpg): New macro. * i386/intel/pmap.c (INVALIDATE_TLB): If portion to be flushed is less than 32 pages, use calls to invlpg instead of flush_tlb.
2009-06-182008-11-23 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-18Enhance.Thomas Schwinge
2009-06-182008-11-17 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* Makefile.am (install_sh, INSTALL): Point to `build-aux/install-sh'.
2009-06-182008-11-17 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* configure.ac: Require GNU Automake 1.10.1. * Makefile.am: Adapt. * Makefile.correct_output_files_for_.S_files.patch: Remove.
2009-06-182008-07-19 Barry deFreese <bdefreese@debian.org>Samuel Thibault
* 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.
2009-06-182008-11-13 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[task #8135 -- PAE for GNU Mach] * i386/configfrag.ac (enable_pae): Add checks: this is ix86-only. * doc/mach.texi (Configuration): Document the new option.
2009-06-182008-11-12 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* i386/configfrag.ac (enable_pae): Add checks: this is ix86-only.
2009-06-18Tidy up ChangeLog.Thomas Schwinge
2009-06-182008-11-11 Shakthi Kannan <shakshurd@gmail.com>Samuel Thibault
* kern/eventcount.c (evc_wait_clear): Remove unused variable 'ret'.
2009-06-182008-11-10 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182008-11-10 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
[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.
2009-06-182008-11-05 Shakthi Kannan <shakshurd@gmail.com>Samuel Thibault
* ipc/mach_port.c (mach_port_insert_right): Cast poly into (ipc_object_t) to fix compiler warning when calling ipc_object_copyout_name.
2009-06-182008-08-31 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* i386/i386/trap.c (user_trap): On page fault, raise exception instead of asserting that cr2 is below LINEAR_MIN_KERNEL_ADDRESS.
2009-06-182008-07-29 Zheng Da <zhengda1936@gmail.com>Samuel Thibault
Manuel Menal <mmenal@hurdfr.org> * include/device/net_status.h (NET_FLAGS): New macro. * linux/dev/glue/net.c (device_get_status): Handle NET_FLAGS case. (device_set_status): Likewise, calls dev_change_flags. * linux/dev/include/linux/netdevice.h (dev_change_flags): Declare function. * linux/dev/net/core/dev.c (dev_change_flags): Add function.
2009-06-182008-08-03 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182008-07-23 Barry deFreese <bddebian@comcast.net>Samuel Thibault
* 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.
2009-06-182008-07-23 Barry deFreese <bddebian@comcast.net>Samuel Thibault
* 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.
2009-06-182008-07-19 Barry deFreese <bddebian@comcast.net>Samuel Thibault
* 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().
2009-06-182008-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* linux/src/include/linux/tqueue.h (queue_task_irq, queue_task_irq_off, queue_task, run_task_queue): Turn into static inlines.
2009-06-182008-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182008-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* kern/mach_clock.c (timeout): Make the `fcn' parameter take a void * instead of char *. * kern/mach_clock.h (timeout): Likewise.
2009-06-182008-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* device/net_io.c (net_deliver): Fix parenthesis to really round up.
2009-06-182008-07-20 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* 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.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* include/sys/types.h (quad): Remove type.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* (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.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* ddb/db_break.c (db_set_breakpoint): Add db_breakpoint_t return type, return the breakpoint in non-ddb case. * ddb/db_break.h (BKPT_EXTERNAL): New macro. (db_set_breakpoint): Add declaration.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* ddb/db_sym.c (db_task_printsym): Do not print empty symbols.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* include/sys/types.h (int8_t, uint8_t, u_int8_t, int16_t, uint16_t, u_int16_t, int32_t, uint32_t, u_int32_t, int64_t, uint64_t, u_int64_t): New types.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* i386/i386/db_interface.c (db_read_bytes): Do not increment the address before printing it.
2009-06-182008-07-18 Andrei Barbu <andrei@0xab.com>Samuel Thibault
* 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.