aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ignore bogus FDPT information from BIOSSamuel Thibault2010-01-041-5/+17
|
* Align mach_port_deallocate debug flag with usageSamuel Thibault2009-12-221-2/+2
| | | | | | * ipc/mach_port.c (debug_mach_port_deallocate): Rename to... (mach_port_deallocate_debug): ... new name, and set volatile to permit live changes from ddb.
* Do not systematically debug buggy port deallocationSamuel Thibault2009-12-221-1/+3
| | | | | | | * ipc/mach_port.c (debug_mach_port_deallocation): New variable, set to 0. (mach_port_deallocate): Only call SoftDebugger if debug_mach_port_deallocation is not 0.
* Merge branch 'master' of debhurd0:xen/gnumachSamuel Thibault2009-12-220-0/+0
|\
| * Fix debugger triggerroot2009-12-192-2/+9
| | | | | | | | | | | | * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of panicing.
* | Fix debugger triggerroot2009-12-222-2/+9
| | | | | | | | | | | | * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of panicing.
* | Invoke debugger on duplicate port deallocationSamuel Thibault2009-12-211-1/+6
| | | | | | | | | | | | * ipc/mach_port.c (mach_port_deallocate): Call SoftDebugger if ipc_right_lookup_write was not succcessful and `name' is not MACH_PORT_NULL or MACH_PORT_DEAD.
* | Add a SoftDebugger functionSamuel Thibault2009-12-217-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * kern/debug.h (SoftDebugger): Add prototype. * kern/debug.c (Debugger): Move code invoking debugging trap to... (SoftDebugger): ... new function. Print the passed message. * kern/lock_mon.c (decl_simple_lock_data, retry_bit_lock): Call SoftDebugger instead of Debugger. * device/ds_routines.c (ds_device_open, device_read, device_read_inband): Call SoftDebugger instead of Debugger. * i386/i386at/model_dep.c (c_boot_entry): Call SoftDebugger instead of Debugger. * kern/syscall_sw.c (null_port, kern_invalid): Call SoftDebugger instead of Debugger. * vm/vm_object.c (vm_object_collapse): Call SoftDebugger instead of Debugger.
* | Document kdb_kintr stack manipulationSamuel Thibault2009-12-191-0/+4
|/ | | | * i386/i386/locore.S: Document kdb_kintr stack manipulation.
* Add missing castsGuillem Jover2009-12-181-2/+2
| | | | | * vm/vm_resident.c (vm_page_grab_contiguous_pages): Cast `prevmemp' assignement to vm_page_t.
* Add missing function prototypesGuillem Jover2009-12-182-0/+2
| | | | | * i386/i386/pcb.c (Load_context): New prototype. * i386/i386at/lpr.c (lprpr_addr): Likewise.
* Use `unsigned char *' for byte buffersGuillem Jover2009-12-181-8/+8
| | | | | | | | | * linux/src/drivers/net/apricot.c (struct i596_tbd): Change `data' member type to `unsigned char *'. (struct i596_rfd): Change `data' member type to `unsigned char'. (print_eth): Change argument type to `unsigned char'. Remove unneeded casts. (set_multicast_list): Change cast for print_eth to `unsigned char *'.
* Mark macro arguments as usedGuillem Jover2009-12-182-1/+12
| | | | | | | | | | * i386/intel/pmap.c [!NCPUS > 1] (INVALIDATE_TLB): Mark `pmap', `s' and `e' arguments as used. * i386/intel/pmap.h [!NCPUS > 1] (PMAP_ACTIVATE_KERNEL): Mark `my_cpu' argument as used. (PMAP_DEACTIVATE_KERNEL): Likewise. (PMAP_ACTIVATE_USER): Likewise. Mark `th' argument as used. (PMAP_DEACTIVATE_USER): Mark `thread' and `cpu' arguments as used.
* Missing `*' in assembler indirect lcallGuillem Jover2009-12-181-10/+10
| | | | | | | | | * linux/src/arch/i386/kernel/bios32.c (bios32_service): Add `*' in indirect lcall. (check_pcibios, pci_bios_find_class, pci_bios_find_device): Likewise. (pci_bios_read_config_byte, pci_bios_read_config_word): Likewise. (pci_bios_read_config_dword, pci_bios_write_config_byte): Likewise. (pci_bios_write_config_word, pci_bios_write_config_dword): Likewise.
* Interrupt handlers do not return any valueGuillem Jover2009-12-182-11/+7
| | | | | | | | | * i386/i386at/kd_mouse.c (kd_mouse_open): Change kdintr return type to `void'. (oldvect): Change return type to `void'. * linux/dev/arch/i386/kernel/irq.c (linux_timer_intr): Likewise. (intnull, prtnull, linux_intr, linux_bad_intr): Likewise. (old_clock_handler): Likewise.
* Use selector definitions from Mach for Linux codeGuillem Jover2009-12-181-10/+2
| | | | | | | | * linux/src/include/asm-i386/segment.h [MACH]: Include <machine/gdt.h> and <machine/ldt.h>. [MACH && MACH_HYP] (KERNEL_CS, KERNEL_DS): Remove macros. [MACH && !MACH_HYP] (KERNEL_CS, KERNEL_DS): Likewise. [MACH] (USER_CS, USER_DS): Likewise.
* Move linux/dev/include/asm-i386/segment.h to src treeGuillem Jover2009-12-182-418/+79
| | | | | * linux/dev/include/asm-i386/segment.h: Move to ... * linux/src/include/asm-i386/segment.h: ... here.
* Match function types with `struct tty' member functionsGuillem Jover2009-12-182-10/+11
| | | | | * i386/i386at/com.c (comstart): Change return type to `void'. * i386/i386at/lpr.c (lprstop): Likewise.
* Use explicit type int when defining register variablesGuillem Jover2009-12-181-4/+4
| | | | | * linux/src/drivers/scsi/aha1542.c (WAIT, WAITd): Define variables with explicit type `register int' and not just `register'.
* Add Xen supportSamuel Thibault2009-12-16104-55/+12952
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-11 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to 0x20000000. * i386/i386/i386asm.sym (pfn_list) [VM_MIN_KERNEL_ADDRESS == LINEAR_MIN_KERNEL_ADDRESS]: Define to constant PFN_LIST. 2009-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/intel/pmap.c [MACH_HYP] (INVALIDATE_TLB): Call hyp_invlpg instead of flush_tlb when e - s is compile-time known to be PAGE_SIZE. 2008-11-27 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/configfrag.ac (enable_pae): Enable by default on the Xen platform. 2007-11-14 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386at/model_dep.c (machine_relax): New function. (c_boot_entry): Refuse to boot as dom0. 2007-10-17 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr(). 2007-08-12 Samuel Thibault <samuel.thibault@ens-lyon.org> * Makefile.am (clib_routines): Add _START. * i386/xen/xen_boothdr: Use _START for VIRT_BASE and PADDR_OFFSET. Add GUEST_VERSION and XEN_ELFNOTE_FEATURES. 2007-06-13 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/user_ldt.h (user_ldt) [MACH_XEN]: Add alloc field. * i386/i386/user_ldt.c (i386_set_ldt) [MACH_XEN]: Round allocation of LDT to a page, set back LDT pages read/write before freeing them. (user_ldt_free) [MACH_XEN]: Likewise. 2007-04-18 Samuel Thibault <samuel.thibault@ens-lyon.org> * device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices. 2007-02-19 Thomas Schwinge <tschwinge@gnu.org> * i386/xen/Makefrag.am [PLATFORM_xen] (gnumach_LINKFLAGS): Define. * Makefrag.am: Include `xen/Makefrag.am'. * configure.ac: Include `xen/configfrag.ac'. (--enable-platform): Support the `xen' platform. * i386/configfrag.ac: Likewise. * i386/Makefrag.am [PLATFORM_xen]: Include `i386/xen/Makefrag.am'. 2007-02-19 Samuel Thibault <samuel.thibault@ens-lyon.org> Thomas Schwinge <tschwinge@gnu.org> * i386/xen/Makefrag.am: New file. * xen/Makefrag.am: Likewise. * xen/configfrag.ac: Likewise. 2007-02-11 (and later dates) Samuel Thibault <samuel.thibault@ens-lyon.org> Xen support * Makefile.am (clib_routines): Add _start. * Makefrag.am (include_mach_HEADERS): Add include/mach/xen.h. * device/cons.c (cnputc): Call hyp_console_write. * i386/Makefrag.am (libkernel_a_SOURCES): Move non-Xen source to [PLATFORM_at]. * i386/i386/debug_trace.S: Include <i386/xen.h> * i386/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(), do not enable CR0_EM. * i386/i386/gdt.c: Include <mach/xen.h> and <intel/pmap.h>. [MACH_XEN]: Make gdt array extern. [MACH_XEN] (gdt_init): Register gdt with hypervisor. Request 4gb segments assist. Shift la_shift. [MACH_PSEUDO_PHYS] (gdt_init): Shift pfn_list. * i386/i386/gdt.h [MACH_XEN]: Don't define KERNEL_LDT and LINEAR_DS. * i386/i386/i386asm.sym: Include <i386/xen.h>. [MACH_XEN]: Remove KERNEL_LDT, Add shared_info's CPU_CLI, CPU_PENDING, CPU_PENDING_SEL, PENDING, EVTMASK and CR2. * i386/i386/idt.c [MACH_HYP] (idt_init): Register trap table with hypervisor. * i386/i386/idt_inittab.S: Include <i386/i386asm.h>. [MACH_XEN]: Set IDT_ENTRY() for hypervisor. Set trap table terminator. * i386/i386/ktss.c [MACH_XEN] (ktss_init): Request exception task switch from hypervisor. * i386/i386/ldt.c: Include <mach/xen.h> and <intel/pmap.h> [MACH_XEN]: Make ldt array extern. [MACH_XEN] (ldt_init): Set ldt readwrite. [MACH_HYP] (ldt_init): Register ldt with hypervisor. * i386/i386/locore.S: Include <i386/xen.h>. Handle KERNEL_RING == 1 case. [MACH_XEN]: Read hyp_shared_info's CR2 instead of %cr2. [MACH_PSEUDO_PHYS]: Add mfn_to_pfn computation. [MACH_HYP]: Drop Cyrix I/O-based detection. Read cr3 instead of %cr3. Make hypervisor call for pte invalidation. * i386/i386/mp_desc.c: Include <mach/xen.h>. [MACH_HYP] (mp_desc_init): Panic. * i386/i386/pcb.c: Include <mach/xen.h>. [MACH_XEN] (switch_ktss): Request stack switch from hypervisor. [MACH_HYP] (switch_ktss): Request ldt and gdt switch from hypervisor. * i386/i386/phys.c: Include <mach/xen.h> [MACH_PSEUDO_PHYS] (kvtophys): Do page translation. * i386/i386/proc_reg.h [MACH_HYP] (cr3): New declaration. (set_cr3, get_cr3, set_ts, clear_ts): Implement macros. * i386/i386/seg.h [MACH_HYP]: Define KERNEL_RING macro. Include <mach/xen.h> [MACH_XEN] (fill_descriptor): Register descriptor with hypervisor. * i386/i386/spl.S: Include <i386/xen.h> and <i386/i386/asm.h> [MACH_XEN] (pic_mask): #define to int_mask. [MACH_XEN] (SETMASK): Implement. * i386/i386/vm_param.h [MACH_XEN] (HYP_VIRT_START): New macro. [MACH_XEN]: Set VM_MAX_KERNEL_ADDRESS to HYP_VIRT_START- LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS. Increase KERNEL_STACK_SIZE and INTSTACK_SIZE to 4 pages. * i386/i386at/conf.c [MACH_HYP]: Remove hardware devices, add hypervisor console device. * i386/i386at/cons_conf.c [MACH_HYP]: Add hypervisor console device. * i386/i386at/model_dep.c: Include <sys/types.h>, <mach/xen.h>. [MACH_XEN] Include <xen/console.h>, <xen/store.h>, <xen/evt.h>, <xen/xen.h>. [MACH_PSEUDO_PHYS]: New boot_info, mfn_list, pfn_list variables. [MACH_XEN]: New la_shift variable. [MACH_HYP] (avail_next, mem_size_init): Drop BIOS skipping mecanism. [MACH_HYP] (machine_init): Call hyp_init(), drop hardware initialization. [MACH_HYP] (machine_idle): Call hyp_idle(). [MACH_HYP] (halt_cpu): Call hyp_halt(). [MACH_HYP] (halt_all_cpus): Call hyp_reboot() or hyp_halt(). [MACH_HYP] (i386at_init): Initialize with hypervisor. [MACH_XEN] (c_boot_entry): Add Xen-specific initialization. [MACH_HYP] (init_alloc_aligned, pmap_valid_page): Drop zones skipping mecanism. * i386/intel/pmap.c: Include <mach/xen.h>. [MACH_PSEUDO_PHYS] (WRITE_PTE): Do page translation. [MACH_HYP] (INVALIDATE_TLB): Request invalidation from hypervisor. [MACH_XEN] (pmap_map_bd, pmap_create, pmap_destroy, pmap_remove_range) (pmap_page_protect, pmap_protect, pmap_enter, pmap_change_wiring) (pmap_attribute_clear, pmap_unmap_page_zero, pmap_collect): Request MMU update from hypervisor. [MACH_XEN] (pmap_bootstrap): Request pagetable initialization from hypervisor. [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) (pmap_map_mfn): New functions. * i386/intel/pmap.h [MACH_XEN] (INTEL_PTE_GLOBAL): Disable global page support. [MACH_PSEUDO_PHYS] (pte_to_pa): Do page translation. [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) (pmap_map_mfn): Declare functions. * i386/i386/xen.h: New file. * i386/xen/xen.c: New file. * i386/xen/xen_boothdr.S: New file. * i386/xen/xen_locore.S: New file. * include/mach/xen.h: New file. * kern/bootstrap.c [MACH_XEN] (boot_info): Declare variable. [MACH_XEN] (bootstrap_create): Rebase multiboot header. * kern/debug.c: Include <mach/xen.h>. [MACH_HYP] (panic): Call hyp_crash() without delay. * linux/dev/include/asm-i386/segment.h [MACH_HYP] (KERNEL_CS) (KERNEL_DS): Use ring 1. * xen/block.c: New file. * xen/block.h: Likewise. * xen/console.c: Likewise. * xen/console.h: Likewise. * xen/evt.c: Likewise. * xen/evt.h: Likewise. * xen/grant.c: Likewise. * xen/grant.h: Likewise. * xen/net.c: Likewise. * xen/net.h: Likewise. * xen/ring.c: Likewise. * xen/ring.h: Likewise. * xen/store.c: Likewise. * xen/store.h: Likewise. * xen/time.c: Likewise. * xen/time.h: Likewise. * xen/xen.c: Likewise. * xen/xen.h: Likewise. * xen/public/COPYING: Import file from Xen. * xen/public/callback.h: Likewise. * xen/public/dom0_ops.h: Likewise. * xen/public/domctl.h: Likewise. * xen/public/elfnote.h: Likewise. * xen/public/elfstructs.h: Likewise. * xen/public/event_channel.h: Likewise. * xen/public/features.h: Likewise. * xen/public/grant_table.h: Likewise. * xen/public/kexec.h: Likewise. * xen/public/libelf.h: Likewise. * xen/public/memory.h: Likewise. * xen/public/nmi.h: Likewise. * xen/public/physdev.h: Likewise. * xen/public/platform.h: Likewise. * xen/public/sched.h: Likewise. * xen/public/sysctl.h: Likewise. * xen/public/trace.h: Likewise. * xen/public/vcpu.h: Likewise. * xen/public/version.h: Likewise. * xen/public/xen-compat.h: Likewise. * xen/public/xen.h: Likewise. * xen/public/xencomm.h: Likewise. * xen/public/xenoprof.h: Likewise. * xen/public/arch-x86/xen-mca.h: Likewise. * xen/public/arch-x86/xen-x86_32.h: Likewise. * xen/public/arch-x86/xen-x86_64.h: Likewise. * xen/public/arch-x86/xen.h: Likewise. * xen/public/arch-x86_32.h: Likewise. * xen/public/arch-x86_64.h: Likewise. * xen/public/io/blkif.h: Likewise. * xen/public/io/console.h: Likewise. * xen/public/io/fbif.h: Likewise. * xen/public/io/fsif.h: Likewise. * xen/public/io/kbdif.h: Likewise. * xen/public/io/netif.h: Likewise. * xen/public/io/pciif.h: Likewise. * xen/public/io/protocols.h: Likewise. * xen/public/io/ring.h: Likewise. * xen/public/io/tpmif.h: Likewise. * xen/public/io/xenbus.h: Likewise. * xen/public/io/xs_wire.h: Likewise.
* Add stack-protector supportSamuel Thibault2009-11-301-0/+13
| | | | | * kern/debug.c (__stack_chk_guard): New variable (__stack_chk_fail): New function.
* Use gcc builtins for stdarg.h when availableSamuel Thibault2009-11-301-0/+12
| | | | | | | | * i386/include/mach/sa/stdarg.h [__GNUC__ >= 3] (va_list): Typedef to __builtin_va_list. (va_start): define to __builtin_va_start. (va_end): define to __builtin_va_end. (va_arg): define to __builtin_va_arg.
* Fix commit d088a062Samuel Thibault2009-11-281-0/+200
| | | | * vm/memory_object_proxy.c: New file.
* Add memory object proxiesSamuel Thibault2009-11-288-3/+64
| | | | | | | | | | | | | | | | | | | | | | Memory object proxies permit to replicate objects with different parameters, like reduced privileged, different offset, etc. They are e.g. essential for properly managing memory access permissions. 2005-06-06 Marcus Brinkmann <marcus@gnu.org> * include/mach/mach4.defs: Add memory_object_create_proxy interface. * Makefile.in (vm-cfiles): Add memory_object_proxy.c. * i386/include/mach/i386/vm_types.h (vm_offset_array_t): New type. * include/mach/memory_object.h (memory_object_array_t): New type. * vm/memory_object_proxy.c: New file. * kern/ipc_kobject.h: New macro IKOT_PAGER_PROXY. Bump up macros IKOT_UNKNOWN and IKOT_MAX_TYPE. * kern/ipc_kobject.c (ipc_kobject_notify): Call memory_object_proxy_notify for IKOT_PAGER_PROXY. * vm/vm_init.c (vm_mem_init): Call memory_object_proxy_init. * vm/vm_user.c (vm_map): Implement support for proxy memory objects.
* Add -H option to halt on panicSamuel Thibault2009-11-282-1/+14
| | | | | | | | | | 2005-12-29 Soeren D. Schulze <soeren.d.schulze@gmx.de> * i386/i386at/model_dep.c (reboot_on_panic) [!MACH_KBD]: New variable. (c_boot_entry) [!MACH_KBD]: Set reboot_on_panic to 0 if kernel_cmdline contains '-H'. * kern/debug.c (panic): Call halt_all_cpus with reboot_on_panic as argument.
* Add sis900 driverSamuel Thibault2009-11-285-0/+2100
| | | | | | | | | | | | 2005-05-01 Andreas B. Mundt <andi.mundt@web.de> * i386/README-Drivers: Likewise. * i386/linux/Makefile.in (linux-net-files): Added 'sis900'. * i386/linux/configure.ac (sis900): New driver. * linux/dev/drivers/net/Space.c: Add conditional probes 'sis900' driver. * linux/src/drivers/net/sis900.c: New file. * linux/src/drivers/net/sis900.h: Likewise.
* Add XMM FPU registers save/restore support.Samuel Thibault2009-11-285-36/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | * i386/include/mach/i386/fp_reg.h (struct i386_fp_regs): Invert array indices. (struct i386_xfp_save): New structure. (FP_387X): New macro. * i386/i386/thread.h (struct i386_fpsave_state): Add xfp_save_state member, keep existing fp_save_state and fp_regs members in an unnamed union member. Move fp_valid member to the end of the structure. * i386/i386/fpu.h (fxsave, fxrstor): New macros. (fpu_save_context): Use fxsave() when FPU is FXSR-capable. * i386/i386/fpu.c: Include <i386/locore.h> (mxcsr_feature_mask): New variable. (fp_save, fp_load): Add declaration. (init_fpu): Add FXSR-capable FPU detection. (fpu_module_init): Request 16-byte alignment to zinit() for i386_fpsave_state structures. (twd_i387_to_fxsr, twd_fxsr_to_i387): New functions. (fpu_set_state): Convert FPU state when FPU is FXSR-capable. (fpu_get_state): Convert FPU state when FPU is FXSR-capable. (fpexterrflt): Pass to i386_exception either xfp_save_state or fp_save_state according to FPU type. (fpastintr): Likewise. (fp_load): Likewise. Use fxrstor() when FPU is FXSR-capable. (fp_save): Use fxsave() when FPU is FXSR-capable. (fp_state_alloc): Add FXSR-aware initialization.
* Fix debugging messageSamuel Thibault2009-11-281-1/+1
| | | | * i386/i386/fpu.c (fphandleerr): Fix debugging message.
* Add native FPU error supportSamuel Thibault2009-11-283-32/+76
| | | | | | | | | | | | | | * i386/i386/fpu.c (init_fpu): Enable CR0_NE when processor is at least i486. (fpintr): Move code handling the FPU state to... (fphandleerr): New function. (fpexterrflt): Rename into... (fpastintr): New function. (fpexterrflt): Reintroduce function, calls fphandleerr then raises exception. * i386/i386/fpu.h (fpastintr): Add prototype. * i386/i386/trap.c (i386_astintr): Call fpastintr instead of fpexterrflt.
* Panic when no FPU is availableSamuel Thibault2009-11-281-2/+1
| | | | * i386/i386/fpu.c (init_fpu): Panic if no FPU is available.
* Initialize FPU in MS-DOS compatibility modeSamuel Thibault2009-11-281-1/+1
| | | | * i386/i386/fpu.c (init_fpu): Make sure CR0_NE is dropped.
* Declare memcmp functionSamuel Thibault2009-11-221-0/+2
| | | | * include/string.h (memcmp): New prototype.
* Do not fail if no PTE maps virtual address 0Samuel Thibault2009-11-221-0/+2
| | | | | * i386/intel/pmap.c (pmap_unmap_page_zero): Do not fail if no PTE maps virtual address 0.
* Remove (vm_offset_t) casts from constantsSamuel Thibault2009-11-222-6/+6
| | | | | | | | * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS, VM_MAX_KERNEL_ADDRESS, LINEAR_MIN_KERNEL_ADDRESS, LINEAR_MAX_KERNEL_ADDRESS): Remove (vm_offset_t) cast, use UL suffix instead. * i386/include/mach/i386/vm_param.h (VM_MIN_ADDRESS, VM_MAX_ADDRESS): Remove (vm_offset_t) cast, use UL suffix instead.
* Really call startrtclock() with an active thread.Samuel Thibault2009-11-221-1/+2
| | | | | * kern/startup.c (cpu_launch_first_thread): Call startrtclock really after starting at least one thread.
* Add pmap parameter to INVALIDATE_TLBSamuel Thibault2009-11-221-6/+7
| | | | | | | | * i386/intel/pmap.c (INVALIDATE_TLB): Add pmap parameter. (PMAP_UPDATE_TLBS): Pass pmap parameter. (process_pmap_updates): Likewise. (pmap_unmap_page_zero): Use INVALIDATE_TLB instead of hardcoding it.
* Add phys_first_addr and phys_last_addr declarationSamuel Thibault2009-11-223-8/+9
| | | | | | | | | * i386/i386/model_dep.h (phys_first_addr, phys_last_addr): New declarations. * i386/i386/trap.c: Include <i386/model_dep.h> (user_trap): Remove extern declaration of phys_last_addr. * i386/intel/pmap.c: Include <i386/model_dep.h> (phys_first_addr, phys_last_addr): Remove extern declaration.
* Use typeof(boot_info)Samuel Thibault2009-11-221-1/+1
| | | | | * i386/i386at/model_dep.c (i386at_init): Use typeof(boot_info) instead of hardcoding struct multiboot_info*.
* Fix early interrupt crashSamuel Thibault2009-11-221-5/+5
| | | | | * i386/i386at/model_dep.c (i386at_init): Move int_stack_high assignation to before setting up interrupts.
* Add missing phystokv/kvtophys conversionsSamuel Thibault2009-11-223-24/+25
| | | | | | | | | | | | | | | | * i386/i386/mp_desc.c (interrupt_stack_alloc): Apply phystokv to stack_start. * i386/i386at/model_dep.c (i386at_init): Apply phystokv to memory allocated to duplicate multiboot information. Apply _kvtophys before calling set_cr3. Apply phystokv to phys_last_addr before assigning to int_stack_high. * i386/intel/pmap.c (pmap_bootstrap): Apply phystokv to phys_last_addr, use kernel_virtual_start instead of phys_last_addr. Apply phystokv to allocated bootstrap page table pages. Apply _kvtophys to page table pointers before writing into page table. (pmap_enter): Apply phystokv to allocated page table page, apply kvtophys to deallocated page table page.
* Show command lines in task listSamuel Thibault2009-11-223-1/+95
| | | | | | | | | | | * Makefile.am (clib_routines): Add memcmp. * i386/i386/db_machdep.h (DB_GNUMACH_TASK_NAME): New macro. * i386/i386/db_interface.c (GNU): New macro. [GNU] (looks_like_command): New function. (db_task_name): When task map is kernel_pmap, return DB_GNUMACH_TASK_NAME. [GNU] (db_task_name): Use a GNU/Hurd-specific heuristic to get argv[] of a task.
* Replace phys_mem_va with VM_MIN_KERNEL_ADDRESSSamuel Thibault2009-11-222-9/+6
| | | | | | | * i386/i386/vm_param.h (phystokv): Use VM_MIN_KERNEL_ADDRESS instead of phys_mem_va. (_kvtophys): New macro. * i386/i386at/model_dep.c (phys_mem_va): Remove variable.
* Avoid confusion between global and local ldt varsSamuel Thibault2009-11-221-3/+3
| | | | * i386/i386/pcb.c (switch_ktss): Rename ldt variable into tldt.
* Do not assume that VM_MIN_KERNEL_ADDRESS is 0Samuel Thibault2009-11-222-9/+9
| | | | | | | | | | | * i386/i386/vm_param.h (VM_MAX_KERNEL_ADDRESS): Add VM_MIN_KERNEL_ADDRESS. (kvtolin): Subtract VM_MIN_KERNEL_ADDRESS. (lintokv): Add VM_MIN_KERNEL_ADDRESS. * i386/i386at/model_dep.c (mem_size_init): Subtract VM_MIN_KERNEL_ADDRESS in computation of phys_last_addr. (i386at_init): Use VM_MIN_KERNEL_ADDRESS instead of 0 as argument of lin2pdenum.
* Rewamp spl.hSamuel Thibault2009-11-221-10/+9
| | | | | * i386/i386/spl.h (splnet, splbio, spl7, splx_cli): Add prototypes.
* Do not assume that VM_MIN_KERNEL_ADDRESS is 0Samuel Thibault2009-11-221-4/+4
| | | | | | * i386/i386/gdt.c (gdt_init): Subtract VM_MIN_KERNEL_ADDRESS from LINEAR_MIN_KERNEL_ADDRESS to avoid assuming the former being 0.
* Fix db_search_null loopSamuel Thibault2009-11-221-1/+1
| | | | | * i386/i386/db_interface.c (db_search_null): Do not decrease vaddr twice.
* Introduce KERNEL_RINGSamuel Thibault2009-11-225-12/+16
| | | | | | | | | * i386/i386/seg.h (KERNEL_RING): New macro, set to 0. (ACC_PL_K, SEL_PL_K): Use KERNEL_RING instead of assuming 0. * i386/i386/gdt.h (KERNEL_CS, KERNEL_DS): Likewise. * i386/i386/db_interface.c (kdb_trap, kdb_kentry): Likewise. * i386/i386/kttd_interface.c (kttd_trap, kttd_netentry): Likewise. * i386/i386/i386asm.sym: Add KERNEL_RING expression.
* Rename kd_atoi into mach_atoiSamuel Thibault2009-11-225-57/+200
| | | | | | | | | | | | * i386/i386at/kd.c: Include <util/atoi.h> (DEFAULT): Remove, replaced by MACH_ATOI_DEFAULT. (kd_parserest): Use mach_atoi instead of kd_atoi and MACH_ATOI_DEFAULT instead of DEFAULT. (kd_atoi): Move and rename function to... * util/atoi.c: ... mach_atoi in new file. * i386/i386at/kd.h (kd_atoi): Move and rename declaration to... * util/atoi.h: ... mach_atoi in new file. * Makefrag.am (libkernel_a_SOURCES): Add util/atoi.c
* Update dependency patch for Automake 1.10.2, 1.11, and thereabouts.Guillem Jover2009-11-161-17/+17
| | | | * config.status.dep.patch: Refresh.