summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-11-28Add memory object proxiesSamuel Thibault
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.
2009-11-28Add -H option to halt on panicSamuel Thibault
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.
2009-11-28Add sis900 driverSamuel Thibault
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.
2009-11-28Add XMM FPU registers save/restore support.Samuel Thibault
* 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.
2009-11-28Fix debugging messageSamuel Thibault
* i386/i386/fpu.c (fphandleerr): Fix debugging message.
2009-11-28Add native FPU error supportSamuel Thibault
* 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.
2009-11-28Panic when no FPU is availableSamuel Thibault
* i386/i386/fpu.c (init_fpu): Panic if no FPU is available.
2009-11-28Initialize FPU in MS-DOS compatibility modeSamuel Thibault
* i386/i386/fpu.c (init_fpu): Make sure CR0_NE is dropped.
2009-11-22Declare memcmp functionSamuel Thibault
* include/string.h (memcmp): New prototype.
2009-11-22Do not fail if no PTE maps virtual address 0Samuel Thibault
* i386/intel/pmap.c (pmap_unmap_page_zero): Do not fail if no PTE maps virtual address 0.
2009-11-22Remove (vm_offset_t) casts from constantsSamuel Thibault
* 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.
2009-11-22Really call startrtclock() with an active thread.Samuel Thibault
* kern/startup.c (cpu_launch_first_thread): Call startrtclock really after starting at least one thread.
2009-11-22Add pmap parameter to INVALIDATE_TLBSamuel Thibault
* 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.
2009-11-22Add phys_first_addr and phys_last_addr declarationSamuel Thibault
* 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.
2009-11-22Use typeof(boot_info)Samuel Thibault
* i386/i386at/model_dep.c (i386at_init): Use typeof(boot_info) instead of hardcoding struct multiboot_info*.
2009-11-22Fix early interrupt crashSamuel Thibault
* i386/i386at/model_dep.c (i386at_init): Move int_stack_high assignation to before setting up interrupts.
2009-11-22Add missing phystokv/kvtophys conversionsSamuel Thibault
* 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.
2009-11-22Show command lines in task listSamuel Thibault
* 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.
2009-11-22Replace phys_mem_va with VM_MIN_KERNEL_ADDRESSSamuel Thibault
* 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.
2009-11-22Avoid confusion between global and local ldt varsSamuel Thibault
* i386/i386/pcb.c (switch_ktss): Rename ldt variable into tldt.
2009-11-22Do not assume that VM_MIN_KERNEL_ADDRESS is 0Samuel Thibault
* 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.
2009-11-22Rewamp spl.hSamuel Thibault
* i386/i386/spl.h (splnet, splbio, spl7, splx_cli): Add prototypes.
2009-11-22Do not assume that VM_MIN_KERNEL_ADDRESS is 0Samuel Thibault
* i386/i386/gdt.c (gdt_init): Subtract VM_MIN_KERNEL_ADDRESS from LINEAR_MIN_KERNEL_ADDRESS to avoid assuming the former being 0.
2009-11-22Fix db_search_null loopSamuel Thibault
* i386/i386/db_interface.c (db_search_null): Do not decrease vaddr twice.
2009-11-22Introduce KERNEL_RINGSamuel Thibault
* 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.
2009-11-22Rename kd_atoi into mach_atoiSamuel Thibault
* 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
2009-11-16Update dependency patch for Automake 1.10.2, 1.11, and thereabouts.Guillem Jover
* config.status.dep.patch: Refresh.
2009-11-11Fix a bug in vm_page_grab_contiguous_pages.Zheng Da
* vm/vm_resident.c (vm_page_grab_contiguous_pages): Maintain the free vm page queue correctly.
2009-11-01Show EATA probing progressionSamuel Thibault
* linux/src/drivers/scsi/eata.c (port_detect): Print the port being probed.
2009-10-26Fix VM_MAX_ADDRESS defaultSamuel Thibault
* i386/include/mach/i386/vm_param.h (VM_MAX_ADDRESS): Set back to 0xc0000000 by default.
2009-10-26Make tuning VM_MAX_ADDRESS trivialSamuel Thibault
* i386/i386/vm_param.h (LINEAR_MIN_KERNEL_ADDRESS): Set to VM_MAX_ADDRESS instead of hardcoding to 0xc0000000. (VM_MAX_KERNEL_ADDRESS): Set to LINEAR_MAX_KERNEL_ADDRESS - LINEAR_MIN_KERNEL_ADDRESS instead of hardcoding to 0x40000000. * i386/include/mach/i386/vm_param.h: Document how it may be tuned.
2009-10-26Fix buildSamuel Thibault
* i386/i386at/com.h (comtimer): Fix prototype of comtimer.
2009-10-25Fix warningSamuel Thibault
* i386/i386at/autoconf.c: Include <i386/pic.h> even when [!LINUX_DEV].
2009-10-25Fix warningSamuel Thibault
* i386/i386/trap.h: Include <mach/mach_types.h>
2009-10-25Fix warningSamuel Thibault
* i386/i386/pcb.c (thread_setstatus): Comment out state variable declaration.
2009-10-25Fix warningSamuel Thibault
* device/net_io.c (net_set_filter): Cast filter into bpf_insn_t for bpf_eq call.
2009-10-25Fix warningSamuel Thibault
* i386/i386/locore.S (TIME_INT_ENTRY): Fix comment.
2009-10-25Fix warningSamuel Thibault
* i386/intel/pmap.c (i): Declare only when [NCPUS > 1].
2009-10-20Fix warningsSamuel Thibault
* devices/io_reqs.h (io_req): Set type of io_alloc_size field to vm_size_t. * device/ds_routines.c (device_write_dealloc): Remove cast of io_alloc_size field. * device/subrs.c (brelse): Likewise.
2009-10-20Fix warningsSamuel Thibault
* device/chario.c (ttypush): Set parameter type to void * instead of struct tty *, and implicitly cast the former into the latter instead. * i386/i386at/com.c: Include <kern/mach_clock.h>. (timeout, ttrstrt): Remove declarations. (comtimer): Add unused void * parameter. (comopen): Pass NULL to comtimer function. * i386/i386at/kd.h (kd_belloff): Add unused void * parameter. * i386/i386at/kd.c (timeout): Remove declaration. (kd_belloff): Add unused void * parameter. (feep, kdsetbell): Pass NULL to kd_belloff function. * i386/i386at/lpr.c: Include <mach_clock.h>. (timeout, ttrstrt): Remove declarations. * kern/mach_clock.c (softclock, timeout, untimeout): Set parameter type of fcn function pointer to void * instead of char *. Set type of param to void * instead of char *. * kern/mach_clock.h (timer_elt): Set parameter type of fcn member to void * instead of char *. Set time of param member to void * instead of char *. (timeout): Set parameter type of fcn function pointer parameter to void * instead of char *. (untimeout): Likewise, set type of param parameter to void * instead of char *. * kern/sched_prim.c (sched_init): Remove cast of recompute_priorities. Replace (char *)0 with NULL. (thread_timeout): Set parameter type to void * instead of thread_t, and implicitly cast the former into the latter instead. (thread_timeout_setup): Remove cast of thread_timeout, cast thread_depress_timeout into (void (*) (void*)). Remove cast of thread. (thread_recompute_priorities): Add unused void * parameter.
2009-10-20Fix warningsSamuel Thibault
* device/tty.h (tty): Set type of t_ispeed and t_ospeed members to unsigned char instead of (potentially signed) char.
2009-10-20Fix warningsSamuel Thibault
* vm/vm_resident.c (vm_page_grab_contiguous_pages): Remove unused count_zeroes and not_found_em labels.
2009-10-20Fix warningSamuel Thibault
* vm/vm_pageout.c (vm_pageout_scan): Remove unused Restart label.
2009-10-20Fix warningSamuel Thibault
* vm/vm_map.c (vm_map_lookup): Add braces to fix readability.
2009-10-20Fix warningSamuel Thibault
* kern/thread.c (_s_): Remove unused variable.
2009-10-20Fix warningsSamuel Thibault
* kern/bootstrap.c (task_insert_send_right): Remove spurious cast of port into ipc_object_t. (load_protect_text, load_fault_in_text, boot_map, load_bootstrap_symbols): Comment out unused variables and function. (read_exec): Comment out unused user_map variable.
2009-10-20Fix boot from grub2 with more than 800MiB memorySamuel Thibault
* i386/i386at/model_dep.c (init_alloc_aligned): Add declaration. (i386at_init): Use init_alloc_aligned to allocate memory to save the content pointed by boot_info: cmdline, mods_addr, mod_start, and string. Set kernel_cmdline to the newly allocated string. (c_boot_entry): Do not set kernel_cmdline.
2009-10-20Better estimate avail_remainingSamuel Thibault
* i386/i386at/model_dep.c (mem_size_init): Move avail_remaining computation to after all phys_last_addr corrections.
2009-10-18Revert "Fix multiboot compliancy concerning x86 D flag"Samuel Thibault
This reverts commit de00e82b8c4491a4ff3320c0ddd80ac91ed0977b. Flags already get cleared using push/pop a few instructions later.
2009-10-17Fix multiboot compliancy concerning x86 D flagSamuel Thibault
i386/i386at/boothdr.S (boot_entry): Clear D flag.