--- Gnu-Mach/ChangeLog 2020/09/02 04:36:56 1.1 +++ Gnu-Mach/ChangeLog 2020/09/02 04:53:51 1.1.1.10 @@ -1,10 +1,15940 @@ +2016-12-18 Thomas Schwinge + + GNU Mach 1.8 + * version.m4 (AC_PACKAGE_VERSION): Set to 1.8. + * NEWS: Finalize for 1.8. + +2016-12-11 Richard Braun + + VM: make vm_wire more POSIX-friendly + * doc/mach.texi: Update return codes. + * vm/vm_map.c (vm_map_pageable_common): Return KERN_NO_SPACE instead + of KERN_FAILURE if some of the specified address range does not + correspond to mapped pages. Skip unwired entries instead of failing + when unwiring. + +2016-12-09 Justus Winter + + Update the NEWS file + +2016-12-09 Richard Braun + + rbtree: minor change + * kern/rbtree.h (rbtree_for_each_remove): Remove trailing slash. + +2032-05-12 Richard Braun + + VM: fix pageout throttling to external pagers + Since the VM system has been tracking whether pages belong to internal + or external objects, pageout throttling to external pagers has simply + not been working. The reason is that, on pageout, requests for external + pages are correctly tracked, but on page release (which is used to + acknowledge the request), external pages are not marked external + any more. This is because the external bit tracks whether a page + belongs to an external object, and all pages, including external + ones, are moved to an internal object during pageout. + + To solve this issue, a new "external_laundry" bit is added. It has + the same purpose as the laundry bit, but for external pagers. + + * vm/vm_page.c (vm_page_seg_min_page_available): Function unused, remove. + (vm_page_seg_evict): Use vm_page_external_laundry_count instead of + vm_page_external_pagedout. Add an assertion about double paging. + (vm_page_check_usable): Use vm_page_external_laundry_count instead of + vm_page_external_pagedout. + (vm_page_evict): Likewise. + * vm/vm_page.h (struct vm_page): New `external_laundry' member. + (vm_page_external_pagedout): Rename to ... + (vm_page_external_laundry_count): ... this. + * vm/vm_pageout.c: Include kern/printf.h. + (DEBUG): New macro. + (VM_PAGEOUT_TIMEOUT): Likewise. + (vm_pageout_setup): Use vm_page_external_laundry_count instead of + vm_page_external_pagedout. Set `external_laundry' where appropriate. + (vm_pageout): Use VM_PAGEOUT_TIMEOUT with thread_set_timeout. + Add debugging code, commented out by default. + * vm/vm_resident.c (vm_page_external_pagedout): Rename to ... + (vm_page_external_laundry_count): ... this. + (vm_page_init_template): Set `external_laundry' member to FALSE. + (vm_page_release): Rename external parameter to external_laundry. + Slightly change pageout resuming. + (vm_page_free): Rename external variable to external_laundry. + +2016-11-30 Richard Braun + + VM: fix pageout on low memory + Instead of determining if memory is low, directly use the + vm_page_alloc_paused variable, which is true when memory has reached + a minimum threshold until it gets back above the high thresholds. + + This makes sure double paging is used when external pagers are unable + to allocate memory. + + * vm/vm_page.c (vm_page_seg_evict): Rename low_memory to alloc_paused. + (vm_page_evict_once): Remove low_memory and its computation. Blindly + pass the new alloc_paused argument instead. + (vm_page_evict): Pass the value of vm_page_alloc_paused to + vm_page_evict_once. + +2016-11-30 Richard Braun + + VM: fix eviction logic error + * vm/vm_page.c (vm_page_evict): Test both vm_page_external_pagedout + and vm_page_laundry_count in order to determine there was "no pageout". + +2016-11-30 Richard Braun + + VM: fix pageout stop condition + When checking whether to continue paging out or not, the pageout daemon + only considers the high free page threshold of a segment. But if e.g. + the default pager had to allocate reserved pages during a previous + pageout cycle, it could have exhausted a segment (this is currently + only seen with the DMA segment). In that case, the high threshold + cannot be reached because the segment has currently no pageable page. + + This change makes the pageout daemon identify this condition and + consider the segment as usable in order to make progress. The segment + will simply be ignored on the allocation path for unprivileged threads, + and if this happens with too many segments, the system will fail at + allocation time. + + * vm/vm_page.c (vm_page_seg_usable): Report usable if the segment has + no pageable page. + +2016-11-10 Brent Baccala + + gsync: Avoid NULL pointer dereference + * kern/gsync.c (gsync_wait, gsync_wake, gsync_requeue): + Return immediately if task argument is TASK_NULL + +2016-11-06 Justus Winter + + Revert "i386: use ACPI to power off the machine" + This reverts commit c031b41b783cc99c0bd5aac7d14c1d6e34520397. + + Adding the ACPI parser from GRUB was a mistake as its license + conflicts with the one used by the legacy Linux drivers. Furthermore, + adding support for ACPI to the kernel violates the minimality + principle. + +2016-11-04 Justus Winter + + vm: Print names of maps in the debugger. + * vm/vm_map.c (vm_map_print): Print name of the map. + +2016-11-01 Justus Winter + + include: Fix new task notifications. + Instead of copying the send right, move it. This fixes a send-right + leak. + + * include/mach/task_notify.defs (task_move_t): New type. + (mach_notify_new_task): Use the new type. + +2016-11-01 Justus Winter + + i386: Use discontiguous page directories when using PAE. + Previously, we used contiguous page directories four pages in length + when using PAE. To prevent physical memory fragmentation, we need to + use virtual memory for objects spanning multiple pages. Virtual + kernel memory, however, is a scarce commodity. + + * i386/intel/pmap.h (lin2pdenum): Never include the page directory pointer table index. + (lin2pdenum_cont): New macro which does include said index. + (struct pmap): Remove the directory base pointer when using PAE. + * i386/intel/pmap.c (pmap_pde): Fix lookup. + (pmap_pte): Fix check for uninitialized pmap. + (pmap_bootstrap): Do not store the page directory base if PAE. + (pmap_init): Reduce size of page directories to one page, use + direct-mapped memory. + (pmap_create): Allocate four page directories per pmap. + (pmap_destroy): Adapt to the discontinuous directories. + (pmap_collect): Likewise. + * i386/i386/xen.h (hyp_mmu_update_la): Adapt code manipulating the + kernels page directory. + * i386/i386at/model_dep.c (i386at_init): Likewise. + +2016-10-31 Samuel Thibault + + gsync: fix licence + Agustina relicenced her work. + + * kern/gsync.c: Relicence to GPL 2+. + * kern/gsync.h: Relicence to GPL 2+. + +2016-10-31 Samuel Thibault + + gsync: Fix crash when task is not current task + * kern/gsync.c (gsync_wait, gsync_wake, gsync_requeue): Return + KERN_FAILURE when task != current_task(). + +2016-10-31 Samuel Thibault + + gsync: Fix assertion failure with MACH_LDEBUG + vm_map_lock_read calls check_simple_locks(), so we need to lock hbp + after taking the vm_map read lock. + + * kern/gsync.c (gsync_wait): Call vm_map_lock_read before locking + &hbp->lock. + (gsync_wake): Likewise. + +2016-10-31 Samuel Thibault + + Make multiboot cmdline and modules non-permanent reservations + * i386/i386at/model_dep.c (register_boot_data): For multiboot cmdline, + module structure, module data and module strings, set + biosmem_register_boot_data temporary parameter to TRUE. + +2016-10-24 Samuel Thibault + + Fix taking LDFLAGS into account + * Makefile.am (clib-routines.o): Add $(LDFLAGS) to link command. + + Fix taking LDFLAGS into account + * Makefile.am (gnumach_o_LINK, gnumach_LINK): Add $(LDFLAGS). + + Fix warnings + * i386/i386/seg.h (fill_descriptor): Fix format for vm_offset_t. + * i386/i386/xen.h (hyp_free_mfn, hyp_free_page): Fix format for unsigned + long. + +2016-10-22 Justus Winter + + i386: Allocate page directories using the slab allocator. + * i386/intel/pmap.c (pd_cache): New variable. + (pdp_cache): Likewise. + (pmap_init): Initialize new caches. + (pmap_create): Use the caches. + (pmap_destroy): Free to the caches. + +2016-10-21 Justus Winter + + Gracefully handle pmap allocation failures. + * kern/task.c (task_create): Gracefully handle pmap allocation + failures. + * vm/vm_map.c (vm_map_fork): Likewise. + + vm: Print map names in case of failures. + * vm/vm_kern.c (kmem_alloc): Print map names in case of failures. + (kmem_alloc_wired): Likewise. + (kmem_alloc_aligned): Likewise. + (kmem_alloc_pageable): Likewise. + +2016-10-13 Justus Winter + + Make task notification ports mutable. + * include/mach/task_notify.defs (task_notify_port_t): New type. + (mach_notify_new_task): Use the specialized type. + +2016-10-12 Justus Winter + + linux: Remove incompatible local prototype. + * linux/dev/glue/kmem.c (vremap): Remove prototype, include the right + header instead. + +2016-10-03 Justus Winter + + Remove deprecated external memory management interface. + * NEWS: Update. + * device/dev_pager.c (device_pager_data_request): Prune unused branch. + (device_pager_data_request_done): Remove function. + (device_pager_data_write): Likewise. + (device_pager_data_write_done): Likewise. + (device_pager_copy): Use 'memory_object_ready'. + * device/dev_pager.h (device_pager_data_write_done): Remove prototype. + * device/device_pager.srv (memory_object_data_write): Remove macro. + * doc/mach.texi: Update documentation. + * include/mach/mach.defs (memory_object_data_provided): Drop RPC. + (memory_object_set_attributes): Likewise. + * include/mach/memory_object.defs: Update comments. + (memory_object_data_write): Drop RPC. + * include/mach/memory_object_default.defs: Update comments. + * include/mach_debug/vm_info.h (VOI_STATE_USE_OLD_PAGEOUT): Drop + macro. + * vm/memory_object.c (memory_object_data_provided): Remove function. + (memory_object_data_error): Simplify. + (memory_object_set_attributes_common): Make static, remove unused + parameters, simplify. + (memory_object_change_attributes): Update callsite. + (memory_object_set_attributes): Remove function. + (memory_object_ready): Update callsite. + * vm/vm_debug.c (mach_vm_object_info): Adapt to the changes. + * vm/vm_object.c (vm_object_bootstrap): Likewise. + * vm/vm_object.h (struct vm_object): Drop flag 'use_old_pageout'. + * vm/vm_pageout.c: Update comments. + (vm_pageout_page): Simplify. + +2016-10-02 David Michael + + Fix format security + * i386/i386at/biosmem.c (boot_panic): Use %s format instead of passing + the string directly to `panic'. + (biosmem_unregister_boot_data): Use %s format instead of passing + `biosmem_panic_inval_boot_data' directly to `panic'. + +2016-10-01 Justus Winter + + kern: Improve panic messages from the scheduler. + * kern/sched_prim.c (state_panic): Turn into macro, print symbolic + values of thread state. + + kern: Improve assertions and panics. + * kern/assert.h (Assert): Add function argument. + (assert): Supply function argument. + * kern/debug.c (Assert): Add function argument. Unify message format. + (panic): Rename to 'Panic', add location information. + * kern/debug.h (panic): Rename, and add a macro version that supplies + the location. + * linux/dev/include/linux/kernel.h: Use the new panic macro. + +2016-09-22 Samuel Thibault + + biosmem: show memory map at boot + * i386/i386at/biosmem.c (biosmem_type_desc, biosmem_map_show): Define + even if DEBUG is 0. But show biosmem heap addresses only if DEBUG is 1. + +2016-09-21 Richard Braun + + Enable high memory + * i386/i386at/biosmem.c (biosmem_setup): Load the HIGHMEM segment if + present. + (biosmem_free_usable): Report high memory as usable. + * vm/vm_page.c (vm_page_boot_table_size, vm_page_table_size, + vm_page_mem_size, vm_page_mem_free): Scan all segments. + * vm/vm_resident.c (vm_page_grab): Describe allocation strategy + with regard to the HIGHMEM segment. + +2016-09-21 Richard Braun + + Update device drivers for highmem support + Unconditionally use bounce buffers for now. + + * linux/dev/glue/net.c (device_write): Unconditionally use a + bounce buffer. + * xen/block.c (device_write): Likewise. + * xen/net.c: Include . + (device_write): Unconditionally use a bounce buffer. + +2016-09-21 Richard Braun + + Update Linux block layer glue code + The Linux block layer glue code needs to use page nodes with the + appropriate interface since their redefinition as struct list. + + * linux/dev/glue/block.c: Include . + (struct temp_data): Define member `pages' as a struct list. + (alloc_buffer): Update to use list_xxx functions. + (free_buffer, INIT_DATA, device_open, device_read): Likewise. + +2016-09-21 Richard Braun + + Rework pageout to handle multiple segments + As we're about to use a new HIGHMEM segment, potentially much larger + than the existing DMA and DIRECTMAP ones, it's now compulsory to make + the pageout daemon aware of those segments. + + And while we're at it, let's fix some of the defects that have been + plaguing pageout forever, such as throttling, and pageout of internal + versus external pages (this commit notably introduces a hardcoded + policy in which as many external pages are selected before considering + internal pages). + + * kern/slab.c (kmem_pagefree_physmem): Update call to vm_page_release. + * vm/vm_page.c: Include and . + (VM_PAGE_SEG_THRESHOLD_MIN_NUM, VM_PAGE_SEG_THRESHOLD_MIN_DENOM, + VM_PAGE_SEG_THRESHOLD_MIN, VM_PAGE_SEG_THRESHOLD_LOW_NUM, + VM_PAGE_SEG_THRESHOLD_LOW_DENOM, VM_PAGE_SEG_THRESHOLD_LOW, + VM_PAGE_SEG_THRESHOLD_HIGH_NUM, VM_PAGE_SEG_THRESHOLD_HIGH_DENOM, + VM_PAGE_SEG_THRESHOLD_HIGH, VM_PAGE_SEG_MIN_PAGES, + VM_PAGE_HIGH_ACTIVE_PAGE_NUM, VM_PAGE_HIGH_ACTIVE_PAGE_DENOM): New macros. + (struct vm_page_queue): New type. + (struct vm_page_seg): Add new members `min_free_pages', `low_free_pages', + `high_free_pages', `active_pages', `nr_active_pages', `high_active_pages', + `inactive_pages', `nr_inactive_pages'. + (vm_page_alloc_paused): New variable. + (vm_page_pageable, vm_page_can_move, vm_page_remove_mappings): New functions. + (vm_page_seg_alloc_from_buddy): Pause allocations and start the pageout + daemon as appropriate. + (vm_page_queue_init, vm_page_queue_push, vm_page_queue_remove, + vm_page_queue_first, vm_page_seg_get, vm_page_seg_index, + vm_page_seg_compute_pageout_thresholds): New functions. + (vm_page_seg_init): Initialize the new segment members. + (vm_page_seg_add_active_page, vm_page_seg_remove_active_page, + vm_page_seg_add_inactive_page, vm_page_seg_remove_inactive_page, + vm_page_seg_pull_active_page, vm_page_seg_pull_inactive_page, + vm_page_seg_pull_cache_page): New functions. + (vm_page_seg_min_page_available, vm_page_seg_page_available, + vm_page_seg_usable, vm_page_seg_double_lock, vm_page_seg_double_unlock, + vm_page_seg_balance_page, vm_page_seg_balance, vm_page_seg_evict, + vm_page_seg_compute_high_active_page, vm_page_seg_refill_inactive, + vm_page_lookup_seg, vm_page_check): New functions. + (vm_page_alloc_pa): Handle allocation failure from VM privileged thread. + (vm_page_info_all): Display additional segment properties. + (vm_page_wire, vm_page_unwire, vm_page_deactivate, vm_page_activate, + vm_page_wait): Move from vm/vm_resident.c and rewrite to use segments. + (vm_page_queues_remove, vm_page_check_usable, vm_page_may_balance, + vm_page_balance_once, vm_page_balance, vm_page_evict_once): New functions. + (VM_PAGE_MAX_LAUNDRY, VM_PAGE_MAX_EVICTIONS): New macros. + (vm_page_evict, vm_page_refill_inactive): New functions. + * vm/vm_page.h: Include . + (struct vm_page): Remove member `pageq', reuse the `node' member instead, + move the `listq' and `next' members above `vm_page_header'. + (VM_PAGE_CHECK): Define as an alias to vm_page_check. + (vm_page_check): New function declaration. + (vm_page_queue_fictitious, vm_page_queue_active, vm_page_queue_inactive, + vm_page_free_target, vm_page_free_min, vm_page_inactive_target, + vm_page_free_reserved, vm_page_free_wanted): Remove extern declarations. + (vm_page_external_pagedout): New extern declaration. + (vm_page_release): Update declaration. + (VM_PAGE_QUEUES_REMOVE): Define as an alias to vm_page_queues_remove. + (VM_PT_PMAP, VM_PT_KMEM, VM_PT_STACK): Remove macros. + (VM_PT_KERNEL): Update value. + (vm_page_queues_remove, vm_page_balance, vm_page_evict, + vm_page_refill_inactive): New function declarations. + * vm/vm_pageout.c (VM_PAGEOUT_BURST_MAX, VM_PAGEOUT_BURST_MIN, + VM_PAGEOUT_BURST_WAIT, VM_PAGEOUT_EMPTY_WAIT, VM_PAGEOUT_PAUSE_MAX, + VM_PAGE_INACTIVE_TARGET, VM_PAGE_FREE_TARGET, VM_PAGE_FREE_MIN, + VM_PAGE_FREE_RESERVED, VM_PAGEOUT_RESERVED_INTERNAL, + VM_PAGEOUT_RESERVED_REALLY): Remove macros. + (vm_pageout_reserved_internal, vm_pageout_reserved_really, + vm_pageout_burst_max, vm_pageout_burst_min, vm_pageout_burst_wait, + vm_pageout_empty_wait, vm_pageout_pause_count, vm_pageout_pause_max, + vm_pageout_active, vm_pageout_inactive, vm_pageout_inactive_nolock, + vm_pageout_inactive_busy, vm_pageout_inactive_absent, + vm_pageout_inactive_used, vm_pageout_inactive_clean, + vm_pageout_inactive_dirty, vm_pageout_inactive_double, + vm_pageout_inactive_cleaned_external): Remove variables. + (vm_pageout_requested, vm_pageout_continue): New variables. + (vm_pageout_setup): Wait for page allocation to succeed instead of + falling back to flush, update double paging protocol with caller, + add pageout throttling setup. + (vm_pageout_scan): Rewrite to use the new vm_page balancing, + eviction and inactive queue refill functions. + (vm_pageout_scan_continue, vm_pageout_continue): Remove functions. + (vm_pageout): Rewrite. + (vm_pageout_start, vm_pageout_resume): New functions. + * vm/vm_pageout.h (vm_pageout_continue, vm_pageout_scan_continue): Remove + function declarations. + (vm_pageout_start, vm_pageout_resume): New function declarations. + * vm/vm_resident.c: Include . + (vm_page_queue_fictitious): Define as a struct list. + (vm_page_free_wanted, vm_page_external_count, vm_page_free_avail, + vm_page_queue_active, vm_page_queue_inactive, vm_page_free_target, + vm_page_free_min, vm_page_inactive_target, vm_page_free_reserved): + Remove variables. + (vm_page_external_pagedout): New variable. + (vm_page_bootstrap): Don't initialize removed variable, update + initialization of vm_page_queue_fictitious. + (vm_page_replace): Call VM_PAGE_QUEUES_REMOVE where appropriate. + (vm_page_remove): Likewise. + (vm_page_grab_fictitious): Update to use list_xxx functions. + (vm_page_release_fictitious): Likewise. + (vm_page_grab): Remove pageout related code. + (vm_page_release): Add `laundry' and `external' parameters for + pageout throttling. + (vm_page_grab_contig): Remove pageout related code. + (vm_page_free_contig): Likewise. + (vm_page_free): Remove pageout related code, update call to + vm_page_release. + (vm_page_wait, vm_page_wire, vm_page_unwire, vm_page_deactivate, + vm_page_activate): Move to vm/vm_page.c. + +2016-09-21 Richard Braun + + Redefine what an external page is + Instead of a "page considered external", which apparently takes into + account whether a page is dirty or not, redefine this property to + reliably mean "is in an external object". + + This commit mostly deals with the impact of this change on the page + allocation interface. + + * i386/intel/pmap.c (pmap_page_table_page_alloc): Update call to + vm_page_grab. + * kern/slab.c (kmem_pagealloc_physmem): Use vm_page_grab instead of + vm_page_grab_contig. + (kmem_pagefree_physmem): Use vm_page_release instead of + vm_page_free_contig. + * linux/dev/glue/block.c (alloc_buffer, device_read): Update call + to vm_page_grab. + * vm/vm_fault.c (vm_fault_page): Update calls to vm_page_grab and + vm_page_convert. + * vm/vm_map.c (vm_map_copy_steal_pages): Update call to vm_page_grab. + * vm/vm_page.h (struct vm_page): Remove `extcounted' member. + (vm_page_external_limit, vm_page_external_count): Remove extern + declarations. + (vm_page_convert, vm_page_grab): Update declarations. + (vm_page_release, vm_page_grab_phys_addr): New function declarations. + * vm/vm_pageout.c (VM_PAGE_EXTERNAL_LIMIT): Remove macro. + (VM_PAGE_EXTERNAL_TARGET): Likewise. + (vm_page_external_target): Remove variable. + (vm_pageout_scan): Remove specific handling of external pages. + (vm_pageout): Don't set vm_page_external_limit and + vm_page_external_target. + * vm/vm_resident.c (vm_page_external_limit): Remove variable. + (vm_page_insert, vm_page_replace, vm_page_remove): Update external + page tracking. + (vm_page_convert): Remove `external' parameter. + (vm_page_grab): Likewise. Remove specific handling of external pages. + (vm_page_grab_phys_addr): Update call to vm_page_grab. + (vm_page_release): Remove `external' parameter and remove specific + handling of external pages. + (vm_page_wait): Remove specific handling of external pages. + (vm_page_alloc): Update call to vm_page_grab. + (vm_page_free): Update call to vm_page_release. + * xen/block.c (device_read): Update call to vm_page_grab. + * xen/net.c (device_write): Likewise. + +2016-09-21 Richard Braun + + Replace vm_offset_t with phys_addr_t where appropriate + * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys, + copy_from_phys, kvtophys): Use the phys_addr_t type for physical + addresses. + * i386/intel/pmap.c (pmap_map, pmap_map_bd, pmap_destroy, + pmap_remove_range, pmap_page_protect, pmap_enter, pmap_extract, + pmap_collect, phys_attribute_clear, phys_attribute_test, + pmap_clear_modify, pmap_is_modified, pmap_clear_reference, + pmap_is_referenced): Likewise. + * i386/intel/pmap.h (pt_entry_t): Unconditionally define as a + phys_addr_t. + (pmap_zero_page, pmap_copy_page, kvtophys): Use the phys_addr_t + type for physical addresses. + * vm/pmap.h (pmap_enter, pmap_page_protect, pmap_clear_reference, + pmap_is_referenced, pmap_clear_modify, pmap_is_modified, + pmap_extract, pmap_map_bd): Likewise. + * vm/vm_page.h (vm_page_fictitious_addr): Declare as a phys_addr_t. + * vm/vm_resident.c (vm_page_fictitious_addr): Likewise. + (vm_page_grab_phys_addr): Change return type to phys_addr_t. + +2016-09-21 Richard Braun + + Remove phys_first_addr and phys_last_addr global variables + The old assumption that all physical memory is directly mapped in + kernel space is about to go away. Those variables are directly linked + to that assumption. + + * i386/i386/model_dep.h (phys_first_addr): Remove extern declaration. + (phys_last_addr): Likewise. + * i386/i386/phys.c (pmap_zero_page): Use VM_PAGE_DIRECTMAP_LIMIT + instead of phys_last_addr. + (pmap_copy_page, copy_to_phys, copy_from_phys): Likewise. + * i386/i386/trap.c (user_trap): Remove check against phys_last_addr. + * i386/i386at/biosmem.c (biosmem_bootstrap_common): Don't set + phys_last_addr. + * i386/i386at/mem.c (memmmap): Use vm_page_lookup_pa to determine if + a physical address references physical memory. + * i386/i386at/model_dep.c (phys_first_addr): Remove variable. + (phys_last_addr): Likewise. + (pmap_free_pages, pmap_valid_page): Remove functions. + * i386/intel/pmap.c: Include i386at/biosmem.h. + (pa_index): Turn into an alias for vm_page_table_index. + (pmap_bootstrap): Replace uses of phys_first_addr and phys_last_addr + as appropriate. + (pmap_virtual_space): Use vm_page_table_size instead of phys_first_addr + and phys_last_addr to obtain the number of physical pages. + (pmap_verify_free): Remove function. + (valid_page): Turn this macro into an inline function and rewrite + using vm_page_lookup_pa. + (pmap_page_table_page_alloc): Build the pmap VM object using + vm_page_table_size to determine its size. + (pmap_remove_range, pmap_page_protect, phys_attribute_clear, + phys_attribute_test): Turn page indexes into unsigned long integers. + (pmap_enter): Likewise. In addition, use either vm_page_lookup_pa or + biosmem_directmap_end to determine if a physical address references + physical memory. + * i386/xen/xen.c (hyp_p2m_init): Use vm_page_table_size instead of + phys_last_addr to obtain the number of physical pages. + * kern/startup.c (phys_first_addr): Remove extern declaration. + (phys_last_addr): Likewise. + * linux/dev/init/main.c (linux_init): Use vm_page_seg_end with the + appropriate segment selector instead of phys_last_addr to determine + where high memory starts. + * vm/pmap.h: Update requirements description. + (pmap_free_pages, pmap_valid_page): Remove declarations. + * vm/vm_page.c (vm_page_seg_end, vm_page_boot_table_size, + vm_page_table_size, vm_page_table_index): New functions. + * vm/vm_page.h (vm_page_seg_end, vm_page_table_size, + vm_page_table_index): New function declarations. + * vm/vm_resident.c (vm_page_bucket_count, vm_page_hash_mask): Define + as unsigned long integers. + (vm_page_bootstrap): Compute VP table size based on the page table + size instead of the value returned by pmap_free_pages. + +2016-09-20 Richard Braun + + VM: remove commented out code + The vm_page_direct_va, vm_page_direct_pa and vm_page_direct_ptr + functions were imported along with the new vm_page module, but + never actually used since the kernel already has phystokv and + kvtophys functions. + +2016-09-16 Richard Braun + + VM: improve pageout deadlock workaround + Commit 5dd4f67522ad0d49a2cecdb9b109251f546d4dd1 makes VM map entry + allocation done with VM privilege, so that a VM map isn't held locked + while physical allocations are paused, which may block the default + pager during page eviction, causing a system-wide deadlock. + + First, it turns out that map entries aren't the only buffers allocated, + and second, their number can't be easily determined, which makes a + preallocation strategy very hard to implement. + + This change generalizes the strategy of VM privilege increase when a + VM map is locked. + + * device/ds_routines.c (io_done_thread): Use integer values instead + of booleans when setting VM privilege. + * kern/thread.c (thread_init, thread_wire): Likewise. + * vm/vm_pageout.c (vm_pageout): Likewise. + * kern/thread.h (struct thread): Turn member `vm_privilege' into an + unsigned integer. + * vm/vm_map.c (vm_map_lock): New function, where VM privilege is + temporarily increased. + (vm_map_unlock): New function, where VM privilege is decreased. + (_vm_map_entry_create): Remove VM privilege workaround from this + function. + * vm/vm_map.h (vm_map_lock, vm_map_unlock): Turn into functions. + +2016-09-11 Samuel Thibault + + Fix spurious warning + * i386/i386/db_trace.c (db_i386_stack_trace): Do not check for frame + validity if it is 0. + + Fix size of functions interrupt and syscall + * i386/i386/locore.S (syscall): Add END(syscall). + * i386/i386at/interrupt.S (interrupt): Add END(interrupt). + + Set function type on symbols created by ENTRY macro + * i386/include/mach/i386/asm.h (ENTRY, ENTRY2, ASENTRY, Entry): Use .type + @function on created entries. + + Close parenthesis + * i386/i386/db_trace.c (db_i386_stack_trace): When stopping on zero frame, + close parameters parenthesis. + + Fix exploring stack trace up to assembly + * i386/i386/db_trace.c (db_i386_stack_trace): Do not stop as soon as frame + is 0, lookup PC first, and stop only before accessing the frame content. + +2016-09-11 Justus Winter + + ipc: Fix crash in debug code. + * ipc/mach_debug.c (mach_port_kernel_object): Check that the receiver + is valid. + +2016-09-07 Richard Braun + + Remove map entry pageability property. + Since the replacement of the zone allocator, kernel objects have been + wired in memory. Besides, as of 5e9f6f (Stack the slab allocator + directly on top of the physical allocator), there is a single cache + used to allocate map entries. + + Those changes make the pageability attribute of VM maps irrelevant. + + * device/ds_routines.c (mach_device_init): Update call to kmem_submap. + * ipc/ipc_init.c (ipc_init): Likewise. + * kern/task.c (task_create): Update call to vm_map_create. + * vm/vm_kern.c (kmem_submap): Remove `pageable' argument. Update call + to vm_map_setup. + (kmem_init): Update call to vm_map_setup. + * vm/vm_kern.h (kmem_submap): Update declaration. + * vm/vm_map.c (vm_map_setup): Remove `pageable' argument. Don't set + `entries_pageable' member. + (vm_map_create): Likewise. + (vm_map_copyout): Don't bother creating copies of page entries with + the right pageability. + (vm_map_copyin): Don't set `entries_pageable' member. + (vm_map_fork): Update call to vm_map_create. + * vm/vm_map.h (struct vm_map_header): Remove `entries_pageable' member. + (vm_map_setup, vm_map_create): Remove `pageable' argument. + +2016-09-06 Richard Braun + + Fix registration of strings from in boot data + * i386/i386at/model_dep.c (register_boot_data): Use phystokv on strings + when computing their length. + +2016-09-06 Richard Braun + + Make early physical page allocation truely reliable + Import upstream biosmem changes and adjust for local modifications. + + Specifically, this change makes the biosmem module reliably track all + boot data by storing their addresses in a sorted array. This allows + both the early page allocator and the biosmem_free_usable function + to accurately find any range of free pages. + + * i386/i386at/biosmem.c: Remove inclusion of . + (_start, _end): Remove variable declarations. + (BIOSMEM_MAX_BOOT_DATA): New macro. + (struct biosmem_boot_data): New type. + (biosmem_boot_data_array, biosmem_nr_boot_data): New variables. + (biosmem_heap_start, biosmem_heap_bottom, biosmem_heap_top, + biosmem_heap_end): Change type to phys_addr_t. + (biosmem_panic_inval_boot_data): New variable. + (biosmem_panic_too_many_boot_data): Likewise. + (biosmem_panic_toobig_msg): Variable renamed ... + (biosmem_panic_too_big_msg): ... to this. + (biosmem_register_boot_data): New function. + (biosmem_unregister_boot_data): Likewise. + (biosmem_map_adjust): Update reference to panic message. + (biosmem_map_find_avail): Add detailed description. + (biosmem_save_cmdline_sizes): Remove function. + (biosmem_find_heap_clip): Likewise. + (biosmem_find_heap): Likewise. + (biosmem_find_avail_clip, biosmem_find_avail): New functions. + (biosmem_setup_allocator): Receive const multiboot info, replace + calls to biosmem_find_heap with calls to biosmem_find_avail and + update accordingly. Register the heap as boot data. + (biosmem_xen_bootstrap): Register the Xen boot info and the heap as + boot data. + (biosmem_bootstrap): Receive const multiboot information. Remove call + to biosmem_save_cmdline_sizes. + (biosmem_bootalloc): Remove assertion on the VM system state. + (biosmem_type_desc, biosmem_map_show): Build only if DEBUG is true. + (biosmem_unregister_temporary_boot_data): New function. + (biosmem_free_usable_range): Change address range format. + (biosmem_free_usable_entry): Rewrite to use biosmem_find_avail + without abusing it. + (biosmem_free_usable): Call biosmem_unregister_temporary_boot_data, + update call to biosmem_free_usable_entry. + * i386/i386at/biosmem.h (biosmem_register_boot_data): New function. + (biosmem_bootalloc): Update description. + (biosmem_bootstrap): Update description and declaration. + (biosmem_free_usable): Likewise. + * i386/i386at/model_dep.c: Include . + (machine_init): Update call to biosmem_free_usable. + (register_boot_data): New function. + (i386at_init): Call register_boot_data where appropriate. + +2016-09-03 Richard Braun + + Fix early physical page allocation + Import upstream biosmem and vm_page changes, and adjust for local + modifications. + + Specifically, the biosmem module was mistakenly loading physical + segments that did not clip with the heap as completely available. + This change makes it load them as completely unavailable during + startup, and once the VM system is ready, additional pages are + loaded. + + * i386/i386at/biosmem.c (DEBUG): New macro. + (struct biosmem_segment): Remove members `avail_start' and `avail_end'. + (biosmem_heap_cur): Remove variable. + (biosmem_heap_bottom, biosmem_heap_top, biosmem_heap_topdown): New variables. + (biosmem_find_boot_data_update, biosmem_find_boot_data): Remove functions. + (biosmem_find_heap_clip, biosmem_find_heap): New functions. + (biosmem_setup_allocator): Rewritten to use the new biosmem_find_heap + function. + (biosmem_bootalloc): Support both bottom-up and top-down allocations. + (biosmem_directmap_size): Renamed to ... + (biosmem_directmap_end): ... this function. + (biosmem_load_segment): Fix segment loading. + (biosmem_setup): Restrict usable memory to the directmap segment. + (biosmem_free_usable_range): Add checks on input parameters. + (biosmem_free_usable_update_start, biosmem_free_usable_start, + biosmem_free_usable_reserved, biosmem_free_usable_end): Remove functions. + (biosmem_free_usable_entry): Rewritten to use the new biosmem_find_heap + function. + (biosmem_free_usable): Restrict usable memory to the directmap segment. + * i386/i386at/biosmem.h (biosmem_bootalloc): Update description. + (biosmem_directmap_size): Renamed to ... + (biosmem_directmap_end): ... this function. + (biosmem_free_usable): Update declaration. + * i386/i386at/model_dep.c (machine_init): Call biosmem_free_usable. + * vm/vm_page.c (DEBUG): New macro. + (struct vm_page_seg): New member `heap_present'. + (vm_page_load): Remove heap related parameters. + (vm_page_load_heap): New function. + * vm/vm_page.h (vm_page_load): Remove heap related parameters. Update + description. + (vm_page_load_heap): New function. + +2016-09-01 Richard Braun + + pmap: fix map window creation on xen + * i386/intel/pmap.c (pmap_get_mapwindow, pmap_put_mapwindow): Use + the appropriate xen hypercall if building for paravirtualized page + table management. + +2016-08-31 Samuel Thibault + + Avoid using non-ascii source encoding + * xen/console.c (hypcnintr): Replace latin1 £ character with the 0xA3 + number. + +2016-08-29 Richard Braun + + vm: fix boot on xen + * vm/vm_map.c (_vm_map_entry_create: Make sure there is a thread + before accessing VM privilege. + +2016-08-26 Samuel Thibault + + Revert "Fix documentation for vm_map" + This reverts commit 57694037a02dda29bd678dc3b8531bd437682ba7. + + We rather prefer the kernel just use whatever slot it sees fit. Userland has + already been fixed into not using the behavior anyway. + +2016-08-25 Samuel Thibault + + Add missing memory barriers in simple lock debugging + * kern/lock.c (_simple_lock, _simple_lock_try, simple_unlock): Add compiler + memory barrier to separate simple_locks_taken update from information + filling. + + Use invlpg for single-page pagetable changes + * i386/intel/pmap.c (INVALIDATE_TLB): When e-s is constant, equal to + PAGE_SIZE, use just one invlpg instruction to flush the TLB. + + Drop unused macro + * i386/intel/pmap.c (MAX_TBIS_SIZE): Drop unused macro. + +2016-08-16 Richard Braun + + Replace libc string functions with internal implementations + * Makefile.am (clib_routines): Remove memcmp, memcpy, memmove, + strchr, strstr and strsep. + * kern/strings.c (memset): Comment out. + (strchr, strsep, strstr): New functions. + + i386: import string functions from X15 and relicense to GPLv2+ + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386/strings.c. + * i386/i386/strings.c: New file. + +2016-08-12 Richard Braun + + i386: request the boot loader to page-align modules + * i386/i386at/boothdr.S (MULTIBOOT_FLAGS): Set LSB bit. + +2016-08-07 Richard Braun + + VM: fix pageout-related deadlock + * vm/vm_map.c (_vm_map_entry_create): Temporarily set the current thread + as VM privileged. + +2016-08-06 Richard Braun + + Augment VM maps with task names + This change improves the clarity of "no more room for ..." VM map + allocation errors. + + * kern/task.c (task_init): Call vm_map_set_name for the kernel map. + (task_create): Call vm_map_set_name where appropriate. + * vm/vm_map.c (vm_map_setup): Set map name to NULL. + (vm_map_find_entry_anywhere): Update error message to include map name. + * vm/vm_map.h (struct vm_map): New `name' member. + (vm_map_set_name): New inline function. + +2016-06-29 Richard Braun + + Fix page fault in critical section in the slab allocator + * kern/slab.c (host_slab_info): Use wired kernel memory to build the + cache info. + + Fix locking error in the slab allocator + * kern/slab.c (kmem_slab_create): Set `slab->cache` member. + (kmem_cache_reap): Return dead slabs instead of destroying in place. + (slab_collect): Destroy slabs outside of critical section. + * kern/slab.h (struct kmem_slab): New `cache` member. + +2016-06-27 Richard Braun + + Fix locking error + * i386/i386/io_perm.c (no_senders): Remove bogus call to ip_lock. + +2016-06-17 Richard Braun + + Change page cache statistics + Instead of reporting statistics about unreferenced objects (the object + cache), report statistics about external objects (the page cache). + + * vm/vm_object.c (vm_object_cached_count): Remove variable. + (vm_object_cache_add): Remove object cache stats updates. + (vm_object_cache_remove): Likewise. + (vm_object_terminate): Update page cache stats. + * vm/vm_object.h (vm_object_cached_count): Remove variable. + (vm_object_cached_pages): Likewise. + (vm_object_cached_pages_lock_data): Likewise. + (vm_object_cached_pages_update): Remove macro. + (vm_object_external_count): New extern variable. + (vm_object_external_pages): Likewise. + * vm/vm_resident.c (vm_object_external_count): New variable. + (vm_object_external_pages): Likewise. + (vm_page_insert): Remove object cache stats updates and + update page cache stats. + (vm_page_replace): Likewise. + (vm_page_remove): Likewise. + * vm/vm_user.c (vm_cache_statistics): Report page cache stats instead + of object cache stats. + +2016-06-10 Samuel Thibault + + Allow setting x86 debug flags for the current thread + * kern/thread.c (thread_get_state): Allow call for the current thread, + without suspending it. + (thread_set_status): Likewise. + + Use int3 on x86_64 build too + * kern/debug.c (SoftDebugger) [__x86_64__]: Use int3 instruction to trigger + debugger. + +2016-06-09 Richard Braun + + Fix overflow checking on VM map copyin + * vm/vm_map (vm_map_copyin, vm_map_copyin_page_list): Check overflow + before page alignment of source data. + +2016-06-07 Richard Braun + + Fix deadlock + * vm/vm_map.c (vm_map_copyout_page_list): Fix call to + vm_map_find_entry_anywhere to avoid relocking VM map. + +2016-06-02 Richard Braun + + Fix some license headers. + As the original author of the files imported, I explicitely dual + license them to something compatible with GPLv2. + + kern/macros.h: Switch license from GPLv3 to BSD 2-clause. + kern/rdxtree_i.h: Likewise. + +2016-05-26 Samuel Thibault + + Fix buffer size passed to scsi_do_cmd + * linux/src/drivers/scsi/eata_dma_proc.c (eata_proc_info): Increase cmd size + to 12. + * linux/src/drivers/scsi/sd.c (do_sd_request, sd_init_done): Likewise. + * linux/src/drivers/scsi/sr.c (do_sr_request, sr_init_done): Likewise. + * linux/src/drivers/scsi/sr_ioctl.c (sr_ioctl): Likewise with sr_cmd. + + Cope with getc returning -1 + * i386/i386at/lpr.c (lprstart): Use int instead of char to store result of + getc, so as to return in case of getting -1. + + Fix potential divisal by zero + * kern/debug.c (panic, log): Pass 16 as default radix to _doprnt. + +2016-05-23 Samuel Thibault + + Fix getting ELF symbol bind and type + ddb/db_elf.c (elf_db_search_symbol): Use ELF32_ST_BIND and ELF32_ST_TYPE to + access symbol bind and type. + +2016-05-20 Richard Braun + + vm_map: back allocations with a red-black tree + This change augments VM maps with a gap tree, sorted by gap size, to + use for non-fixed allocations. + + * vm/vm_map.c: Include kern/list.h. + (vm_map_entry_gap_cmp_lookup, vm_map_entry_gap_cmp_insert, + vm_map_gap_valid, vm_map_gap_compute, vm_map_gap_insert_single, + vm_map_gap_remove_single, vm_map_gap_update, vm_map_gap_insert, + vm_map_gap_remove, vm_map_find_entry_anywhere): New functions. + (vm_map_setup): Initialize gap tree. + (_vm_map_entry_link): Call vm_map_gap_insert. + (_vm_map_entry_unlink): Call vm_map_gap_remove. + (vm_map_find_entry, vm_map_enter, vm_map_copyout, + vm_map_copyout_page_list, vm_map_copyin): Replace look up loop with + a call to vm_map_find_entry_anywhere. Call vm_map_gap_update and + initialize gap tree where relevant. + (vm_map_copy_insert): Turn macro into an inline function and rewrite. + (vm_map_simplify): Reorder call to vm_map_entry_unlink so that previous + entry is suitable for use with gap management functions. + * vm/vm_map.h: Include kern/list.h. + (struct vm_map_entry): New members `gap_node`, `gap_list`, + `gap_size` and `in_gap_tree`. + (struct vm_map_header): New member `gap_tree`. + +2016-05-20 Justus Winter + + xen: fix prototype + Amends a7f248bf. + + * xen/console.h (hypcnclose): Fix type of parameter. + +2016-05-18 Thomas Schwinge + + GNU Mach 1.7 + * version.m4 (AC_PACKAGE_VERSION): Set to 1.7. + * NEWS: Finalize for 1.7. + +2016-05-18 Samuel Thibault + + Fix gcc-6 warnings + * ddb/db_elf.c (elf_db_sym_init): Turn `i' into unsigned. + * device/ds_routines.c (ds_device_open, device_writev_trap): Likewise. + * i386/i386/user_ldt.c (i386_set_ldt): Likewise for `i', `min_selector', and + `first_desc'. + (i386_get_ldt): Likewise for `ldt_count'. + (user_ldt_free): Likewise for `i'. + * i386/i386/xen.h (hyp_set_ldt): Turn `count' into unsigned long. + * i386/intel/pmap.c (pmap_bootstrap): Turn `i', `j' and 'n' into unsigned. + (pmap_clear_bootstrap_pagetable): Likewise for `i' and `j'. + * ipc/ipc_kmsg.c (ipc_msg_print): Turn `i' and `numwords' into unsigned. + * kern/boot_script.c (boot_script_parse_line): Likewise for `i'. + * kern/bootstrap.c (bootstrap_create): Likewise for `n' and `i'. + * kern/host.c (host_processors): Likewise for `i'. + * kern/ipc_tt.c (mach_ports_register): Likewise. + * kern/mach_clock.c (tickadj, bigadj): turn into unsigned. + * kern/processor.c (processor_set_things): Turn `i' into unsigned. + * kern/task.c (task_threads): Likewise. + * kern/thread.c (consider_thread_collect, stack_init): Likewise. + * kern/strings.c (memset): Turn `i' into size_t. + * vm/memory_object.c (memory_object_lock_request): Turn `i' into unsigned. + * xen/block.c (hyp_block_init): Use %u format for evt. + (device_open): Drop unused err variable. + (device_write): Turn `copy_npages', `i', `nbpages', and `j' into unsigned. + * xen/console.c (hypcnread, hypcnwrite, hypcnclose): Turn dev to dev_t. + (hypcnclose): Return void. + * xen/console.h (hypcnread, hypcnwrite, hypcnclose): Fix prototypes + accordingly. + * xen/evt.c (form_int_mask): Turn `i' into int. + * xen/net.c (hyp_net_init): Use %u format for evt. + (device_open): Remove unused `err' variable. + +2016-05-17 Samuel Thibault + + Revert "Fix getting ELF symbol bind and type" + This reverts commit a8a52cafb5621b475737ffdc81f63703d5b37904. + + It seems to be breaking backtracing in ddb... + +2016-05-16 Richard Braun + + Fix pageout deadlock + The pageout daemon uses small, internal, temporary objects to transport + the data out to memory managers, which are expected to release the data + once written out to backing store. Releasing this data is done with a + vm_deallocate call. The problem with this is that vm_map is allowed to + merge these objects, in which case vm_deallocate will only remove a + reference instead of releasing the underlying pages, causing the pageout + daemon to deadlock. + + This change makes the pageout daemon mark these objects so that they + don't get merged. + + * vm/vm_object.c (vm_object_bootstrap): Update template. + (vm_object_coalesce): Don't coalesce if an object is used for pageout. + * vm/vm_object.h (struct vm_object): New `used_for_pageout` member. + * vm/vm_pageout.c (vm_pageout_page): Mark new objects for pageout. + +2016-05-15 Richard Braun + + Fix warning + ddb/db_output.c (db_printf): Return 0. + ddb/db_printf.h (db_printf): Change declaration to return an int. + +2016-04-21 Samuel Thibault + + Fix xen boot + * i386/i386/pcb.c (pcb_init): Make sure there is a thread before calling + current_task(). + +2016-04-20 Justus Winter + + Fix type of program counter argument + * i386/i386/hardclock.c (hardclock): Use '0' instead of 'NULL'. + * vm/vm_fault (vm_fault_cleanup): Likewise. + + xen: fix build + * i386/xen/xen.c (hypclock_machine_intr): Fix 'clock_interrupt' call. + * xen/time.c (clkstart): Likewise. + +2016-04-20 Samuel Thibault + + Add kernel profiling through sampling + * NEWS: Advertise feature. + * configfrac.ac (--enable-kernsample): Add option. + * kern/pc_sample.h (take_pc_sample): Add usermode and pc parameter. + (take_pc_sample_macro): Take usermode and pc parameters, pass as such to + take_pc_sample. + * kern/pc_sample.c (take_pc_sample): Use pc parameter when usermode is 1. + * kern/mach_clock.c (clock_interrupt): Add pc parameter. Pass usermode and + pc to take_pc_sample_macro call. + * i386/i386/hardclock.c (hardclock): Pass regs->eip to clock_interrupt call + on normal interrupts, NULL on interrupt interrupt. + * vm/vm_fault.c (vm_fault_cleanup): Set usermode to 1 and pc to NULL in + take_pc_sample_macro call. + +2016-04-17 Samuel Thibault + + Add memory barrier to spl* + * i386/i386/spl.S (mb): Define macro + (SETIPL, spl0, spl7): Call mb. + + Avoid using C99 for variable declaration for now + * kern/gsync.c (gsync_setup): Declare `i' variable out of for loop. + +2016-04-15 Samuel Thibault + + update NEWS file + +2016-04-15 Agustina Arzille + + Lightweight synchronization mechanism + * Makefrag.am (libkernel_a_SOURCES): Add kern/gsync.c and kern/gsync.h. + * include/mach/gnumach.defs (gsync_wait, gsync_wake, gsync_requeue): New + routines. + * include/mach/kern_return.h (KERN_TIMEDOUT, KERN_INTERRUPTED): New error + codes. + * kern/gsync.c: New file. + * kern/gsync.h: New file. + * kern/startup.c: Include + (setup_main): Call gsync_setup. + +2016-04-15 Justus Winter + + Update NEWS file + + Add --disable-assert flag to disable assertions + * configfrag.ac: Use 'AC_HEADER_ASSERT'. + + i386: Fix error handling + * i386/i386at/model_dep.c (i386at_init): Fix error handling. + +2016-04-05 Flavio Cruz + + Fix bootstraping issues with stdint.h. + * include/mach/std_types.h: Do not include stdint.h. + * kern/rdxtree.h: Replace sys/types.h with stdint.h. + +2016-04-04 Samuel Thibault + + Follow-up stdint use + 7bbfa39f59dcbc55b21d31abb9e2febef6a51ebb ('Use uint32_t instead of + unsigned32_t.') missed some Xen code + + * xen/net.c (recompute_checksum): Use stdint.h types. + * xen/time.c (hyp_get_stime): Likewise. + +2016-04-04 Flavio Cruz + + Use uint32_t instead of unsigned32_t. + Implement stdint.h and use it in gnumach. + + Remove old type definitions such as signed* and unsigned*. + + * Makefile.am: Add -ffreestanding. + * i386/i386/xen.h: Use uint64_t. + * i386/include/mach/i386/machine_types.defs: Use uint32_t and int32_t. + * i386/include/mach/i386/vm_types.h: Remove definitions of int*, uint*, + unsigned* and signed* types. + * i386/xen/xen.c: Use uint64_t. + * include/device/device_types.defs: Use uint32_t. + * include/mach/std_types.defs: Use POSIX types. + * include/mach/std_types.h: Include stdint.h. + * include/stdint.h: New file with POSIX types. + * include/sys/types.h: Include stdint.h. + * ipc/ipc_kmsg.c: Use uint64_t. + * kern/exception.c: Use uint32_t. + * linux/dev/include/linux/types.h: Remove POSIX types. + * xen/block.c: Use uint64_t. + * xen/net.c: Do not use removed unsigned*_t types. + * xen/ring.h: Use uint32_t instead. + * xen/store.c: Use uint32_t. + * xen/store.h: Use uint32_t. + * xen/time.c: Use POSIX types only. + * xen/time.h: Use uint64_t. + +2016-03-19 Samuel Thibault + + Make kernel mapping start address configurable + and move it to 16MiB by default to free 24bit DMA area + + * i386/configfrag.ac (--with-_START_MAP): Add option, default to 0x1000000. + * i386/Makefrag.am (_START_MAP): Set to $(_START_MAP). + (_START): Set to _START_MAP+0xC0000000. + +2016-03-19 Samuel Thibault + + Fix getting ELF symbol bind and type + ddb/db_elf.c (elf_db_search_symbol): Use ELF32_ST_BIND and ELF32_ST_TYPE to + access symbol bind and type. + +2016-03-13 Richard Braun + + Avoid panics on physical memory exhaustion + * vm/vm_resident (vm_page_grab_contig): Return NULL instead of calling + panic on memory exhaustion. + +2016-03-11 Samuel Thibault + + Ship missing files + Makefrag.am (libkernel_a_SOURCES): Add kern/log2.h. + (EXTRA_DIST): Add kern/exc.defs. + i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/elf.h. + +2016-03-11 Richard Braun + + Merge remote-tracking branch 'remotes/origin/rbraun/vm_cache_policy' + Finally ;-). + +2016-03-09 Richard Braun + + Fix stack allocation on Xen + Stack allocation on Xen can fail because of fragmentation. This change + makes stack allocation use the slab allocator. + + * kern/thread.c (thread_stack_cache): New global variable. + (stack_alloc): Use kmem_cache_alloc instead of vm_page_grab_contig. + (stack_collect): Use kmem_cache_free instead of vm_page_free_contig. + (kmem_cache_init): Initialize thread_stack_cache. + +2016-03-09 Richard Braun + + Relax slab allocation alignment constraint + * kern/slab.c (kmem_pagealloc_virtual): Pass alignment to function, + call kmem_alloc_aligned when greater than a page. + (kmem_pagealloc): Pass alignment to function. + (kmem_slab_create): Update call to kmem_pagealloc. + (kalloc): Likewise. + (kmem_cache_compute_properties): Fix handling of color with large slab + sizes. + (kmem_cache_init): Allow alignment greater than the page size. + +2016-03-06 Samuel Thibault + + Inherit fpu control word from parent to child + * i386/i386/thread.h (struct pcb): Add init_control field. + * i386/i386/fpu.h (fpinherit): New prototype. + * i386/i386/fpu.c (fpinit): Add thread parameter. When init_control field is + set, use that value instead of a hardcoded one. + (fpinherit): New function. + (fp_load): Pass thread parameter to fpinit(). + * kern/thread.c (thread_create): Pass parent task to pcb_init(). + * i386/i386/pcb.c (pcb_init): Add parent_task parameter, call fpinherit when + it is equal to current_task(). + +2016-02-28 Justus Winter + + ipc: add missing kernel object type + * ipc/ipc_object.c (ikot_print_array): Add entry for IKOT_PAGER_PROXY. + + doc: clarify memory object initialization + * doc/mach.texi: Mention another way how a memory manager can signal + that an object is ready. + + i386: add parts of cpu.h from x15 + * i386/Makefrag.am (libkernel_a_SOURCES): Add new file. + * i386/i386/cpu.h: New file. + +2016-02-26 Justus Winter + + include: avoid generating unused client stubs + * include/mach/mach.defs: Avoid generating unused client stubs, some + of which use an unreasonable amount of stack space and showed up in + compiler warnings. + +2016-02-26 Samuel Thibault + + Document thread_sleep about events woken from interrupt handlers + * kern/sched_prim.c (thread_sleep): Document case of events woken from + interrupt handlers. + + Document why code is not racy + * i386/i386at/kd_mouse.c (kd_mouse_read): Document why the + assert_wait/thread_block pair is not racy. + +2016-02-23 Justus Winter + + Include the exception protocol in 'gnumach.msgids' + * Makefrag.am: Include the exception protocol in 'gnumach.msgids'. + * kern/exc.defs: New file. + +2016-02-22 Richard Braun + + Remove kmem cache flags from the debugging interface + * include/mach_debug/slab_info.h (CACHE_FLAGS_NO_CPU_POOL, + CACHE_FLAGS_SLAB_EXTERNAL, CACHE_FLAGS_NO_RECLAIM, + CACHE_FLAGS_VERIFY, CACHE_FLAGS_DIRECT): Remove macros. + * kern/slab.c (host_slab_info): Pass raw cache flags to caller. + +2016-02-22 Richard Braun + + Fix slab allocator option handling + The slab allocator has grown to use multiple ways to allocate slabs + as well as track them, which got a little messy. One consequence is + the breaking of the KMEM_CF_VERIFY option. In order to make the code + less confusing, this change expresses all options as explicit cache + flags and clearly defines their relationships. + + The special kmem_slab and vm_map_entry caches are initialized + accordingly. + + * kern/slab.c (KMEM_CF_DIRECTMAP): Rename to ... + (KMEM_CF_PHYSMEM): ... this new macro. + (KMEM_CF_DIRECT): Restore macro. + (KMEM_CF_USE_TREE, KMEM_CF_USE_PAGE): New macros. + (KMEM_CF_VERIFY): Update value. + (kmem_pagealloc_directmap): Rename to... + (kmem_pagealloc_physmem): ... this new function. + (kmem_pagefree_directmap): Rename to ... + (kmem_pagefree_physmem): ... this new function. + (kmem_pagealloc, kmem_pagefree): Update macro names. + (kmem_slab_use_tree): Remove function. + (kmem_slab_create, kmem_slab_destroy): Update according to the new + cache flags. + (kmem_cache_compute_sizes): Rename to ... + (kmem_cache_compute_properties): ... this new function, and update + to properly set cache flags. + (kmem_cache_init): Update call to kmem_cache_compute_properties. + (kmem_cache_alloc_from_slab): Check KMEM_CF_USE_TREE instead of + calling the defunct kmem_slab_use_tree function. + (kmem_cache_free_to_slab): Update according to the new cache flags. + kmem_cache_free_verify): Add assertion. + (slab_init): Update initialization of kmem_slab_cache. + * kern/slab.h (KMEM_CACHE_DIRECTMAP): Rename to ... + (KMEM_CACHE_PHYSMEM): ... this new macro. + * vm/vm_map.c (vm_map_init): Update initialization of vm_map_entry_cache. + +2016-02-22 Richard Braun + + Optimize slab lookup on the free path + Caches that use external slab data but allocate slabs from the direct + physical mapping can look up slab data in constant time by associating + the slab data directly with the underlying page. + + * kern/slab.c (kmem_slab_use_tree): Take KMEM_CF_DIRECTMAP into account. + (kmem_slab_create): Set page private data if relevant. + (kmem_slab_destroy): Clear page private data if relevant. + (kmem_cache_free_to_slab): Use page private data if relevant. + * vm/vm_page.c (vm_page_init_pa): Set `priv' member to NULL. + * vm/vm_page.h (vm_page_set_priv, vm_page_get_priv): New functions. + +2016-02-22 Richard Braun + + Fix unused variable warnings + * kern/slab.c (slab_init): Remove unused variables. + +2016-02-20 Richard Braun + + Avoid slab allocation failures caused by memory fragmentation + Since the slab allocator has been changed to sit directly on top of the + physical allocator, failures caused by fragmentation have been observed, + as one could expect. This change makes the slab allocator revert to + kernel virtual memory when allocating larger-than-page slabs. This + solution is motivated in part to avoid the complexity of other solutions + such as page mobility, and also because a microkernel cannot be extended + to new arbitrary uncontrolled usage patterns such as a monolithic kernel + with loadable modules. As such, large objects are rare, and their use + infrequent, which is compatible with the use of kernel virtual memory. + + * kern/slab.c: Update module description. + (KMEM_CF_SLAB_EXTERNAL, KMEM_CF_VERIFY): Update values. + (KMEM_CF_DIRECT): Remove macro. + (KMEM_CF_DIRECTMAP): New macro. + (kmem_pagealloc_directmap, kmem_pagefree_directmap, + kmem_pagealloc_virtual, kmem_pagefree_virtual): New functions. + (kmem_pagealloc, kmem_pagefree, kmem_slab_create, kmem_slab_destroy, + kalloc, kfree): Update to use the new pagealloc functions. + (kmem_cache_compute_sizes): Update the algorithm used to determine slab + size and other cache properties. + (kmem_slab_use_tree, kmem_cache_free_to_slab, host_slab_info): Update to + correctly use the cache flags. + (slab_init): Add KMEM_CACHE_DIRECTMAP to the kmem_slab_cache init flags. + * kern/slab.h (KMEM_CACHE_VERIFY): Change value. + (KMEM_CACHE_DIRECTMAP): New macro. + * vm/vm_map.c (vm_map_init): Add KMEM_CACHE_DIRECTMAP to the + vm_map_entry_cache init flags. + +2016-02-16 Richard Braun + + Avoid panics on physical memory exhaustion + * vm/vm_resident (vm_page_grab): Return NULL instead of calling panic + on memory exhaustion. + +2016-02-14 Samuel Thibault + + Reduce VM_KERNEL_MAP_SIZE + Now that KMEM_MAP_SIZE (128MiB) has been removed. + + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE): Decrease by 128MiB. + +2016-02-07 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: initialize external maps + * vm/vm_external.c (vm_external_create): Initialize allocated maps. + +2016-02-07 Richard Braun + + Fix page cache accounting + * vm/vm_object.c (vm_object_bootstrap): Set template object `cached' + member to FALSE. + (vm_object_cache_add, vm_object_cache_remove): New functions. + (vm_object_collect, vm_object_deallocate, vm_object_lookup, + vm_object_lookup_name, vm_object_destroy): Use new cache management functions. + (vm_object_terminate, vm_object_collapse): Make sure object isn't cached. + * vm/vm_object.h (struct vm_object): New `cached' member. + +2016-02-07 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: allocate a large map for all objects larger than SMALL_SIZE + * vm/vm_external.c (vm_external_create): Allocate a large map for all + objects larger than SMALL_SIZE. 'vm_external_state_{g,s}et' can deal + with offsets larger than 'LARGE_SIZE', so currently objects larger + than 'LARGE_SIZE' are missing out on the optimization. + + vm: remove unused field from struct vm_external + * vm/vm_external.h (struct vm_external): Remove unused field + 'existence_count'. + +2016-02-07 Richard Braun + + Remove kmem map + Now that the slab allocator doesn't use kernel virtual memory any more, + this map has become irrelevant. + + * kern/slab.c (KMEM_MAP_SIZE): Remove macro. + (kmem_map_store, kmem_map): Remove variables. + (slab_init): Remove call kmem_submap. + * kern/slab.h (kmem_map): Remove extern declaration. + +2016-02-06 Richard Braun + + Change computation of slab size + Allocating directly out of the physical memory allocator makes the slab + allocator vulnerable to failures due to fragmentation. This change makes + the slab allocator use the lowest possible size for its slabs to reduce + the chance of contiguous allocation failures. + + * kern/slab.c (KMEM_MIN_BUFS_PER_SLAB, KMEM_SLAB_SIZE_THRESHOLD): Remove + macros. + (kmem_cache_compute_sizes): Update the algorithm used to determine slab + size and other cache properties. + +2016-02-02 Richard Braun + + Fix various memory managment errors + A few errors were introduced in the latest changes. + + o Add VM_PAGE_WAIT calls around physical allocation attempts in case of + memory exhaustion. + o Fix stack release. + o Fix memory exhaustion report. + o Fix free page accounting. + + * kern/slab.c (kmem_pagealloc, kmem_pagefree): New functions + (kmem_slab_create, kmem_slab_destroy, kalloc, kfree): Use kmem_pagealloc + and kmem_pagefree instead of the raw page allocation functions. + (kmem_cache_compute_sizes): Don't store slab order. + * kern/slab.h (struct kmem_cache): Remove `slab_order' member. + * kern/thread.c (stack_alloc): Call VM_PAGE_WAIT in case of memory + exhaustion. + (stack_collect): Call vm_page_free_contig instead of kmem_free to + release pages. + * vm/vm_page.c (vm_page_seg_alloc): Fix memory exhaustion report. + (vm_page_setup): Don't update vm_page_free_count. + (vm_page_free_pa): Check page parameter. + (vm_page_mem_free): New function. + * vm/vm_page.h (vm_page_free_count): Remove extern declaration. + (vm_page_mem_free): New prototype. + * vm/vm_pageout.c: Update comments not to refer to vm_page_free_count. + (vm_pageout_scan, vm_pageout_continue, vm_pageout): Use vm_page_mem_free + instead of vm_page_free_count, update types accordingly. + * vm/vm_resident.c (vm_page_free_count, vm_page_free_count_minimum): + Remove variables. + (vm_page_free_avail): New variable. + (vm_page_bootstrap, vm_page_grab, vm_page_release, vm_page_grab_contig, + vm_page_free_contig, vm_page_wait): Use vm_page_mem_free instead of vm_page_free_count, + update types accordingly, don't set vm_page_free_count_minimum. + * vm/vm_user.c (vm_statistics): Likewise. + +2016-02-02 Richard Braun + + Fix unused variable warnings + * i386/i386at/biosmem.c (biosmem_bootstrap): Remove unused variables. + +2016-02-02 Richard Braun + + Stack the slab allocator directly on top of the physical allocator + In order to increase the amount of memory available for kernel objects, + without reducing the amount of memory available for user processes, + a new allocation strategy is introduced in this change. + + Instead of allocating kernel objects out of kernel virtual memory, + the slab allocator directly uses the direct mapping of physical + memory as its backend. This largely increases the kernel heap, and + removes the need for address translation updates. + + In order to allow this strategy, an assumption made by the interrupt + code had to be removed. In addition, kernel stacks are now also + allocated directly from the physical allocator. + + * i386/i386/db_trace.c: Include i386at/model_dep.h + (db_i386_reg_value): Update stack check. + * i386/i386/locore.S (trap_from_kernel, all_intrs, + int_from_intstack): Update interrupt handling. + * i386/i386at/model_dep.c: Include kern/macros.h. + (int_stack, int_stack_base): New variables. + (int_stack_high): Remove variable. + (i386at_init): Update interrupt stack initialization. + * i386/i386at/model_dep.h: Include i386/vm_param.h. + (int_stack_top, int_stack_base): New extern declarations. + (ON_INT_STACK): New macro. + * kern/slab.c: Include vm/vm_page.h + (KMEM_CF_NO_CPU_POOL, KMEM_CF_NO_RECLAIM): Remove macros. + (kmem_pagealloc, kmem_pagefree, kalloc_pagealloc, kalloc_pagefree): Remove + functions. + (kmem_slab_create): Allocate slab pages directly from the physical allocator. + (kmem_slab_destroy): Release slab pages directly to the physical allocator. + (kmem_cache_compute_sizes): Update the slab size computation algorithm to + return a power-of-two suitable for the physical allocator. + (kmem_cache_init): Remove custom allocation function pointers. + (kmem_cache_reap): Remove check on KMEM_CF_NO_RECLAIM. + (slab_init, kalloc_init): Update calls to kmem_cache_init. + (kalloc, kfree): Directly fall back on the physical allocator for big + allocation sizes. + (host_slab_info): Remove checks on defunct flags. + * kern/slab.h (kmem_slab_alloc_fn_t, kmem_slab_free_fn_t): Remove types. + (struct kmem_cache): Add `slab_order' member, remove `slab_alloc_fn' and + `slab_free_fn' members. + (KMEM_CACHE_NOCPUPOOL, KMEM_CACHE_NORECLAIM): Remove macros. + (kmem_cache_init): Update prototype, remove custom allocation functions. + * kern/thread.c (stack_alloc): Allocate stacks from the physical allocator. + * vm/vm_map.c (vm_map_kentry_cache, kentry_data, kentry_data_size): Remove + variables. + (kentry_pagealloc): Remove function. + (vm_map_init): Update calls to kmem_cache_init, remove initialization of + vm_map_kentry_cache. + (vm_map_create, _vm_map_entry_dispose, vm_map_copyout): Unconditionnally + use vm_map_entry_cache. + * vm/vm_map.h (kentry_data, kentry_data_size, kentry_count): Remove extern + declarations. + * vm/vm_page.h (VM_PT_STACK): New page type. + * device/dev_lookup.c (dev_lookup_init): Update calls to kmem_cache_init. + * device/dev_pager.c (dev_pager_hash_init, device_pager_init): Likewise. + * device/ds_routines.c (mach_device_init, mach_device_trap_init): Likewise. + * device/net_io.c (net_io_init): Likewise. + * i386/i386/fpu.c (fpu_module_init): Likewise. + * i386/i386/machine_task.c (machine_task_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/processor.c (pset_sys_init): Likewise. + * kern/rdxtree.c (rdxtree_cache_init): Likewise. + * kern/task.c (task_init): Likewise. + * vm/memory_object_proxy.c (memory_object_proxy_init): Likewise. + * vm/vm_external.c (vm_external_module_initialize): Likewise. + * vm/vm_fault.c (vm_fault_init): Likewise. + * vm/vm_object.c (vm_object_bootstrap): Likewise. + * vm/vm_resident.c (vm_page_module_init): Likewise. + (vm_page_bootstrap): Remove initialization of kentry_data. + +2016-01-30 Richard Braun + + Fix early page allocation on Xen + The Xen target was completely ignored when porting the biosmem and + vm_page physical memory allocators. Let's fix this. + + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/biosmem.{c,h}. + * i386/i386/vm_page.h (VM_PAGE_MAX_SEGS, VM_PAGE_DIRECTMAP_LIMIT, + VM_PAGE_HIGHMEM_LIMIT): Define for Xen. + * i386/i386at/biosmem.c: Include mach/xen.h. + (biosmem_panic_setup_msg): Comment out for Xen since it's unused. + (biosmem_map_build, biosmem_map_build_simple, + biosmem_save_cmdline_sizes, biosmem_find_boot_data_update, + biosmem_find_boot_data, biosmem_setup_allocator): Likewise. + (biosmem_bootstrap_common): New function. + (biosmem_xen_bootstrap): Likewise, for Xen. + (biosmem_bootalloc): Perform bottom-up allocations for Xen. + * i386/i386at/biosmem.h (biosmem_xen_bootstrap): New prototype, for Xen. + * i386/i386at/model_dep.c (i386at_init): Call biosmem_xen_bootstrap instead + of biosmem_bootstrap on Xen. + * i386/include/mach/i386/vm_types.h (phys_addr_t): Define as an unsigned + 64-bits integer when PAE is enabled. + +2016-01-29 Samuel Thibault + + Disable probing legacy IDE when AHCI driver works + * linux/src/drivers/block/ide.c (default_io_base): Do not qualify const. + (ide_disable_base): New function. + * linux/dev/include/linux/blk.h (ide_disable_base): New declaration. + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Call ide_disable_base + with each I/O BAR of the AHCI PCI card. + + Use PCI macros + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Use + PCI_BASE_ADDRESS_SPACE_IO and PCI_BASE_ADDRESS_MEM_MASK macros instead of + hardcoded values. + + ahci: print PCI bus/dev/fun in hexadecimal + * linux/dev/drivers/block/ahci.c: Print PCI bus/dev/fun number in + hexadecimal + +2016-01-29 Samuel Thibault + + Fallback on direct PCI access when no BIOS32 is available + Some hardware start shippping with no BIOS32 at all, and we'll have to + implement ACPI to get the address of the mmconfig table. In the meanwhile, + we can hope that the direct probe works (it does on HP820 for instance). + + * linux/src/arch/i386/kernel/bios32.c (pcibios_init): Also try + check_direct_pci() when bios32 probing failed. + +2016-01-23 Richard Braun + + Merge branch 'rbraun/vm_page' + +2016-01-23 Richard Braun + + Use vm_page as the physical memory allocator + This change replaces the historical page allocator with a buddy allocator + implemented in vm/vm_page.c. This allocator allows easy contiguous allocations + and also manages memory inside segments. In a future change, these segments + will be used to service requests with special constraints, such as "usable + for 16-bits DMA" or "must be part of the direct physical mapping". + + * Makefrag.am (libkernel_a_SOURCES): Add vm/vm_page.c. + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/biosmem.{c,h}. + * i386/i386/vm_param.h: Include kern/macros.h. + (VM_PAGE_DMA_LIMIT, VM_PAGE_MAX_SEGS, VM_PAGE_DMA32_LIMIT, + VM_PAGE_DIRECTMAP_LIMIT, VM_PAGE_HIGHMEM_LIMIT, VM_PAGE_SEG_DMA, + VM_PAGE_SEG_DMA32, VM_PAGE_SEG_DIRECTMAP, VM_PAGE_SEG_HIGHMEM): New macros. + * i386/i386at/model_dep.c: Include i386at/biosmem.h. + (avail_next, avail_remaining): Remove variables. + (mem_size_init): Remove function. + (i386at_init): Initialize and use the biosmem module for early physical + memory management. + (pmap_free_pages): Return phys_last_addr instead of avail_remaining. + (init_alloc_aligned): Turn into a wrapper for biosmem_bootalloc. + (pmap_grab_page): Directly call init_alloc_aligned instead of pmap_next_page. + * i386/include/mach/i386/vm_types.h (phys_addr_t): New type. + * kern/bootstrap.c (free_bootstrap_pages): New function. + (bootstrap_create): Call free_bootstrap_pages instead of vm_page_create. + * kern/cpu_number.h (CPU_L1_SIZE): New macro. + * kern/slab.h: Include kern/cpu_number.h. + (CPU_L1_SIZE): Remove macro, moved to kern/cpu_number.h. + * kern/startup.c (setup_main): Change the value of machine_info.memory_size. + * linux/dev/glue/glue.h (alloc_contig_mem, free_contig_mem): Update prototypes. + * linux/dev/glue/kmem.c (linux_kmem_init): Don't use defunct page queue. + * linux/dev/init/main.c (linux_init): Don't free unused memory. + (alloc_contig_mem, free_contig_mem): Turn into wrappers for the vm_page + allocator. + * linux/pcmcia-cs/glue/ds.c (PAGE_SHIFT): Don't undefine. + * vm/pmap.h (pmap_startup, pmap_next_page): Remove prototypes. + * vm/vm_fault.c (vm_fault_page): Update calls to vm_page_convert. + * vm/vm_init.c (vm_mem_init): Call vm_page_info_all. + * vm/vm_object.c (vm_object_page_map): Update call to vm_page_init. + * vm/vm_page.h (vm_page_queue_free): Remove variable declaration. + (vm_page_create, vm_page_release_fictitious, vm_page_release): Remove + declarations. + (vm_page_convert, vm_page_init): Update prototypes. + (vm_page_grab_contig, vm_page_free_contig): New prototypes. + * vm/vm_resident.c (vm_page_template, vm_page_queue_free, + vm_page_big_pagenum): Remove variables. + (vm_page_bootstrap): Update and call vm_page_setup. + (pmap_steal_memory): Update and call vm_page_bootalloc. + (pmap_startup, vm_page_create, vm_page_grab_contiguous_pages): Remove functions. + (vm_page_init_template, vm_page_grab_contig, + vm_page_free_contig): New functions. + (vm_page_init): Update and call vm_page_init_template. + (vm_page_release_fictitious): Make static. + (vm_page_more_fictitious): Update call to vm_page_init. + (vm_page_convert): Rewrite to comply with vm_page. + (vm_page_grab): Update and call vm_page_alloc_pa. + (vm_page_release): Update and call vm_page_free_pa. + +2016-01-23 Richard Braun + + Import the vm_page module from X15 and relicense to GPLv2+ + * vm/vm_page.c: New File. + * vm/vm_page.h: Merge vm_page.h from X15. + (struct vm_page): New members: node, type, seg_index, order, + vm_page_header. Turn phys_addr into a phys_addr_t. + + Import the biosmem module from X15 and relicense to GPLv2+ + * i386/i386at/biosmem.c: New file. + * i386/i386at/biosmem.h: Likewise. + + Import the multiboot module from X15 and relicense to GPLv2+ + * i386/include/mach/i386/multiboot.h: Merge multiboot.h from X15. + + Import the elf module from X15 and relicense to GPLv2+ + * i386/i386at/elf.h: New file. + + Import the log2 module from X15 and relicense to GPLv2+ + * kern/log2.h: New file. + +2016-01-14 Samuel Thibault + + Fix build with gcc-6 + * linux/src/include/linux/compiler-gcc6.h: New file. + +2016-01-13 Samuel Thibault + + Increase kernel map size + To avoid running out of memory due to the increased consumption by radix + trees which replaced arrays. + + * kern/slab.c (KMEM_MAP_SIZE): Bump from 96MiB to 128MiB. + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE): Add 32MiB accordingly. + +2016-01-02 Richard Braun + + Completely disable strict aliasing + * Makefile.am (AM_CFLAGS): Add -fno-strict-aliasing. + + Fix object page list type + * vm/vm_object.h (struct vm_object): Use queue_head_t instead of + queue_chain_t as the page list type. + +2016-01-02 Flavio Cruz + + replace extern with static in some linux code + * linux/dev/include/linux/fs.h: Replace extern with static. + * linux/dev/include/linux/locks.h: Likewise. + * linux/dev/include/linux/mm.h: Likewise. + * linux/src/drivers/net/e2100.c: Likewise + * linux/src/include/asm-i386/termios.h: Likewise. + * linux/src/include/linux/interrupt.h: Likewise. + * linux/src/include/net/route.h: Likewise. + * linux/src/include/net/sock.h: Likewise. + + fix t_addr assignment in lpropen + * i386/i386at/lpr.c (lpropen): Fix assignment to t_addr. + +2016-01-01 Flavio Cruz + + remove unnused disk code and headers + * i386/Makefrag.am: Remove disk.h. + * i386/i386at/disk.h: Remove unnused definitions. + * i386/include/mach/i386/disk.h: Remove. + * linux/dev/glue/block.c (device_get_status): Remove V_GETPARMS case. + + fix some compiler warnings in gnumach + * linux/dev/glue/block.c (out): Cast to device_t. + * linux/dev/init/main.c (alloc_contig_mem): Initialize addr and cast return value to void *. + * i386/i386/phys.c (pmap_copy_page): Initialize src_map. + * i386/intel/pmap.c: Include i386at/model_dep.h. + * kern/mach_clock.c (mapable_time_init): Cast to void *. + +2016-01-01 Richard Braun + + Slightly improve map debugging readability + * vm/vm_object.c (vm_object_print): Break line so all debugging output fits + in a page. + +2015-12-29 Richard Braun + + Improve map debugging readability + * vm/vm_map.c (vm_map_print): Reduce indentation, break lines earlier. + (vm_map_copy_print): Likewise. + * vm/vm_object.c (vm_object_print): Likewise. + + Improve VM map debugging + * vm/vm_map.c (vm_map_print): Update arguments to conform to ddb + protocol. + * vm/vm_print.h (vm_map_print): Likewise for prototype. + + Fix vm_map_copyout + * vm/vm_map.c (vm_map_copyout): Reinitialize copy map red-black tree. + +2015-12-11 Samuel Thibault + + Fix boot under kvm in linux 4.3 + * i386/i386/locore.S (discover_x86_cpu_type): Disable Cyrix CPU discovery. + +2015-11-29 Samuel Thibault + + Nicer out of memory condition reporting + * vm/vm_object.c (_vm_object_allocate): Return 0 immediately when + kmem_cache_alloc returned 0. + (vm_object_allocate): Panic when _vm_object_allocate returns 0. + +2015-11-27 Samuel Thibault + + Fix wired accounting + * vm/vm_map.c (vm_map_pageable_common): Put back wired_count decrementation + into user_wired_count test. + + Fix ahci unit MAX_PORTS check + * linux/dev/drivers/block/ahci.c (ahci_do_request): Fix checking unit + against MAX_PORTS. + + Fix bound + * i386/i386at/lpr.c (lprprobe): Fix checking unit against NLPR. + + Fix missing format in printk + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Add missing format. + +2015-10-31 Thomas Schwinge + + GNU Mach 1.6 + * version.m4 (AC_PACKAGE_VERSION): Set to 1.6. + * NEWS: Finalize for 1.6. + +2015-10-31 Thomas Schwinge + + Rework *.msgids handling when neither client nor server stubs are required + Originally added in commit 255c47e669819f153c722c98a230f6fe4e6ece08, but "make + distcheck" didn't like that: + + [...] + ERROR: files left in build directory after distclean: + ./ipc/notify.msgids + Makefile:7489: recipe for target 'distcleancheck' failed + make[1]: *** [distcleancheck] Error 1 + make[1]: Leaving directory '[...]/gnumach/release.build/gnumach-1.5/_build/sub' + Makefile:7416: recipe for target 'distcheck' failed + make: *** [distcheck] Error 1 + + Instead of special-casing that, generalize the Makefile rules. + + * Makefrag.am (nodist_lib_dep_tr_for_defs_a_SOURCES): Add + ipc/notify.none.defs.c. + (nodist_libkernel_a_SOURCES): Add ipc/notify.none.msgids. + (gnumach.msgids): Remove ipc/notify.msgids prerequisite. + * Makerules.mig.am (%.msgids): Remove rule, and instead... + (%.none.defs.c, %.none.msgids): ... add these rules. + +2015-10-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + Update NEWS file + +2015-10-05 Samuel Thibault + + Fix time going back in Xen case + when backward time correction happens to get bigger than the tick duration. + + * kern/mach_clock.c (clock_interrupt): When `tickdelta' is bigger than `usec', + truncate it to `usec-1'. + +2015-10-05 Joshua Branson + + Add generated mach documentation files to gitignore + * .gitignore: Add doc/mach.aux doc/mach.cp doc/mach.cps doc/mach.fn + doc/mach.fns doc/mach.ky doc/mach.log doc/mach.pdf doc/mach.pg doc/mach.toc + doc/mach.tp doc/mach.vr. + +2015-09-29 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/slab: print total used and reclaimable memory + * kern/slab.c (_slab_info): Print total used and reclaimable memory. + + kern/slab: include flags in the slab information + * kern/slab.c (_slab_info): Include flags in the slab information. + + ddb: fix line formatting + * ddb/db_output.c (db_putchar): Fix off-by-one, allowing one more + character to be printed before the newline is inserted. + + ddb: add new command `show slabinfo' + * ddb/db_command.c (db_show_cmds): Add `slabinfo'. + * kern/slab.c (slab_info): Generalize so that it can be used with + different printf-like functions, and turn it into a static function. + (slab_info): New wrapper retaining the old behaviour. + (db_show_slab_info): New wrapper that uses `db_printf' instead. + * kern/slab.h (db_show_slab_info): New declaration. + +2015-09-27 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: trace syscalls of a single task + * i386/i386/debug_i386.c (syscall_trace_task): New variable. + (syscall_trace_print): If set, trace only syscalls from this task. + + i386: improve syscall tracing + * kern/syscall_sw.h (mach_trap_t): Turn unused field into `mach_trap_name'. + (MACH_TRAP, MACH_TRAP_STACK): Record name. + * i386/i386/debug_i386.c (syscall_trace_print): Use the name and + format the arguments to look like c. + + Fix build with -DDEBUG + * device/cirbuf.c: Add missing include. + * i386/i386/debug.h (dump_ss): Hide declaration from assembler. + * i386/i386/debug_i386.c: Fix include. + * kern/sched_prim.h: Add missing include, fix declaration. + + kern/bootstrap: drop into the debugger + * kern/bootstrap.c (boot_script_prompt_task_resume): Drop into the + debugger instead of merely waiting for return using `safe_gets', which + disables interrupts, making it impossible to break into the debugger + using the magic keys. + +2015-09-19 Flávio Cruz + + Add macros to convert between time_value_t and timespec + * include/mach/time_value.h (TIME_VALUE_TO_TIMESPEC, + TIMESPEC_TO_TIME_VALUE): New macros + +2015-09-07 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: use proper memory fences when handling the mapped time + * include/mach/time_value.h (struct mapped_time_value): Adjust comment. + * kern/mach_clock.c (mtime): Likewise. Also make it volatile. + (update_mapped_time): Use full hardware barriers. + (read_mapped_time): New macro with proper fences. + (record_time_stamp, host_get_time): Use the new macro. + +2015-09-07 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix loop reading the time value + Previously, recent versions of gcc would hoist the loads out of the + loop reading the time value. + + * kern/macros.h (access_once): New macro. + * kern/mach_clock.c (host_get_time): Use the new macro to prevent the + loads from being hoisted out of the loop. + +2015-09-07 Rik van Riel + + commit fce798016c4bd2be89b86b0d343ab54505409412 + [PATCH] advansys.c buffer overflow + + The Stanford checker found an error in advansys.c, the driver + is accessing field 6 in an array[6]. Since this is the only + place where this field is accessed it should be safe to simply + remove this line. + +2015-08-31 Samuel Thibault + + Reserve 64k at beginning of memory, not just 4k + Linux does this to be extra careful with some BIOSes which apparently + spuriously write between 4k and 64k. + + * i386/i386at/model_dep.c (RESERVED_BIOS): New macro. + (avail_next, mem_size_init, init_alloc_aligned): Use RESERVED_BIOS instead + of hardcoded 0x1000. + +2015-08-30 James Clarke + + Fix printk not handling ANSI escape codes + * i386/i386at/kd.c (kdstart): Moved escape sequence handling to new + kd_putc_esc function. + (kd_putc_esc): New function with logic from kdstart. + (kdcnputc): Call kd_putc_esc rather than kd_putc to allow for ANSI + escape codes. + * i386/i386at/kd.h (kd_putc_esc): New function. + +2015-08-28 Flávio Cruz + + Make sure the reply port's reference is released when the thread needs to be halted. + * kern/thread.h (thread_halt_self): Add continuation_t parameter. + * kern/thread.c (thread_halt_self): Pass continuation_t parameter to + thread_block instead of thread_exception_return. + * kern/ast.c (ast_taken): Pass thread_exception_return to thread_halt_self. + * kern/profile.c (profile_thread): Likewise. + * kern/exception.c (exception_no_server): Likewise. + (thread_release_and_exception_return): New function. + (exception_raise_continue_slow): Pass thread_release_and_exception_return to + thread_halt_self. + +2015-08-28 Flávio Cruz + + Add a thread_no_continuation definition + to replace the use of the NULL pointer. + + * kern/sched_prim.h (thread_no_continuation): New macro. + * kern/machine.c (processor_assign, processor_doaction): Use + thread_no_continuation instead of 0. + * kern/profile.c (send_last_sample_buf): Likewise + * kern/sched_prim.c (thread_sleep, thread_invoke, thread_dispatch): + Likewise. + * kern/task.c (task_terminate, task_assign): Likewise. + * kern/thread.c (thread_suspend): Likewise. + * kern/thread.h (struct thread): Change type of swap_func field to + continuation_t. + +2015-08-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/bootstrap: tune locking + * kern/bootstrap.c (boot_script_exec_cmd): Avoid holding the lock + across the call to `thread_create'. + + i386: enable assertions + * i386/intel/pmap.c (pmap_page_protect): Enable assertions. + (phys_attribute_clear, phys_attribute_test): Likewise. + + kern: really zero-out unused simple lock info entries + * kern/lock.c (simple_unlock): Really zero-out unused simple lock info + entries. + +2015-08-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: fix panic message + * i386/intel/pmap.c (pmap_page_protect): Fix function name in panic + message. + + vm: collapse unreachable branch into assertion + * vm/vm_object.c (vm_object_collapse): Collapse unreachable branch + into assertion. + +2015-08-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: keep track of the writer when debugging locks + * configfrag.ac (MACH_LDEBUG): Adjust comment, we use it to sanity + check all locks now. + * kern/lock.c (lock_write): Keep track of the writer thread. + (lock_done): Clear writer. + (lock_read_to_write): Keep track of the writer thread. + (lock_write_to_read): Assert that the current thread holds the lock. + Clear writer. + (lock_try_write): Keep track of the writer thread. + (lock_try_read_to_write): Likewise. + (lock_set_recursive): Assert that the current thread holds the lock. + * kern/lock.h (struct lock): New field `writer'. + (have_read_lock, have_write_lock, have_lock): New macros that can be + used to assert that the current thread holds the given lock. If + MACH_LDEBUG is not set, they evaluate to true. + +2015-08-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: improve simple lock debugging + Do not bother saving the return address when acquire a simple lock. + Save the location as provided by the compiler as string instead. Also + save the lock parameter. + + * kern/lock.c (struct simple_locks_info): Drop `ra', add `expr', `loc'. + (simple_lock): Rename to `_simple_lock', add expression and location + parameters and save them. + (simple_lock_try): Likewise. + (simple_unlock): Zero-out the now unused slot in the list of taken locks. + (db_show_all_slocks): Use the new information. + * kern/lock.h (simple_lock, simple_lock_try): Provide macro versions + passing the location and expression as string. + +2015-08-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: disable the simple lock checks while debugging + * kern/lock.c (do_check_simple_locks): New variable. + (check_simple_locks): Make check conditional. + (check_simple_locks_{en,dis}able): New functions. + * kern/lock.h (check_simple_locks_{en,dis}able): New declarations. + * ddb/db_trap.c (db_task_trap): Disable simple lock checks. + +2015-08-15 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: fix compiler warning + * vm/vm_user.c (vm_wire): Drop unused but set variable `host'. + + vm: enable extra assertions + * vm/vm_fault.c (vm_fault_page): Enable extra assertions. + + Avoid re-defining macros + * kern/macros.h: Avoid re-defining macros. + * linux/src/include/linux/compiler-gcc.h: Likewise. + * linux/src/include/linux/compiler.h: Likewise. + +2015-07-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: add boot-time clock, use it for time stamps + The kernel keeps track of task and thread creation times by saving a + time stamp. Previously, the real-time clock was used for this. When + the real-time clock is changed, however, the reference frame for the + time stamps is lost. This surfaced in Hurd systems reporting + spuriously long uptimes. + + Fix this by creating a boot-time clock and use it as reference frame + for the time stamps. + + * kern/mach_clock.c (clock_boottime_offset): Create clock by keeping + track of the offset from the real-time. + (clock_boottime_update): New function. + (record_time_stamp): Use the boot-time clock for time stamps. + (read_time_stamp): New function to convert it back to real-time. + (host_set_time): Call `clock_boottime_update'. + * kern/mach_clock.h (record_time_stamp): Amend comment. + (read_time_stamp): New declaration. + * kern/task.c (task_info): Use `read_time_stamp'. + * kern/thread.c (thread_info): Likewise. + +2015-07-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: provide time-value substraction + * include/mach/time_value.h (time_value_assert): New macro to assert + that the given value is well-formed. + (time_value_add_usec): Use the new macro. + (time_value_sub_usec): New macro. + (time_value_add): Use `time_value_add_usec'. + (time_value_sub_usec): New macro. + + kern/lock: make sure the macros are only used on simple locks + * kern/lock.h (struct slock, simple_lock_data_empty): Add field + `is_a_simple_lock'. + (simple_lock_assert): New macro that tests for `is_a_simple_lock'. + Use this macro to assert that the arguments to various other macros + are indeed simple locks. + + Disable the kernel tracing system XPR + * configfrag.ac (XPR_DEBUG): Disable tracing system. + + ipc/space: inline reference counting + * ipc/ipc_space.h (is_{reference,release}): Use the macro variant. + + Make sure the field offsets are updated + * Makerules.am: Make sure the field offsets are updated. + +2015-07-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/bootstrap: deallocate thread + Previously, killing the thread would fail because of the extra + reference, making task_terminate loop forever. + + * kern/bootstrap.c (boot_script_exec_command): Deallocate thread. + +2015-07-19 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/bootstrap: deallocate task + * kern/bootstrap.c (boot_script_free_task): Deallocate task. + +2015-07-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux/net: fix build with -O0 + * linux/src/drivers/net/pci-scan.c: Avoid #erroring out. + +2015-07-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/printf: do not serialize printf and co + A lot of code assumes that printf is re-entrant, e.g. the pagination + code in the debugger, or any use of assert inside the console driver. + + * kern/printf.c: Drop the lock serializing calls to `_doprnt'. + (printf_init): Remove function. + * kern/printf.h (printf_init): Remove declaration. + * kern/startup.c (setup_main): Remove call to `printf_init'. + +2015-07-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern/lock: use compiler built-in functions to get return address + * kern/lock.c (struct simple_locks_info): Fix type of `ra'. + (simple_lock, simple_lock_try): Use compiler built-in functions to get + return address. + + kern/bootstrap: fix locking + * kern/bootstrap.c (boot_script_exec_cmd): Add missing unlock. + (user_bootstrap): Likewise. + + kern/slab: fix locking + * kern/slab.c (host_slab_info): Fix locking. + +2015-07-15 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: use a general lock to protect IPC spaces + This fixes a corruption in the radix trees representing the IPC spaces + when memory was tight. + + * ipc/ipc_space.h: Use a general lock to protect IPC spaces. + +2015-07-15 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: fix the locking of the IPC entry allocation functions + * ipc/ipc_entry.c (ipc_entry_alloc): Assume the space is write-locked. + (ipc_entry_alloc_name): Likewise. + * ipc/ipc_object.c: Fix the locking around all call sites to the two + functions where the space was not locked before. + + i386: fix typo + * i386/intel/pmap.c: Fix typo. + +2015-07-12 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: avoid kmem_alloc + * ipc/ipc_table.c (ipc_table_alloc): Unconditionally use `kalloc'. + (ipc_table_free): Unconditionally use `kfree'. + +2015-07-12 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: really fix traversing the list of inactive pages + Previously, the pageout code traversed the list of pages in an object + instead of the list of inactive pages. + + * vm/vm_pageout.c (vm_pageout_scan): Fix traversing the list of + inactive pages. + +2015-07-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: make sure the queue macros are only used on queues + This turns mistakes as the one corrected in e59f05e9 into compile-time + errors. + + * kern/queue.h: Add a new macro, queue_assert, and use it to assert + that all arguments given to the queue macros have the correct type. + * device/net_io.c (ENQUEUE_DEAD): Adapt to the fact that + `queue_next(q)' is no longer an lvalue. + +2015-07-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: fix traversing the list of inactive pages + Previously, the pageout code traversed the hash table chain instead of + the list of inactive pages. The code merely compiled by accident, + because the `struct page' also has a field called `next' for the hash + table chain. + + * vm/vm_pageout.c (vm_pageout_scan): Fix traversing the list of + inactive pages. + +2015-07-10 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: drop debugging remnants + * vm/vm_object.c (vm_object_terminate): Drop debugging remnants. + + kern: make printf handle long long integers + * Makefile.am (clib_routines): Steal `__umoddi3'. + * kern/printf.c (MAXBUF): Increase size. + (printnum, _doprnt): Handle long long integers. + * kern/printf.h (printnum): Adjust declaration. + +2015-07-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: fix panic message + * vm/vm_kern.c (kmem_init): Fix panic message. + + i386: fix line wrapping in the immediate console + * i386/i386at/immc.c (immc_cnputc): Fix line wrapping. + + kern: remove superfluous file + * kern/server_loop.ch: Remove superfluous file. + + kern: improve error handling + * kern/bootstrap.c (boot_script_exec_cmd): Improve error handling. + +2015-07-09 Samuel Thibault + + Allow non-privileged tasks to wire 64KiB task memory + * doc/mach.texi (vm_wire): Document that the host port does not have to be + privileged. + * include/mach/mach_hosts.defs (vm_wire): Use mach_port_t instead of + host_priv_t. + * vm/vm_map.h (vm_map): Add user_wired field. + * vm/vm_map.c (vm_map_setup): Initialize user_wired field to 0. + (vm_map_pageable_common, vm_map_entry_delete, vm_map_copy_overwrite, + vm_map_copyout_page_list, vm_map_copyin_page_list): When switching + user_wired_count field of entry between 0 and non-0, accumulate the + corresponding size into the user_wired field of map. + * vm/vm_user.c (vm_wire): Turn host parameter into port parameter, and + inline a version of convert_port_to_host_priv which records whether the host + port is privileged or not. When it is not privileged, check whether + the additional amount to user_wired will overcome 64KiB. + +2015-07-07 Samuel Thibault + + Fix build with -O0 + * linux/src/include/linux/string.h (strcpy, strncpy, strcat, strncat, + strchr, strrchr, strlen, strnlen, strcmp, strncmp, memmove, + memscan): Comment out extern declarations. + * linux/dev/include/asm-i386/string.h (strcpy, strncpy, strcat, strncat, + strcmp, strncmp, strchr, strrchr, strlen, __memcpy, __constant_memcpy, + memmove, memchr, __memset_generic, __constant_c_memset, strnlen, + __constant_c_and_count_memset, memscan): Turn extern inline into static + inline. + * linux/dev/include/linux/fs.h (mark_buffer_uptodate): Likewise. + * linux/src/include/asm-i386/bitops.h (set_bit, clear_bit, change_bit, + test_and_set_bit, test_and_clear_bit, test_and_change_bit, test_bit, + find_first_zero_bit, find_next_zero_bit, ffz, ffs): Likewise. + * linux/src/include/asm-i386/io.h (virt_to_phys, phys_to_virt, __out##s, + __in##s, ins##s, outs##s): Likewise. + * linux/src/include/asm-i386/semaphore.h (down, down_interruptible, up): + Likewise. + * linux/src/include/asm-i386/segment.h [!__OPTIMIZE]: Emit an ud2 instruction + instead of an undefined reference. + +2015-07-05 Samuel Thibault + + Add missing distributed file + * Makefrag.am (EXTRA_DIST): Add ipc/notify.defs. + +2015-06-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + Fix re-configuring out-of-tree builds + Previously, running `../configure ...' to reconfigure an out-of-tree + build would link `machine' to `i386/i386' instead of `../i386/i386' + (i.e. point to the build directory instead to the source) if + `i386/i386' also exists in the build directory because of a previous + build. + + * configfrag.ac: Prefix machine link target with `$srcdir'. + +2015-06-30 Samuel Thibault + + Fix restoring interrupts on timeout + * linux/dev/drivers/block/ahci.c (ahci_identify): Restore flags before + returning on timeout. + +2015-06-29 Samuel Thibault + + Print about powered-down AHCI ports + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Print messages when + device is present but powered down. + +2015-06-28 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: automatically display stack traces + * ddb/db_trap.c (db_task_trap): Automatically display stack traces if + an unexpected trap occurs. + +2015-06-28 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: improve the immediate console + Improve the immediate console to the point that it can be enabled and + display e.g. assertion failures from very early on (i.e. from + `c_boot_entry'). + + * device/cons.h (romgetc, romputc): New declarations. + * i386/configfrag.ac: Add configuration variable. + * i386/i386at/conf.c (dev_name_list): Add entry. + * i386/i386at/cons_conf.c (constab): Add entry. + * i386/i386at/immc.c: Add missing includes. + (immc_cnprobe, immc_cninit, immc_cngetc, immc_romputc): New functions. + (immc_cnputc): Fix signature, use virtual addresses. + * i386/i386at/immc.h: New file. + * i386/i386at/kd.c: Use `#if ENABLE_IMMEDIATE_CONSOLE'. + * i386/i386at/kd.h (kd_setpos): Add missing declaration. + * i386/i386at/model_dep.c (c_boot_entry): Install immediate console as + early boot console. + +2015-06-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: add comment + * i386/i386at/model_dep.c (rebootflag): Explain flag. + +2015-06-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix error handling + This avoids calling `thread_deallocate' with an uninitialized value, + as found by the Clang Static Analyzer. + + * kern/thread.c (kernel_thread): Fix error handling. + +2015-06-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: add function attributes to the printf-functions + * kern/printf.h (sprintf, snprintf, vsnprintf, printf): Add the + `printf' function attribute that allows the compiler to check the + format strings and arguments. + +2015-06-05 Flávio Cruz + + Fix typo + * vm/vm_kern.c (kmem_alloc_aligned): Fix typo. + + Use custom port macros. + * ipc/ipc_port.c (ipc_port_alloc_special): Use ip_alloc and ip_lock_init + macros instead of manually inlining them. + +2015-05-31 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: fix typo + * ipc/notify.defs: Fix typo. + + Include the notify protocol in `gnumach.msgids' + * Makefrag.am (gnumach.msgids): Add `notify.msgids' as prerequisite. + * Makerules.mig.am: Add rule to generate the list of message ids when + neither the client nor the server stubs are required. + * ipc/notify.defs: New file. + +2015-05-29 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix argument handling + Previously, the processor argument was not checked. If called with a + non-processor argument (like a task), `processor' is set to NULL, + triggering a page fault. Likewise for the other functions. + + * kern/processor.c (processor_get_assignment): Fix argument handling. + * kern/task.c (task_get_assignment): Likewise. + * kern/thread.c (thread_get_assignment): Likewise. + +2015-05-23 Justus Winter <4winter@informatik.uni-hamburg.de> + + Restrict `-fno-strict-aliasing' to the Linux drivers + * Makefile.am: Move `-fno-strict-aliasing'... + * linux/Makefrag.am: ... here. + + i386: avoid breaking the strict-aliasing rules + * i386/i386/pcb.c (switch_ktss): Cleanly convert the value. + + kern: avoid breaking the strict-aliasing rules + * kern/exception.c (exception_parse_reply): Use `BAD_TYPECHECK'. + + vm: drop unused `kmem_realloc' + * vm/vm_kern.c (kmem_realloc): Remove function. + (kmem_alloc_wired): Adopt comment. + * vm/vm_kern.h (kmem_realloc): Remove declaration. + +2015-05-23 Samuel Thibault + + Add stdint integer types in Linux glue + * linux/dev/include/linux/types.h (int8_t, uint8_t, int16_t, uint16_t, + int32_t, uint32_t, int64_t, uint64_t): New types. + +2015-05-22 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: drop remnants of the IPC tables + * ipc/ipc_table.c (ipc_table_entries): Remove. + (ipc_table_entries_size): Likewise. + (ipc_table_init): Remove initialization of `ipc_table_entries'. + (ipc_table_realloc): Remove function. + * ipc/ipc_table.h: Adjust comments. + (ipc_table_entries): Remove declaration. + (ipc_table_realloc): Likewise. + (it_entries_{alloc,reallocable,realloc,free}): Remove macros. + + ipc: drop size parameter from `ipc_space_create' + * ipc/ipc_space.c (ipc_space_create): Drop size parameter. + * ipc/ipc_space.h (ipc_space_create): Adopt declaration, fix comment. + * kern/ipc_tt.c (ipc_task_init): Adopt accordingly. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: inline key ipc entry lookup functions + Declare functions looking up IPC entries that were previously inlined + manually with `static inline' so that they will be inlined into the + fast paths by the compiler. + + * ipc/ipc_entry.c (ipc_entry_lookup, ipc_entry_get, + ipc_entry_dealloc): Move functions... + * ipc/ipc_space.h: ... here, and declare them as `static inline'. + * ipc/ipc_entry.h: Drop associated declarations. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: replace the IPC table with a radix tree + Currently, the port names are mapped to an IPC object (e.g. a port) + using a table. This, however, requires large chunks of continuous + memory, and leads to scalability problems as virtual kernel memory is + a scarce resource. To avoid excessive overhead, non-contiguous port + names are spilled into a splay tree. + + Replace the IPC table with a radix tree. As the radix tree is able to + store non-contiguous names with reasonable overhead, we can drop the + splay tree as well. + + * ipc/ipc_entry.c (ipc_entry_tree_collision): Remove function. + (ipc_entry_cache): New variable. + (ipc_entry_lookup): Replace with a radix tree lookup. + (ipc_entry_get): The free list handling is changed a little. Adopt + accordingly. + (ipc_entry_free_name): New function. + (ipc_entry_alloc): Adopt accordingly. + (ipc_entry_alloc_name): Likewise. + (ipc_entry_dealloc): Likewise. + (ipc_entry_grow_table): Remove function. + * ipc/ipc_entry.h (struct ipc_entry): Update comment, add field for + name and free list, remove unused fields. + (ipc_entry_cache, ie_alloc, ie_free): New declarations. + (struct ipc_tree_entry): Remove. Also remove any related declarations. + (ipc_entry_grow_table): Remove declaration. + * ipc/ipc_init.c (ipc_bootstrap): Adopt initialization. + * ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): Use `ipc_entry_alloc' + instead of re-coding it. Adopt free list handling. + (ipc_kmsg_copyout_object): Adopt free list handling, store the name. + * ipc/ipc_object.c (ipc_object_copyout): Likewise. + (ipc_object_copyout_multiname): Likewise. + * ipc/ipc_space.c (ipc_space_create): Initialize radix tree and free list. + Drop table and splay tree initialization. + (ipc_space_destroy): Free ipc entries and radix tree, remove table and + splay tree cleanup. + * ipc/ipc_space.h (struct ipc_space): Add radix tree, free list, and size. + Remove all fields related to the table and splay tree. + * ddb/db_print.c (db_port_iterate): Adopt iteration. + (db_lookup_port): Adopt lookup. + * include/mach_debug/ipc_info.h: Remove unused parts of the debug interface. + * include/mach_debug/mach_debug.defs: Likewise. + * include/mach_debug/mach_debug_types.defs: Likewise. + * ipc/mach_debug.c: Likewise. + * ipc/ipc_right.c (ipc_right_reverse): Adopt lookup, store name. + (ipc_right_check): Adopt removal. + (ipc_right_destroy): Likewise. + (ipc_right_dealloc): Likewise. + (ipc_right_delta): Likewise. + (ipc_right_copyin): Adopt insertion, adopt removal. + (ipc_right_copyin_two): Adopt removal. + (ipc_right_copyout): Adopt insertion, adopt removal. + (ipc_right_rename): Likewise, also update comment. + * ipc/mach_port.c (mach_port_names): Adopt iteration. + (mach_port_get_set_status): Likewise. + * ipc/port.h: Update comment. + * ipc/ipc_hash.c: Delete file. + * ipc/ipc_hash.h: Likewise. + * ipc/ipc_splay.c: Likewise. + * ipc/ipc_splay.h: Likewise. + * Makefrag.am (libkernel_a_SOURCES): Remove these files. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: replace reverse hash table with a radix tree + Currently, there is a hash table mapping (space, object) tuples to + `ipc_entry' objects. This hash table is intertwined with the IPC + tables. There is one hash table per IPC space, but it is only for the + entries in the IPC table. This hash table is called `local' in the + source. All IPC entries being spilled into the splay tree are instead + mapped by a global hash table. + + Replace the local (i.e. per IPC space) reverse hash table with a radix + tree. + + * ipc/ipc_entry.c (ipc_entry_grow_table): Adjust accordingly. + * ipc/ipc_entry.h (struct ipc_entry): Adjust comment. + * ipc/ipc_hash.c: Adjust comment explaining the local lookup table. + (IPC_LOCAL_HASH_INVARIANT): New macro. + (ipc_hash_local_lookup): Use the new `ipc_reverse_lookup' function. + (ipc_hash_local_insert): Use the new `ipc_reverse_insert' function. + (ipc_hash_local_delete): Use the new `ipc_reverse_remove' function. + * ipc/ipc_space.c (ipc_space_create): Initialize radix tree. + (ipc_space_destroy): Free radix tree. + * ipc/ipc_space.h (struct ipc_space): Add radix tree. + (ipc_reverse_insert): New function. + (ipc_reverse_remove): Likewise. + (ipc_reverse_remove_all): Likewise. + (ipc_reverse_lookup): Likewise. + * ipc/ipc_right.c (ipc_right_clean): Update comment. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: undo manual inlining of `ipc_entry_X' functions + Today we can rely on the compiler to inline functions. Undoing this + manual optimization is a first step to replace the IPC tables. + + * ipc/mach_msg.c (mach_msg_trap): Undo the manual inlining of + `ipc_entry_lookup', `ipc_entry_dealloc', and `ipc_entry_get'. + * ipc/ipc_kmsg.c (ipc_kmsg_copyin_header, ipc_kmsg_copyout_header): Likewise. + * kern/exception.c (exception_raise): Likewise. + * kern/ipc_mig.c (fast_send_right_lookup): Likewise. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: add radix tree library + Import a radix tree library from Richard Braun's librbraun. + + * Makefile.am (clib_routines): Steal `__ffsdi2'. + * Makefrag.am (libkernel_a_SOURCES): Add new files. + * kern/rdxtree.c: New file. + * kern/rdxtree.h: Likewise. + * kern/rdxtree_i.h: Likewise. + * kern/startup.c (setup_main): Initialize radix tree library. + +2015-05-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: gracefully handle resource shortage + * kern/thread.c (stack_alloc): Report resource shortage. + * kern/sched_prim.h (stack_alloc): Adjust declaration accordingly. + * kern/thread_swap.c (thread_doswapin): Report resource shortage. + (swapin_thread_continue): If the swap-in fails, put the thread back on + the queue and go back to sleep. + * kern/thread_swap.h (thread_doswapin): Adjust declaration accordingly. + + vm: gracefully handle resource shortage + * vm/vm_object.c (vm_object_copy_call): Gracefully handle resource + shortage by doing the allocation earlier and aborting the function if + unsuccessful. + + kern: gracefully handle resource shortage + * kern/task.c (task_create): Gracefully handle resource shortage. + +2015-05-19 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: import `macros.h' from x15 + Import the macro definitions from the x15 kernel project, and replace + all similar definitions littered all over the place with it. + + Importing this file will make importing code from the x15 kernel + easier. We are already using the red-black tree implementation and + the slab allocator from it, and we will import even more code in the + near future. + + * kern/list.h: Do not define `structof', include `macros.h' instead. + * kern/rbtree.h: Likewise. + * kern/slab.c: Do not define `ARRAY_SIZE', include `macros.h' instead. + * i386/grub/misc.h: Likewise. + * i386/i386/xen.h: Do not define `barrier', include `macros.h' instead. + * kern/macro_help.h: Delete file. Replaced by `macros.h'. + * kern/macros.h: New file. + * Makefrag.am (libkernel_a_SOURCES): Add new file, remove old file. + * device/dev_master.h: Adopt accordingly. + * device/io_req.h: Likewise. + * device/net_io.h: Likewise. + * i386/intel/read_fault.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_mqueue.h: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/ipc_splay.c: Likewise. + * ipc/ipc_splay.h: Likewise. + * kern/assert.h: Likewise. + * kern/ast.h: Likewise. + * kern/pc_sample.h: Likewise. + * kern/refcount.h: Likewise. + * kern/sched.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_map.h: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_page.h: Likewise. + +2015-05-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: avoid compiler warning + * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys, + copy_from_phys): Avoid compiler warning about `map' being used + uninitialized. + +2015-05-14 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: use macro to compute address of saved registers + * i386/i386/pcb.c (stack_attach): Use `USER_REGS'. + (stack_handoff): Likewise. + +2015-05-02 Samuel Thibault + + Fix semaphore failure path special calling convention + * linux/src/include/asm-i386/semaphore.h (down): Pass semaphore address to + down_failed through ecx. + (down_interruptible): Likewise to down_failed_interruptible. + (up): Likewise to up_wakeup. + +2015-05-02 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix comment + * kern/rbtree.h: Fix comment. + +2015-05-02 Samuel Thibault + + Fix warning + * i386/i386at/rtc.c (rtcget, rtcput): Make functions take an rtc_st + structure which it casts to char * itself. + + Fix warnings + * device/ds_routines.c (device_open, ds_open_done, device_close, + device_write, device_write_inband, ds_write_done, device_read, + device_read_inband, ds_read_done, device_set_status, mach_device_get_status, + device_set_filter, device_map, ds_no_senders): Convert from K&R declaration, + fix type of `device' into void*. + + Fix block_io_mmap prototype + * device/blkio.c (block_io_mmap): Fix prototype of dummy function. + * device/blkio.h (block_io_mmap): Likewise. + +2015-05-01 Samuel Thibault + + Use gnu89 inline style + * Makefile.am (AM_CFLAGS): Add -fgnu89-inline option. + +2015-05-01 Samuel Thibault + + Replace clobbers with earlyclobbers + Newer gccs consider the former "impossible" + + * linux/src/include/asm-i386/bitops.h (find_first_zero_bit): Replace + clobbers with earlyclobbers. + * linux/src/include/asm-i386/semaphore.h (down, down_interruptible, up): + Likewise. + +2015-04-30 Samuel Thibault + + Fix build with gcc-5 + * linux/src/include/linux/compiler-gcc5.h: New file. + +2015-04-24 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: avoid hardcoding the lowest priority + The number of priorities has been changed from 32 to 50 in + 6a234201081156e6d5742e7eeabb68418b518fad. + + * kern/syscall_subr.c (thread_depress_priority): Avoid hardcoding the + lowest priority. + +2015-04-23 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: disable stack allocation counters by default + Disable the stack allocation counters by default. Casual checking + revealed that the hits-to-miss ratio is excellent. + + * kern/thread.c (stack_alloc_{hits,misses,max}): Move variables... + * kern/counters.c: ... here, and add the usual counter prefix. + * kern/counters.h: New declarations. + +2015-04-23 Samuel Thibault + + Avoid accessing ip_protected_payload without the lock. + * ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): Avoid accessing + dest->ip_protected_payload without the lock. + * ipc/mach_msg.c (ipc/mach_msg.c): Avoid accessing + dest_port->ip_protected_payload without the lock. + + Prepend 0x to hexadecimal offset + * i386/i386/db_trace.c (db_i386_stack_trace): Prepend 0x to hexadecimal offset. + +2015-04-10 Thomas Schwinge + + GNU Mach 1.5. + * version.m4 (AC_PACKAGE_VERSION): Set to 1.5. + * NEWS: Finalize for 1.5. + +2015-03-19 Samuel Thibault + + Give the Debian package name for the non-multilib libc.a + * Makefile.am (clib-routines.o): Mention the Debian libc6-dev:i386 package. + +2015-03-08 Samuel Thibault + + Remove spl debugging in Xen case + xen cli/sti doesn't use IF + + * i386/i386/spl.S [MACH_XEN]: Disable IF check. + +2015-03-05 Samuel Thibault + + Show odd number of ports + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Show odd number of ports. + +2015-02-26 Samuel Thibault + + Use printf_once instead of recoding it + * i386/i386at/kd_event.c: Call printf_once instead of recoding it. + * i386/i386at/kd_mouse.c: Likewise. + + Limit printing "queue full" messages + * i386/i386at/kd_event.c (kbd_enqueue): Print "queue full" warning only + once. + * i386/i386at/kd_mouse.c (mouse_enqueue): Likewise. + +2015-02-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: inherit the name of the parent task + * kern/task.c (task_create): Inherit the name of the parent task. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: specialize `copyinmsg' and `copyoutmsg' + Previously, `copyinmsg' was the same function as `copyin'. The former + is for messages, and the size of messages is a multiple of four. + Likewise for `copyoutmsg'. + + Provide a specialized version of both functions. This shaves off a + couple of instructions and improves our IPC performance. + + * i386/i386/locore.S (copyinmsg): New function. + (copyoutmsg): New function. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: drop needless instruction from `copyout' + * i386/i386/locore.S (copyout): Do not needlessly copy length to %eax + first. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: improve assert + Use the ternary operator to implement `assert' like it is done in the + glibc. The glibcs changelog does not mention the rationale behind + this change, but doing the same seems to improve our IPC performance. + + * kern/assert.h (assert): Define macro using the ternary operator. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix compiler warning + If the loop above completes at least one iteration, `i' will be larger + than zero. + + * linux/dev/glue/block.c (rdwr_full): Add assertion to appease the + compiler. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: reduce the size of `struct thread' + Reduce the size of `struct thread' by twelve bytes making it fit into + exactly five cache lines (on 32-bit platforms). + + * kern/thread.h (struct thread): Group the state and all flags in a + bitfield. + (TH_EV_WAKE_ACTIVE, TH_EV_STATE): Provide macros that generate keys + for synchronization primitives like `thread_wakeup'. + * kern/thread.c (thread_halt, thread_dowait, thread_suspend): Use the + new keys instead of addresses of fields for the synchronisation. + * kern/ipc_sched.c (thread_handoff): Likewise. + * kern/sched_prim.c (thread_invoke, thread_dispatch): Likewise. + +2015-02-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: avoid #if 0ing out thread_collect_scan + Currently, `thread_collect_scan' does nothing because `pcb_collect' is + a nop. Its body is exempt from compilation by means of the + preprocessor. + + This is unfortunate as it increases the risk of bitrot, and we still + need to pay the price of rate-limiting thread_collect_scan. + + * kern/thread.c (thread_collect_scan): Drop #if 0 around the body. + * vm/vm_pageout.c (vm_pageout_scan): Do not call + `consider_thread_collect' and document why. + +2015-02-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: fix typo + * vm/vm_resident.c: Fix typo. + +2015-01-22 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: warn about more port management bugs + * ipc/mach_port.c (mach_port_destroy): Simplify expression. Reword warning. + (mach_port_deallocate): Likewise. + (mach_port_mod_refs): Also warn about errors when using this function. + +2015-01-02 Stefan Weil + + vm: Fix typo in comment (found by codespell) + + kern: Fix typos in comments (found by codespell) + + ipc: Fix typo in comment (found by codespell) + + include: Fix typos in comments (found by codespell) + + i386: Fix typos in comments (found by codespell) + + device: Fix typos in comments (found by codespell) + + Makefile.am: Fix typos and grammar in comment + + ddb: Fix typos in comments (found by codespell) + +2015-01-02 Samuel Thibault + + Handle kernel traps happening before starting userland + * i386/i386/trap.c (kernel_trap): When current_thread is null, assume that + we are in kernel land. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: gracefully handle bogus sample pc sequence number + If a sequence number larger than the sample control sequence number is + supplied, `nsamples' becomes negative. Handle this gracefully. + + * kern/pc_sample.c (get_sampled_pcs): Handle bogus sequence number. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: guard test code with `MACH_IPC_TEST' + * ipc/ipc_kmsg.h (ikm_mark_bogus): New macro. + (ipc_kmsg_rmqueue_first_macro): Use `ikm_mark_bogus'. + * ipc/ipc_kmsg.c (ipc_kmsg_rmqueue): Likewise. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: tune size of cached kernel message buffers + The previous limit was 256 bytes. That seems a little crummy by + todays standards, and we are frequently sending bigger packets + (e.g. every RPC containing a string_t on Hurd). + + Use the page size for IKM_SAVED_KMSG_SIZE to make sure the page is + pinned to a single processor. + + * ipc/ipc_kmsg.h (IKM_SAVED_KMSG_SIZE): Define to `PAGE_SIZE'. + +2014-12-15 Samuel Thibault + + Make spl7 just clear IF instead of setting the PIC mask + * i386/i386/spl.S (spl7): Just set curr_ipl and cli. + (splx) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is cleared. + (splx): When staying at ipl7, do not enable interrupts. + (spl) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is cleared. + (spl): When new ipl is 7, branch to spl7. + * i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY): Save flags, and + restore them instead of blindly using sti. + +2014-12-11 Samuel Thibault + + Ship missing file + * Makefrag.am (EXTRA_DIST): Add kern/task_notify.cli. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add X_IMPORTS to ipc definitions + This makes it possible to inject imports. + + * include/mach/gnumach.defs: Make it possible to inject imports. + * include/mach/mach.defs: Likewise. + * include/mach/mach_host.defs: Likewise. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: provide notifications about new tasks + These notifications are sent to the port registered via + `register_new_task_notification' and provide a robust parental + relation between tasks to a userspace server. + + * Makefrag.am: Add task_notify.defs. + * include/mach/gnumach.defs: Add register_new_task_notification. + * include/mach/task_notify.defs: New file. + * kern/task.c (new_task_notification): New variable. + (task_create): Send new task notifications. + (register_new_task_notification): Add server function. + * kern/task_notify.cli: New file. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + Retire procedure `old_mach_port_get_receive_status' + Retire the compatibility RPC `old_mach_port_get_receive_status' that + works like `mach_port_get_receive_status' but returns an + `old_mach_port_status' object that lacks the `mps_seqno' field. + + Do not remove the type yet, so we do not break anyones build. The RPC + stubs currently distributed with the glibc require it. + + * include/mach/mach_port.defs (old_mach_port_get_receive_status): Drop RPC. + * include/mach/mach_types.defs (old_mach_port_status_t): Drop type. + * include/mach/port.h (old_mach_port_status_t): Add note to remove + this for the 1.6 release. + * ipc/mach_port.c (old_mach_port_get_receive_status): Drop function. + +2014-12-07 Samuel Thibault + + Fix pthread_create warning on translator termination + This was due to task_terminate not actually properly suspending threads + before disable the task port, which was thus preventing pthread_create + from being able to create a stack. Thanks Gabriele Giacone for finding + out a reproducer of this. + + * kern/task.h (task_hold_locked): New declaration. + * kern/task.c (task_hold): Move the locked part of the code into... + (task_hold_locked): ... new function. + (task_terminate): Call task_hold_locked just before deactivating the + task. Call ipc_task_disable after waiting for threads to actually + suspend with task_dowait. + +2014-12-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: disable all counters by default + Make all five non-conditional counters conditional ones. Casual + checking revealed that the hits-to-miss ratio is excellent. + + * kern/counters.c: Make all counters conditional. + * kern/counters.h: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/sched_prim.c: Likewise. + +2014-11-28 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make `mach_port_t' payload-aware + Honor a new macro `MACH_PAYLOAD_TO_PORT' to inject a translation + function mapping payloads to port names in the definition of + `mach_port_t'. + + * include/mach/std_types.defs (mach_port_t): Honor + `MACH_PAYLOAD_TO_PORT'. + * include/device/device.defs (reply_port_t): Likewise. + * include/device/device_reply.defs (reply_port_t): Likewise. + * include/device/device_request.defs (reply_port_t): Likewise. + +2014-11-23 Samuel Thibault + + Fix programming PIT counter + * linux/dev/arch/i386/kernel/irq.c (init_IRQ): Properly mask 8 bits of + PIT counter. + +2014-11-21 David Michael + + Correct GCC's -Wformat-security issues + * linux/pcmcia-cs/clients/axnet_cs.c (axdev_init): Add a format string + literal where printk only has a single variable argument. + * linux/src/drivers/net/3c507.c (el16_probe1): Likewise. + * linux/src/drivers/net/3c509.c (el3_probe): Likewise. + * linux/src/drivers/net/3c515.c (init_module): Likewise. + (tc515_probe): Likewise. + * linux/src/drivers/net/ac3200.c (ac_probe1): Likewise. + * linux/src/drivers/net/apricot.c (apricot_probe): Likewise. + * linux/src/drivers/net/at1700.c (at1700_probe1): Likewise. + * linux/src/drivers/net/de4x5.c (de4x5_hw_init): Likewise. + * linux/src/drivers/net/de600.c (de600_probe): Likewise. + * linux/src/drivers/net/de620.c (de620_probe): Likewise. + * linux/src/drivers/net/depca.c (depca_hw_init): Likewise. + * linux/src/drivers/net/e2100.c (e21_probe1): Likewise. + * linux/src/drivers/net/eepro.c (eepro_probe1): Likewise. + * linux/src/drivers/net/eepro100.c (speedo_found1): Likewise. + * linux/src/drivers/net/eexpress.c (eexp_hw_probe): Likewise. + * linux/src/drivers/net/ewrk3.c (ewrk3_hw_init): Likewise. + * linux/src/drivers/net/fmv18x.c (fmv18x_probe1): Likewise. + * linux/src/drivers/net/hp-plus.c (hpp_probe1): Likewise. + * linux/src/drivers/net/hp.c (hp_probe1): Likewise. + * linux/src/drivers/net/lance.c (lance_probe1): Likewise. + * linux/src/drivers/net/ne.c (ne_probe1): Likewise. + * linux/src/drivers/net/pcnet32.c (pcnet32_probe1): Likewise. + * linux/src/drivers/net/seeq8005.c (seeq8005_probe1): Likewise. + * linux/src/drivers/net/smc-ultra.c (ultra_probe1): Likewise. + * linux/src/drivers/net/smc-ultra32.c (ultra32_probe1): Likewise. + * linux/src/drivers/net/wd.c (wd_probe1): Likewise. + +2014-11-16 Samuel Thibault + + Only set debug registers when they are used + * i386/i386/db_interface.c (zero_dr): New variable + (db_load_context): Do not set debug registers to zero when they are already + zero. + (db_dr): When kernel debug registers get zero, record that the debug + registers have been zeroed. + +2014-11-13 Samuel Thibault + + Add nodma options + Some very slow qemu instances would eventually trigger DMA timeouts, + let's give a way to disable DMA there, it does not actually slow down + operations anyway. + + * linux/src/drivers/block/ide.h (ide_drive_s): Add nodma field. + * linux/src/drivers/block/ide.c (do_identify): Do not call + dmaproc(ide_dma_check) when nodma is 1. + (ide_setup): Add nodma option. + +2014-11-12 Samuel Thibault + + Pass ide and hd kernel options to ide driver + * linux/dev/drivers/block/genhd.c: Include and + + (device_setup): Look for ide and hd options, and call ide_setup with + them. + * linux/src/drivers/block/ide.c (ide_setup) [MACH]: Parse hd[0-7] instead + of hd[a-h]. + +2014-11-10 Samuel Thibault + + Fix documentation for vm_map + doc/mach.texi (vm_map): Document that vm_map uses the address as a + starting hint even when anywhere is TRUE. + + Revert "Make vm_map really ignore `address' when `anywhere' is true" + This reverts commit 5ae510e35c54009626999a88f0f1cb34d6dfc94f. + +2014-11-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add a payload-aware intran mutator for device_t + * include/device/device_types.defs (device_t): Add a payload-aware + intran mutator. + + include: add a payload-aware intran mutator for notify_port_t + * include/mach/notify.defs (notify_port_t): Add a payload-aware intran + mutator. + + include: add a payload-aware intran mutator for memory_object_t + * include/mach/mach_types.defs (memory_object_t): Add a payload-aware + intran mutator. + * include/mach/memory_object.defs: Likewise in the inlined type + declarations. + +2014-11-03 Samuel Thibault + + Fix link refusal + * Makefile.am (clib-routines.o): Refuse to link only when multiarch is + detected. + +2014-11-03 Samuel Thibault + + Refuse to link against a libc with multiarch support + We don't have support for this yet. + + * Makefile.am (clib-routines.o): Check for the presence of + __init_cpu_features, and in such case refuse to continue. + +2014-11-02 Samuel Thibault + + Fix build when gcc avoids inlining + * ipc/ipc_port.h (ipc_port_flag_protected_payload, + ipc_port_flag_protected_payload_set, + ipc_port_flag_protected_payload_clear): Use static inline qualifier instead + of extern inline. + +2014-10-22 Samuel Thibault + + Revert "Make sure mig is available" + This reverts commit b28e05e203e0739fa5db59c5af378b29eea7a232. + +2014-10-10 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: restore section `Inherited Ports' + Previously, the section `Inherited Ports' was commented out. This was + done, as the functionality was unused by the Hurd. The functions + `mach_ports_register' and `mach_ports_lookup' were never removed, and + are exposed to user space. + + This patch brings the documentation back and adds a remark at the top, + that the section documents the original intentions for this interface. + + I chose bringing back the documentation over removing the + functionality because I like to make use of it as a method for service + discovery that is deliberately orthogonal to the way the service + lookup is usually done in the Hurd. This can be used to implement + robust low-level debugging facilities. + + * doc/mach.texi: Restore section `Inherited Ports'. + +2014-10-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + Add protected payloads to NEWS + + ipc: provide the protected payload in ipc_kmsg_copyout_header + * ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): If a protected payload is + set for the destination port, provide it in msgh_protected_payload. + * ipc/mach_msg.c (mach_msg_trap): Likewise in the fast paths. + * doc/mach.texi (Message Receive): Document message semantics with + protected payloads. + + include: define MACH_MSG_TYPE_PROTECTED_PAYLOAD + * include/mach/message.h: Define MACH_MSG_TYPE_PROTECTED_PAYLOAD. + (MACH_MSG_TYPE_LAST): Adjust accordingly. + * doc/mach.texi (Message Format): Document + MACH_MSG_TYPE_PROTECTED_PAYLOAD. + + include: add msgh_protected_payload to mach_msg_header_t + * include/mach/message.h (mach_msg_header_t): Add + msgh_protected_payload as a union with msgh_local_port. + * doc/mach.texi (Message Format): Document msgh_protected_payload. + + ipc: implement mach_port_{set,clear}_protected_payload + * include/mach/mach_port.defs: Add mach_port_{set,clear}_protected_payload. + * ipc/mach_port.c: Implement mach_port_{set,clear}_protected_payload. + * doc/mach.texi (Receive Rights): Document + mach_port_{set,clear}_protected_payload. + +2014-10-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: add protected payload + Add a field ip_protected_payload and a flag ip_has_protected_payload + to struct ipc_port. + + Clear the protected payload when a receive port is moved from one ipc + space to another. This is done to retain the old behavior of + mach_msg, so that a port name is sent in the msgh_local_port field. + If the new owner of that receive right wishes to use the protected + payload mechanism, it has to be explicitly set again. + + * ipc/ipc_port.h (struct ipc_port): Add field ip_protected_payload. + (ipc_port_set_protected_payload): Add function declaration. + (ipc_port_clear_protected_payload): Likewise. + (ipc_port_flag_protected_payload): Add accessor for the protected + payload flag. + (ipc_port_flag_protected_payload_set): Likewise. + (ipc_port_flag_protected_payload_clear): Likewise. + * ipc/ipc_port.c (ipc_port_init): Initialize protected payload. + (ipc_port_print): Print protected_payload. + (ipc_port_set_protected_payload): New function. + (ipc_port_clear_protected_payload): Likewise. + (ipc_port_destroy): Clear the payload when moving a receive port. + * ipc/ipc_right.c (ipc_right_copyin): Likewise. + (ipc_right_copyout): Likewise. + * ipc/ipc_object.c (ipc_object_copyin_from_kernel): Likewise. + * ipc/ipc_object.h (IO_BITS_PROTECTED_PAYLOAD): New bitmask. + (IO_BITS_OTYPE): Adjust accordingly. + +2014-09-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: use fast modulo operation in local hash table + * ipc/ipc_table.h: Document that table sizes must be powers of two. + * ipc/ipc_hash.c (IH_LOCAL_HASH): Use fast modulo operation. + + kern: silence compiler warning about uninitialized variable + * kern/slab.c (kmem_cache_compute_sizes): Initialize optimal_size and + assert that a size is selected. + + kern: fix type of recompute_priorities + * kern/sched_prim.c (recompute_priorities): Fix type. + * kern/sched_prim.h (recompute_priorities): Likewise. + +2014-09-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: create send rights as they are inserted at bootstrap time + Previously, it was impossible to hand e.g. the master device port to + more than one bootstrap task. Fix this by creating the send right as + it is inserted into the target task. + + * kern/bootstrap.c (bootstrap_create): Do not create the send rights + here... + (boot_script_insert_right): ... but here. + +2014-09-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + Update NEWS file + +2014-09-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: add support for ELF symbol tables + * ddb/db_elf.c: New file. + * ddb/db_elf.h: Likewise. + * Makefrag.am (libkernel_a_SOURCES): Add db_elf.{c,h}. + * ddb/db_sym.c (dummy_db_sym_init): New stub db_sym_init function. + (db_sym_switch): Add ELF functions. + * ddb/db_sym.h (SYMTAB_ELF): New macro. + (elf_db_sym_init): New declaration. + * i386/i386at/model_dep.c (c_boot_entry): Get ELF section header + information from the multiboot structure, and call elf_db_sym_init. + + ddb: add `show all tasks' command + * ddb/db_command.c (db_show_all_cmds): Add `tasks'. + * ddb/db_print.c (db_show_all_tasks): New function. + * ddb/db_print.h (db_show_all_tasks): New prototype. + +2014-09-17 Samuel Thibault + + Report DR6 to userland + * i386/i386/trap.c (user_trap): On T_DEBUG, record the content of dr6 in + PCB, and clear it. + +2014-09-06 Samuel Thibault + + Make vm_map really ignore `address' when `anywhere' is true + As vm_allocate does. + + * vm/vm_user.c (vm_map): When `anywhere' is true, set `address' to the + minimum address of the `target_map'. + +2014-09-01 Pietro Braione + + Fix printf warning + linux/src/drivers/net/sundance.c (start_tx): Fix format string according + to parameter. + +2014-08-30 Samuel Thibault + + Tune pageout parameters + This targets having always at least 8% free memory instead of just 1%. + This has shown improving buildd stability a lot. Also increase the + reserved amount to nowadays standards. + + * vm/vm_pageout.c (VM_PAGE_FREE_TARGET): Increase to 10%. + (VM_PAGE_FREE_MIN): Increase to 8%. + (VM_PAGE_FREE_RESERVED): Increase to 500 pages. + (VM_PAGEOUT_RESERVED_INTERNAL): Increase to 150 pages. + (VM_PAGEOUT_RESERVED_REALLY): Increase to 100 pages. + +2014-08-30 Samuel Thibault + + Increate the pageout thread priority + * vm/vm_pageout.c (vm_pageout): Set the priority to 0. + +2014-08-30 Samuel Thibault + + Bump NR_GRANT_PAGES + This has shown needed on buildds with several disks and network + interfaces. + + * xen/grant.c (NR_GRANT_PAGES): Increase from 4 to 8. + +2014-08-22 Samuel Thibault + + Fix computation + * i386/i386at/com.c (comintr): Fix computation of '@'. + +2014-08-22 Neal H. Walfield + + Even less magic-looking control value + * i386/i386at/com.c (comintr): Use 'A'-1 instead of '@'. + +2014-08-22 Justus Winter <4winter@informatik.uni-hamburg.de> + + Support invoking the debugger over the serial console + * i386/i386at/com.c (comintr): Invoke the debugger if ctrl-alt-d is + pressed. + * i386/i386at/com.h (kdb_kintr): Add declaration. + +2014-07-25 Samuel Thibault + + Drop debugging prints + * i386/i386at/acpi.c (grub_machine_acpi_get_rsdpv2): Drop debugging + prints. + +2014-07-06 Samuel Thibault + + Do not unmap page 0 when not needed + Since we need it to access some BIOS information, e.g. at ACPI shutdown. When + the kernel VM is not starting at 0, there is already nothing mapped there in + user tasks, anyway. + + * i386/i386at/model_dep.c (machine_init) [VM_MIN_KERNEL_ADDRESS != 0]: + Do not call pmap_unmap_page_zero. + * i386/intel/pmap.c (pmap_unmap_page_zero): Warn that unmapping page + zero may break some BIOS functions. + +2014-07-06 Samuel Thibault + + Document that io_map_cached leaks memory + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-07-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: use ACPI to power off the machine + This is a mostly verbatim copy of acpihalt.c from GRUB2 with a little + bit of glue code. + + * i386/Makefrag.am (libkernel_a_SOURCES): Add the new files. + * i386/grub/acpi.h: Verbatim copy from GRUB2. + * i386/grub/compiler.h: Likewise. + * i386/grub/cpu/io.h: Likewise. + * i386/grub/cpu/time.h: Likewise. + * i386/grub/cpu/types.h: Likewise. + * i386/grub/err.h: Likewise. + * i386/grub/misc.h: Likewise. + * i386/grub/mm.h: Likewise. + * i386/grub/symbol.h: Likewise. + * i386/grub/time.h: Likewise. + * i386/grub/types.h: Likewise. + * i386/i386at/acpi.c: Likewise. + * i386/i386at/acpihalt.c: Likewise. + (grub_acpi_halt): Map physical addresses. + * i386/i386at/acpihalt.h: New file. + * i386/grub/glue.h: Some glue macros. + * i386/grub/i18n.h: Stub out i18n. + * i386/i386at/grub_glue.c: Some glue code. + * i386/i386at/model_dep.c (halt_all_cpus): Use grub_acpi_halt. + +2014-07-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: add io_map_cached + io_map_cached is like io_map, but reuses the old mapping if it is + applicable. + + * i386/i386/io_map.c: Add io_map_cached. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: explain the floating point flag in kdb output + * doc/mach.texi (Kernel Debugger Commands): Explain the floating point + flag. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: remap some keys + As a convenience for the nice people using our debugger, remap some + keys to the readline-like shortcuts supported by dde. + + * i386/i386at/kd.c (kdcnmaygetc): Remap some keys. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: reformat the key map + * i386/i386at/kd.c (key_map): Remove superfluous newlines so that + every entry fits into one line. This way line numbers can be used as + an index into the map. + + ddb: use db_thread_stat to format the flags + * ddb/db_print.c (db_print_thread): Use db_thread_stat to format the + flags. + + ddb: print task names if available + * ddb/db_print.c (db_print_task): Print task name if available. + * i386/i386/db_interface.c (db_task_name): Likewise. + * i386/i386/db_machdep.h (DB_GNUMACH_TASK_NAME): Remove unused definition. + + kern: set the name of the kernel task to 'gnumach' + * kern/taks.c (task_init): Set the name of the kernel task to 'gnumach'. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + device: fix net_rcv_msg-messages + Previously, all net_rcv_msg-messages sent by net_deliver were + malformed. It never was a problem in practice, since the messages are + not complex and thus the kernel does not try to parse the message. + + struct net_rcv_msg contains an additional field of type boolean_t. + This field has no associated type descriptor, so it must not be + included in the message. + + * device/net_io.c (net_deliver): Account for the extra field in the + msgh_size calculation. + +2014-05-27 Samuel Thibault + + Add missing memory clobber + * i386/i386/xen.h (mb, rmb, wmb): Add memory clobber. + +2014-05-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + Rewrite old-style #endif FOO directives + * i386/include/mach/i386/cthreads.h: Rewrite old-style #endif FOO + directives. + * include/device/tape_status.h: Likewise. + * include/mach/alert.h: Likewise. + * include/mach/boot.h: Likewise. + * include/mach/default_pager_types.defs: Likewise. + * include/mach/default_pager_types.h: Likewise. + * include/mach/multiboot.h: Likewise. + * include/mach/notify.defs: Likewise. + * include/mach_debug/pc_info.h: Likewise. + * kern/act.h: Likewise. + * kern/refcount.h: Likewise. + * kern/shuttle.h: Likewise. + +2014-05-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: fix the embedded type definitions in memory_object.defs + In order to use MIG translation functions to lookup memory objects, + preprocessor macros have been introduced into the definition of + memory_object_t in 50cc5152. + + The procedure definitions contain inlined type definitions in order to + change the type of the argument in question (i.e. to make it + polymorphic). The inline definitions however lack the destructor + function, leading to reference leaks when a reference is acquired in + the intran function. + + * include/mach/memory_object.defs: Add the destructor functions to the + inlined type definitions. + +2014-05-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: add "halt" command + * ddb/db_command.c (db_command_table): Add "halt" command. + * i386/i386/db_interface.h (db_halt_cpu): New declaration. + * i386/i386at/model_dep.c (db_halt_cpu): New function. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: make struct vm_map fit into a cache line + Currently, the size of struct vm_map is 68 bytes. By using a bit + field for the boolean flags, it can be made fit into a cache line. + + * vm/vm_map.h (struct vm_map): Use a bit field for the boolean flags + wait_for_space and wiring_required. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: fix MACHINE_SERVER_HEADER + Commit b6dab094 introduced a way to include the MIG-generated server + files for the machine specific interface in ipc_kobject.c. + + This broke out-of-tree builds. Here, 'machine' is a symlink to + '../i386/i386', it points into the source tree. The MIG-generated + files however are put in the build tree in i386/i386. + + * i386/i386/machine_routines.h (MACHINE_SERVER_HEADER): Fix path. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: include the MIG-generated server headers for MACHINE_SERVER + GNU MIG recently gained support for emitting x_server_routine + declarations in the generated server header file. Using this + declaration, the x_server_routine functions can be inlined into the + ipc_kobject_server function. + + * kern/ipc_kobject.c: Include the MIG-generated server headers for the + machine-dependent interfaces. + (ipc_kobject_server): Drop the simple declaration of + MACHINE_SERVER_ROUTINE. + * i386/i386/machine_routines.h (MACHINE_SERVER_HEADER): New + definition. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: do not guard the host_slab_info RPC with MACH_VM_DEBUG + Previously, the definition of the host_slab_info RPC was guarded with + MACH_VM_DEBUG, even though it is not at all concerned with the VM + subsystem. Furthermore, there was no "skip" directive for + host_slab_info. + + The function host_slab_info is guarded with MACH_DEBUG. The server + for the RPCs in mach_debug.defs is only used if MACH_DEBUG is + defined. There is no need to guard host_slab_info. + + * include/mach_debug/mach_debug.defs (host_slab_info): Unconditionally + include the RPC. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + Install the mach_debug header files + The task_set_name RPC introduced in 877a319c changed + include/mach/gnumach.defs to include mach_debug/mach_debug_types.defs. + Previously though, the debug headers were not installed. + + * Makefrag.am: Install the mach_debug header files. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: fix the number of priorities + The number of priorities has been changed from 32 to 50 in + 6a234201081156e6d5742e7eeabb68418b518fad. + + * doc/mach.texi: Update accordingly. + +2014-04-25 Samuel Thibault + + Make sure mig is available + * configure.ac (MIG): Error out if MiG was not found. + +2014-04-13 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: set the name of tasks created during the bootstrap + * kern/bootstrap.c (boot_script_task_create): Set the name of newly + created tasks. + +2014-04-10 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: fix the definition of device_open + Previously, every userspace server implementing the device protocol + filtered the device definitions to replace the device_t type with + mach_port_send_t to make the device argument of device_open + polymorphic. Rather than doing that, which makes it impossible to use + translation functions, fix the definition of device_open. + + * include/device/device.defs (device_open): Redefine the device + argument to make it polymorphic unless a outran function is specified. + +2014-04-08 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the device_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + DEVICE_IMPORTS macro. This way, userspace servers can provide their + own translation functions. + + * include/device/device_types.defs: Honor DEVICE_IMPORTS. + (device_t): Make the translation mutable using preprocessor macros. + +2014-04-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the notify_port_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + NOTIFY_IMPORTS macro. This way, userspace servers can provide their + own translation functions. + + * include/mach/notify.defs: Honor NOTIFY_IMPORTS. + (notify_port_t): Make the translation mutable using preprocessor macros. + +2014-04-04 Marin Ramesa + + Convert from K&R to ANSI + Convert from K&R style function definitions to ANSI style + function definitions. + + * ddb/db_access.c: Convert function prototypes from K&R to ANSI. + * ddb/db_aout.c: Likewise. + * ddb/db_break.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_examine.c: Likewise. + * ddb/db_expr.c: Likewise. + * ddb/db_ext_symtab.c: Likewise. + * ddb/db_input.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_mp.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_run.c: Likewise. + * ddb/db_sym.c: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_trap.c: Likewise. + * ddb/db_variables.c: Likewise. + * ddb/db_watch.c: Likewise. + * device/blkio.c: Likewise. + * device/chario.c: Likewise. + * device/dev_lookup.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/loose_ends.c: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/phys.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386/user_ldt.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/kd_queue.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/rtc.c: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/read_fault.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/mach_debug.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/act.c: Likewise. + * kern/exception.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/lock_mon.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/machine.c: Likewise. + * kern/printf.c: Likewise. + * kern/priority.c: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_emulation.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread_swap.c: Likewise. + * kern/time_stamp.c: Likewise. + * kern/timer.c: Likewise. + * kern/xpr.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_debug.c: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_user.c: Likewise. + +2014-04-04 Samuel Thibault + + Fix prototype + * linux/dev/glue/block.c (device_set_status): Fix prototype. + +2014-04-04 Marin Ramesa + + Use explicit prototypes for struct dev_ops fields + * device/conf.h: Include , , . + Predefine struct io_req, io_req_t and io_return_t. + (dev_ops): Add explicit prototypes for d_open, d_close, d_read, d_write, + d_getstat, d_setstat, d_mmap, d_port_death. + (nulldev_open, nulldev_close, nulldev_read, nulldev_write, + nulldev_getstat, nulldev_setstat, nulldev_portdeath): Add prototypes. + (nomap): Fix prototype. + * device/dev_name.c (nulldev_open, nulldev_close, nulldev_read, + nulldev_write, nulldev_getstat, nulldev_setstat, nulldev_portdeath): New + functions. + (nomap): Fix prototype. + * device/ds_routines.c (dev_close): Pass 0 as flag parameter. + * device/kmsg.c (kmsgclose): Drop return value. + * device/kmsg.h (kmsgclose): Fix prototype. + * i386/i386at/com.c (comopen): Fix prototype. + (comclose): Fix prototype, drop return value. + (comread, comwrite): Fix prototype. + * i386/i386at/com.h (comopen, comclose, comread, comwrite): Fix + prototype. + * i386/i386at/conf.c (dev_ops): Use nulldev_open, nulldev_close, + nulldev_read, nulldev_write, nulldev_getstat, nulldev_setstat, + nulldev_portdeath where appropriate. + * i386/i386at/kd.c (kdclose, kdread, kdwrite, kdmmap): Fix prototype. + * i386/i386at/kd.h (kdclose, kdread, kdwrite, kdmmap): Likewise. + * i386/i386at/kd_event.c (kbdopen): Likewise. + * i386/i386at/kd_event.h (kbdopen): Likewise. + * i386/i386at/kd_mouse.c (mouseopen): Likewise. + * i386/i386at/kd_mouse.h (mouseopen): Likewise. + * i386/i386at/lpr.c (lpropen, lprclose, lprread, lprwrite): Likewise. + * i386/i386at/lpr.h (lpropen, lprclose, lprread, lprwrite): Likewise. + * i386/i386at/mem.c (memmmap): Likewise. + * i386/i386at/mem.h (memmmap): Likewise. + * i386/i386at/model_dep.c (timemmap): Likewise. + * i386/i386at/model_dep.h (timemmap): Likewise. + * kern/mach_clock.c (timeopen, timeclose): Likewise. + * kern/mach_clock.h: Include , predefine struct io_req and + io_req_t. + (timeopen, timeclose): Fix prototype. + +2014-03-28 Samuel Thibault + + Assume EGA/VGA card + CGA and MONO cards are more than hard to find nowadays, and some buggy BIOSes + claim running them nowadays... + + * i386/i386at/kd.c (kd_xga_init): Do not handle CGA and MONO cases any + more, which thus default to EGA/VGA. + +2014-03-28 Samuel Thibault + + Really default to EGA/VGA on unknown CMOS values + * i386/i386at/kd.c (kd_xga_init): Use CM_EGA_VGA behavior as default + case for unknown values of CMOS data. + +2014-03-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix formatting of multiboot modules + Previously, bootstrap_create would print the multiboot modules with + padding applied to the end of the line. As multiboot modules as used + by the Hurd span more than one line. This makes the list of modules + hard to read and it looks unclean, more like an accident. + Furthermore, it is not clear what the intend of this was, as the + padding is applied at the end of the line, with no further information + printed thereafter. + + * kern/bootstrap.c (bootstrap_create): Remove variable maxlen and len, + update printfs. + +2014-03-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the memory_object_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + MEMORY_OBJECT_IMPORTS macro. This way, userspace servers can provide + their own translation functions. + + * include/mach/mach_types.defs (memory_object_t): Make the translation + mutable using preprocessor macros. + * include/mach/memory_object.defs: Likewise for the inlined type declarations. + Honor MEMORY_OBJECT_IMPORTS. + * include/mach/memory_object_default.defs: Likewise. + +2014-03-22 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-03-22 Samuel Thibault + + Fix overflow + We were filling much more than the mapwindows array, thus overwriting in + at least debugger variables. + + * i386/intel/pmap.c (pmap_bootstrap): Make sure to limit mapwindows + initialization within PMAP_NMAPWINDOWS. + +2014-03-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: fix error handling + Previously, the error KERN_RESOURCE_SHORTAGE was not properly + propagated. + + Found using the Clang Static Analyzer. + + * xen/block.c (device_open): Fix error handling, remove unused label. + * xen/net.c (device_open): Likewise. + +2014-03-20 Samuel Thibault + + Only complain once per boot about Xen console smash + * xen/console.c (hypputc): Make `complain' variable static. + +2014-03-17 Samuel Thibault + + Increase possible number of AHCI devices to 8 + by reducing possible number of partitions to 32. + + * linux/dev/drivers/block/ahci.c (MAX_PORTS): Set to 8. + (PARTN_BITS): Set to 5. + +2014-03-03 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-03-03 Samuel Thibault + + Keep two virtual pages as mapping windows to access physical memory + PCI devices expose their memory etc. way beyond last_phys_addr. Userland + drivers opening /dev/mem need to open those too, even if phystokv() will + not work for them. + + * i386/intel/pmap.h (pmap_mapwindow_t): New type. + (pmap_get_mapwindow, pmap_put_mapwindow): New prototypes. + (PMAP_NMAPWINDOWS): New macro. + * i386/intel/pmap.c (mapwindows): New array. + (pmap_get_mapwindow, pmap_put_mapwindow): New functions. + (pmap_bootstrap, pmap_virtual_space): Reserve virtual pages for the mapping + windows. + * i386/i386/phys.c: Include + (INTEL_PTE_W, INTEL_PTE_R): New macros + (pmap_zero_page, pmap_copy_page, copy_to_phys, copy_from_phys): Use + `pmap_get_mapwindow' to temporarily map physical pages beyond last_phys_addr. + +2014-02-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix mig_strncpy + Previously, the function mig_strncpy would always zero-terminate the + destination string. Make mig_strncpy behave like mig_strncpy and + strncpy in the glibc. Also fix the implementation of mig_strncpy to + return the length of the written string to align the implementation + with the declaration in include/mach/mig_support.h. + + * kern/ipc_mig.c (mig_strncpy): Do not zero-terminate the destination + string. Return length of destination string. + +2014-02-23 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + AHCI driver cleanups + * linux/dev/drivers/block/ahci.c (struct port): Add id and is_cd fields. + (ahci_end_request): Only print error if quiet flag of the request is not + set. + (ahci_do_port_request): Upgrade sector parameter to 64 bit. Include + those bits in the LBA48 request. + (ahci_do_request): Upgrade sector count to 64bit. Only print errors if + quiet flag of the request is not set. + (ahci_probe_port): Move identify code... + (ahci_identify): ... to new function. Handle WIN_PIDENTIFY case to + recognize ATAPI devices. + (ahci_probe_port): Also try WIN_PIDENTIFY command. + (ahci_geninit): Avoid checking partition table on empty devices. + +2014-02-19 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: skip routines related to migrating threads + * include/mach/mach_port.defs: Skip the routines mach_port_set_rpcinfo + and mach_port_create_act if MIGRATING_THREADS is not defined. + +2014-02-12 Samuel Thibault + + Reduce kmem_map to make room for kentry_data_size + * kern/slab.c (KMEM_MAP_SIZE): Decrease from 128MiB to 96MiB. + +2014-02-10 Samuel Thibault + + Make open return ENXIO on missing CD-ROM + * linux/src/drivers/block/ide-cd.c (ide_cdrom_open): Return -ENXIO when + CD sense failed. + + Add quiet flag to CD I/O + * linux/src/drivers/block/ide-cd.c (cdrom_queue_packet_command): Add `quiet' + parameter, copied into the request. + (cdrom_decode_status): Do not print I/O error when `quiet' field of + request is non-zero. + (cdrom_end_request): Do not print sense results when `quiet' field of + request is non-zero. + (cdrom_check_status, cdrom_read_capacity, cdrom_read_tocentry): Pass 1 to + `cdrom_queue_packet_command''s `quiet' parameter. + (cdrom_lockdoor, cdrom_eject, cdrom_pause, cdrom_startstop, + cdrom_read_subchannel, cdrom_mode_sense, cdrom_mode_select, + cdrom_play_lba_range_1, cdrom_read_block, cdrom_load_unload, + ide_cdrom_ioctl): Pass 0 to `cdrom_queue_packet_command''s `quiet' parameter. + + Add missing initialization + * linux/src/drivers/block/ide.c (ide_init_drive_cmd): Initialize `quiet' + field of request to 0; + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-02-10 Samuel Thibault + + Add quiet flag to block I/O + This avoids grub & such making Mach print flurries of floppy errors. + + * linux/dev/include/linux/blkdev.h (request): Add `quiet' field. + * linux/dev/include/linux/blk.h (end_request): Print I/O error only if + the `quiet' field of the request is 0. + * linux/dev/include/linux/fs.h (ll_rw_block): Add `quiet' parameter. + * linux/dev/glue/block.c (ll_rw_block): Add `quiet' parameter, copied into + the request. + (bread, rdwr_partial, rdwr_full): Pass 0 to `ll_rw_block''s `quiet' parameter. + * linux/dev/drivers/block/floppy.c (floppy_revalidate): Pass 1 to + `ll_rw_block''s `quiet' parameter. + +2014-02-06 Richard Braun + + vm: trigger garbage collection on kernel memory pressure + In addition to physical pages, the slab allocator also consumes kernel + virtual memory, so reclaim pages on failure to allocate from a kernel map. + This method isn't foolproof but helps alleviate fragmentation. + + * vm/vm_kern.c (kmem_alloc): Call slab_collect and retry allocation + once on failure. + (kmem_realloc): Likewise. + (kmem_alloc_wired): Likewise. + (kmem_alloc_wired): Likewise. + (kmem_alloc_aligned): Likewise. + +2014-02-05 Samuel Thibault + + Remove duplicate typedef + * device/net_io.c (net_rcv_port_t, net_hash_entry_t, net_hash_header_t): + Remove duplicate typedefs. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: document task_set_name + * doc/mach.texi (Task Information): Document the new task_set_name + procedure. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add task_set_name + task_set_name sets the name of a task. This is a debugging aid. The + name will be used in error messages printed by the kernel. + + * include/mach/gnumach.defs (task_set_name): New procedure. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: implement task_set_name + task_set_name sets the name of a task. This is a debugging aid. The + name will be used in error messages printed by the kernel. + + * kern/task.c (task_set_name): New function. + * kern/task.h (task_set_name): New declaration. + +2014-02-04 Samuel Thibault + + Fix comstart when the queue is empty + Found by Coverity + + * i386/i386at/com.c (comstart): Make `nch' an int. When `getc' returns + -1, just return. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity + + * i386/i386/user_ldt.c (i386_get_ldt): Fetch `pcb' field of `thread' + only after looking for `thread' being NULL. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + * vm/vm_kern.c (projected_buffer_deallocate): Look for `map' being NULL + or kernel_map before locking it. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity + + * i386/i386/db_trace.c (db_find_kthread): Handle case when task is NULL. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity. + + * i386/i386at/com.c (comopen): On com_reprobe() returning success, check + for `isai' again. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: fix buffer size + Previously, only strlen(device_name) bytes were allocated, missing one + byte for the terminating zero. + + * xen/block.c (hyp_block_init): Fix buffer size. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: safely copy symbol names into the symtab structure + Use strncpy instead of strcpy to copy the name of a symbol into the + symtab structure. Make sure that the string is properly terminated. + + Found using Coverity. + + * ddb/db_sym.c (db_add_symbol_table): Use strncpy instead of strcpy, + ensure string termination. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: make kmem_error panic + The slab allocator relies on the fact that kmem_cache_error does not + return. Previously, kmem_error was using printf. Use panic instead. + + Found using the Clang Static Analyzer. + + * kern/slab.c (kmem_error): Use panic instead of printf. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: use kmem_warn instead of kmem_error in kmem_cache_error + * kern/slab.c (kmem_cache_error): Use kmem_warn instead of kmem_error + to print the cache name and its address. + +2014-02-04 Samuel Thibault + + Fix FPU state copy size + * i386/i386/fpu.c (fpu_set_state, fpu_get_state): Fix size of + `user_fp_regs' access. + + Make empty while loops more prominent + * i386/i386at/kd.c (kdintr, kd_senddata, kd_sendcmd, kd_getgata, + kd_cmdreg_read, kd_cmdreg_write, kd_mouse_drain): Move semi colon of + empty while loops on a single line to make it more visible. + +2014-02-04 Samuel Thibault + + Fix FPU state access + Found by coverity. + + * i386/i386/fpu.c (fpu_set_state, fpu_get_state): Fix out of bound + `user_fp_regs' access. + +2014-02-04 Samuel Thibault + + Fix typo + * i386/i386at/kd_mouse.c (mouseopen): Fix typo. + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-02-04 Samuel Thibault + + Add missing break + Found by Coverity + + * i386/i386at/kd_mouse.c (mouseopen): Add missing break. + +2014-02-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add a fixed-size string type for debugging purposes + * include/mach/debug.defs: New file. + * include/mach/debug.h: Likewise. + + ipc: use the name of the task for error messages + * ipc/mach_port.c (mach_port_destroy): Use the name of the task for + error messages. + (mach_port_deallocate): Likewise. + + kern: add a name field to struct task + * kern/task.c (task_create): Initialize name with the address of the task. + * kern/task.h (TASK_NAME_SIZE): New definition. + (struct task): Add field name. + + kern: add snprintf + * kern/printf.c (snprintf): New function. + * kern/printf.h (snprintf): New declaration. + +2014-01-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: include the mig-generated server headers in ipc_kobject.c + GNU MIG recently gained support for emitting x_server_routine + declarations in the generated server header file. Using this + declaration, the x_server_routine functions can be inlined into the + ipc_kobject_server function. + + * kern/ipc_kobject.c: Include the mig-generated server headers. + +2014-01-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: remove the declaration of memory_object_create_proxy + It is not clear to me why the declaration was put there in the first + place. It is not used anywhere, and it conflicts with the declaration + generated by mig. + + * vm/memory_object_proxy.h (memory_object_create_proxy): Remove declaration. + +2014-01-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: align kmem_cache objects using __cacheline_aligned + * kern/slab.h (struct kmem_cache): Align kmem_cache objects using + __cacheline_aligned. + + include: add new file for cache-related definitions + * include/cache.h (__cacheline_aligned): This macro can be used to + align statically allocated objects so that they start at a cache line. + +2014-01-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: optimize the layout of struct kmem_cache + * kern/slab.h (struct kmem_cache): Reorder the fields so that all hot + fields are within the first cache line. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: explain the significance of the chosen length + * kern/slab.h (KMEM_CACHE_NAME_SIZE): Explain the significance of the + chosen length. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix bit tests + The pattern is !x&y. An expression of this form is almost always + meaningless, because it combines a boolean operator with a bit + operator. In particular, if the rightmost bit of y is 0, the result + will always be 0. + + Fixed using coccinelle. + + // !x&y combines boolean negation with bitwise and + // + // Confidence: High + // Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU. GPLv2. + // URL: http://www.emn.fr/x-info/coccinelle/rules/notand.html + // Options: + + @@ expression E1,E2; @@ + ( + !E1 & !E2 + | + - !E1 & E2 + + !(E1 & E2) + ) + + * linux/src/drivers/scsi/FlashPoint.c: Fix bit tests. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix bit tests + The pattern is !x&y. An expression of this form is almost always + meaningless, because it combines a boolean operator with a bit + operator. In particular, if the rightmost bit of y is 0, the result + will always be 0. + + Fixed using coccinelle. + + // !x&y combines boolean negation with bitwise and + // + // Confidence: High + // Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU. GPLv2. + // URL: http://www.emn.fr/x-info/coccinelle/rules/notand.html + // Options: + + @@ expression E; constant C; @@ + ( + !E & !C + | + - !E & C + + !(E & C) + ) + + * linux/src/drivers/net/tlan.c: Fix bit tests. + * linux/src/drivers/scsi/AM53C974.c: Likewise. + * linux/src/drivers/scsi/FlashPoint.c: Likewise. + * linux/src/drivers/scsi/NCR5380.c: Likewise. + * linux/src/drivers/scsi/t128.c: Likewise. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: make struct kmem_cache fit into two cache lines + Previously, the size of struct kmem_cache was 136 bytes, just eight + bytes larger than 128 bytes, which is typically two cache lines on + today's CPUs. + + By reducing the size of the name field which holds a human-readable + description by eight bytes to 24 bytes, the struct kmem_cache can be + made fit into two cache lines. This change should not affect the + usefulness of this field. For reference, the length of the largest + hard-coded name is 17. + + * kern/slab.h (KMEM_CACHE_NAME_SIZE): Define to 24. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: reduce the size of struct task + * kern/task.h (struct task): Reduce the size of struct task by + 2 * sizeof boolean_t by using a bit field for the boolean flags. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: reduce the size of struct vm_page + Previously, the bit field left 31 bits unused. By reducing the size + of wire_count by one bit, the size of the whole struct is reduced by + four bytes. + + * vm/vm_page.h (struct vm_page): Reduce the size of wire_count to 15 + bits. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: merge the two bit fields in struct vm_page + * vm/vm_page.h (struct vm_page): Merge the two bit fields. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: remove NS32000-specific padding from struct vm_page + Apparently, the NS32000 was a 32-bit CPU from the 1990ies. The string + "ns32000" appears nowhere else in the source. + + * vm/vm_page.h (struct vm_page): Remove NS32000-specific padding. + +2014-01-02 Samuel Thibault + + Make sure cursor is initialized + * i386/i386at/kd.c (kd_xga_init): Add start, stop variables, read them + from CRT registers, make sure the cursor is enabled and is not reduced + to 0, and write them back to CRT registers. + * i386/i386at/kd.h (C_START, C_STOP): New macros. + +2014-01-01 Marin Ramesa + + i386/include/mach/i386/mach_i386_types.h: add comments after else and endif + * i386/include/mach/i386/mach_i386_types.h (MACH_KERNEL): Add comments after else and endif. + + Add comment after endif + * i386/i386/io_perm.h (_I386_IO_PERM_H_): Add comment after endif. + +2013-12-20 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-12-20 Marin Ramesa + + Mark pure functions with attribute pure + + kern/strings.c (strlen): mark with attribute pure + * kern/strings.c (strlen): Mark with attribute pure. + + ddb/db_watch.c (db_watchpoint_cmd): remove forward declaration + * ddb/db_watch.c (db_watchpoint_cmd) (db_option): Remove forward declaration. + +2013-12-20 Marin Ramesa + + Declare void argument lists (part 2) + Declare void argument lists that were not declared in the first + part of this patch and + + * kern/sched_prim.h (recompute_priorities): Fix prototype. + * kern/startup.c (setup_main) (recompute_priorities): Fix call. + +2013-12-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: add missing includes + * i386/i386at/kd_event.h: Add missing includes. + +2013-12-17 Marin Ramesa + + kern: avoid the casts in enqueue_head() and enqueue_tail() + * kern/eventcount.c (simpler_thread_setrun) (enqueue_head) (th): Avoid the cast. + * kern/thread.c (thread_halt_self) (enqueue_tail) (thread): Likewise. + * kern/thread_swap.c (thread_swapin) (enqueue_tail) (thread): Likewise. + + Mark functions that don't return with attribute noreturn + + vm: qualify pointers whose dereferenced values are constant with const + + util: qualify pointers whose dereferenced values are constant with const + + kern: qualify pointers whose dereferenced values are constant with const + + ipc: qualify pointers whose dereferenced values are constant with const + + i386: qualify pointers whose dereferenced values are constant with const + + device: qualify pointers whose dereferenced values are constant with const + + Cleanup of the copyin() and copyout() calls + * device/ds_routines.c (device_write_trap) (copyin) (data): Cast to (void *). Argument is an address. + (device_write_trap) (copyin) (io_data): Don't cast. + (device_writev_trap) (copyin) (iovec, stack_iovec): Likewise. + (device_writev_trap) (copyin) (data, p): Cast to (void *). Arguments are addresses. + * kern/bootstrap.c (build_args_and_stack) (copyout) (arg_count, string_pos, zero): Don't cast. + * kern/ipc_mig.c (syscall_vm_map) (copyin, copyout) (addr, address): Likewise. + (syscall_vm_allocate) (copyin, copyout) (addr, address): Likewise. + (syscall_task_create) (copyout) (name, child_task): Likewise. + (syscall_mach_port_allocate) (copyout) (name, namep): Likewise. + * kern/time_stamp.c (copyout) (temp, tsp): Likewise. + +2013-12-17 Marin Ramesa + + kern/sched_prim.h: remove unnecessary __GNUC__ #ifdef + Attribute noreturn is used irrespective of __GNUC__. Remove + unnecessary #ifdef. + + * kern/sched_prim.h [__GNUC__]: Remove #ifdef. + +2013-12-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: add missing includes + * xen/console.h: Add missing includes. + +2013-12-16 Marin Ramesa + + kern: quiet GCC warnings about set but unused variables + * kern/lock.h (simple_lock_data_empty): Define. + (decl_simple_lock_data, simple_unlock): Likewise. + * kern/sched_prim.c (lock): Declare. + [MACH_SLOCKS]: Remove #ifs. + * kern/task.c (task_lock, task_unlock): Remove address operator. + + Quiet GCC warning about uninitialized variable + * ddb/db_command.h (db_error): Mark with attribute noreturn. + * i386/i386/setjmp.h (_longjmp): Likewise. + +2013-12-15 Marin Ramesa + + i386/i386/db_trace.c: use (long *) instead of an (int *) + * i386/i386/db_trace.c (db_lookup_i386_kreg) (kregp): Use (long *) instead of an (int *). + + device/dev_pager.c (device_pager_data_request_done): cast to size_t instead to unsigned + * device/dev_pager.c (device_pager_data_request_done) (memset) (io_residual): Cast to size_t instead to unsigned. + +2013-12-15 Marin Ramesa + + device/dev_pager.c: remove unnecessary casts + Variable pager is already of ipc_port_t type. + + * device/dev_pager.c: Remove unnecessary casts. + +2013-12-15 Marin Ramesa + + kern/sched_prim.c: avoid casts + Avoid the casts by passing the address of the links thread + structure member to enqueue_tail(). + + * kern/sched_prim.c: Avoid casts. + +2013-12-15 Marin Ramesa + + ddb: qualify pointers whose dereferenced values are constant with const + +2013-12-15 Samuel Thibault + + Fix gcc signedness warning + Thanks Marin Ramesa and Richard Braun for investigating. + + * i386/i386at/kd.c (kdintr): Make `char_idx' and `max' unsigned. + (kdstate2idx): Make function take and return unsigned ints for the state. + * i386/i386at/kd.h (kdstate2idx): Likewise. + +2013-12-15 Marin Ramesa + + Type definition + * i386/i386/ast_check.c (init_ast_check, cause_ast_check): Define return type. + * i386/i386/pic.c (intnull, prtnull): Define argument types. + * i386/i386at/com.c (compr_addr): Likewise. + (compr): Likewise. + (compr_addr): Fix printf format. + * i386/i386at/kd.c (kd_cmdreg_write, kd_kbd_magic): Define argument types. + * i386/i386at/kd_mouse.c (init_mouse_hw): Likewise. + * ipc/mach_port.c (sact_count): Define return type. + * ipc/mach_rpc.c (mach_port_rpc_sig): Define argument types. + * kern/act.c (dump_act): Define return type. + * kern/lock_mon.c (simple_lock, simple_lock_try, simple_unlock, lip, lock_info_sort, lock_info_clear, print_lock_info): Define return type. + (time_lock): Define return type and argument type. + * kern/timer.c (time_trap_uexit): Define argument type. + +2013-12-15 Marin Ramesa + + ddb/db_expr.c (db_mult_expr): initialize lhs + Initialize lhs to zero to avoid uninitialized usage in db_unary(). + + * ddb/db_expr.c (db_mult_expr) (lhs): Initialize to zero. + +2013-12-15 Marin Ramesa + + ddb/db_break.c (db_delete_cmd): remove unnecessary initialization + Now that we have returns there are no more warnings from GCC about + uninitialized variable. Remove unnecessary initialization of variable + bkpt. + + * ddb/db_break.c (db_delete_cmd) (bkpt): Remove unnecessary initialization. + +2013-12-15 Marin Ramesa + + ddb/db_break.c (db_find_breakpoint_here): remove unnecessary casts + Variable addr and member address are already of db_addr_t type which + is type defined as vm_offset_t. + + * ddb/db_break.c (db_find_breakpoint_here) (DB_PHYS_EQ) (addr, address): Remove unecessary casts. + +2013-12-15 Marin Ramesa + + vm/vm_resident.c (vm_page_print): remove unnecessary casts + Members offset and phys_addr are of vm_offset_t types. + + * vm/vm_resident.c (vm_page_print) (offset, phys_addr): Remove unnecessary casts. + +2013-12-15 Marin Ramesa + + vm/vm_kern.c (kmem_submap): remove unnecessary cast + The return value from vm_map_min() is already of vm_offset_t type. + + * vm/vm_kern.c (kmem_submap) (addr): Remove unnecessary cast. + +2013-12-15 Marin Ramesa + + i386/i386/ldt.c: remove forward declaration + * i386/i386/ldt.c (syscall): Remove forward declaration. + Include locore.h. + * i386/i386/locore.h (syscall): Add prototype. + +2013-12-15 Marin Ramesa + + kern/mach_clock.c: update comment + This is mach_clock.c, not clock_prim.c. + + * kern/mach_clock.c: Update comment. + +2013-12-15 Marin Ramesa + + Declare void argument lists + +2013-12-11 Marin Ramesa + + i386/i386at/kd_mouse.c (kd_mouse_open): remove forward declaration + * i386/i386at/kd_mouse.c (kd_mouse_open) (kdintr): Remove forward declaration. + + i386/i386at/kd.c (kdinit): remove forward declaration + * i386/i386at/kd.c (kdinit) (kd_xga_init): Remove forward declaration. + * i386/i386at/kd.h (kd_xga_init): Add prototype. + +2013-12-11 Marin Ramesa + + i386/i386at/kd.c (kdmmap): remove unnecessary cast + Variable off is already an unsigned int. + + * i386/i386at/kd.c (kdmmap) (off): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + i386/i386at/kd.c: remove forward declarations + * i386/i386at/kd.c (kd_getdata, state2leds, kdstart, kdstop): Remove forward declarations. + * i386/i386at/kd.h (kd_getdata, state2leds, kdstart, kdstop): Add prototypes. + Include device/tty.h. + +2013-12-11 Marin Ramesa + + i386/i386/db_trace.c (db_i386_stack_trace): remove unnecessary cast + Argument to INKERNEL() is already cast to vm_offset_t in the macro itself. + + * i386/i386/db_trace.c (db_i386_stack_trace) (INKERNEL) (callpc): Don't cast to unsigned long. + (db_i386_stack_trace) (INKERNEL) (frame): Likewise. + +2013-12-11 Marin Ramesa + + i386/i386/db_trace.c: remove forward declaration + * i386/Makefrag.am: List i386/i386/db_trace.h. + * i386/i386/db_trace.c: Include machine/db_trace.h. + (db_i386_stack_trace): Remove forward declaration. + * i386/i386/db_trace.h: New file. + Add copyright. + [_I386_DB_TRACE_H_]: Add ifndef. + (i386_frame): Declare forward. + (db_i386_stack_trace): Add prototype. + +2013-12-11 Marin Ramesa + + ipc/mach_debug.c (mach_port_kernel_object): remove unnecessary cast + Member ip_kobject is of type vm_offset_t. + + * ipc/mach_debug.c (mach_port_kernel_object) (ip_kobject): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + ipc/mach_debug.c (mach_port_kernel_object): remove unnecessary cast + Return value from ip_kotype is an unsigned int. + + * ipc/mach_debug.c (mach_port_kernel_object) (ip_kotype): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + Cleanup of the memcpy(), memmove(), memcmp() and memset() calls + Addresses were cast to (void *). Pointers uncasted. + + * device/ds_routines.c (ds_read_done) (memset) (start_sent): Cast to (void *) instead to (char *). Argument is an address. + (ds_read_done) (memset) (end_data): Likewise. + * i386/i386/pcb.c (thread_getstatus) (memcpy) (pm): Don't cast. Argument is a pointer. + (thread_getstatus) (memcpy) (iopb): Likewise. + * i386/i386at/immc.c (immc_cnputc) (memmove): Cast first argument to (void *). Argument is an address. + (immc_cnputc) (memmove): Cast second argument to (void *). Argument is an address. + (immc_cnputc) (memset): Cast first argument to (void *). Argument is an address. + * i386/i386at/model_dep.c (i386at_init) (memcpy) (phystokv): Cast to (void *) instead to (char *). Argument is an address. + * i386/intel/pmap.c (pmap_init) (memset) (addr): Likewise. + * ipc/mach_debug.c (mach_port_space_info) (memset) (table_addr + size_used): Likewise. + (mach_port_space_info) (memset) (tree_addr + size_used): Likewise. + * kern/host.c (host_processor_sets) (memcpy) (newaddr): Likewise. + (host_processor_sets) (memcpy) (addr): Likewise. + * kern/xpr.c (xprbootstrap) (memset) (addr): Likewise. + * vm/vm_debug.c (mach_vm_object_pages) (memset) (addr + size_used): Likewise. + +2013-12-10 Marin Ramesa + + device/subrs.c: use io_req_t instead of struct buf + Struct buf is not defined. Use io_req_t instead of it. + + * device/subrs.c (harderr) (bp): Change name to ior and use io_req_t as type instead of (struct buf *). + (harderr) (minor): Use io_unit instead of b_dev. + (harderr): Use io_recnum instead of b_blkno. + (gateblk): Use io_req_t as return value instead of (struct buf *). + (brelse) (bp): Change name to ior and use io_req_t as type instead of (struct buf *). + (brelse) (ior): Remove variable. + +2013-12-10 Marin Ramesa + + device/net_io.c: remove forward declarations + * device/net_io.c (bpf_hash, net_do_filter, bpf_do_filter, hash_ent_remove, net_free_dead_infp, net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info, bpf_match): Remove forward declarations. + * device/net_io.h (net_rcv_port, net_hash_entry, net_hash_header): Declare forward. + (bpf_hash, net_do_filter, bpf_do_filter, hash_ent_remove, net_free_dead_infp, net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info, bpf_match): Add prototypes. + + device/dev_pager.c: remove forward declarations + * device/dev_pager.c (device_pager_data_request_done, device_pager_data_write_done): Remove forward declarations. + * device/dev_pager.h (device_pager_data_request_done, device_pager_data_write_done): Add prototypes. + + device/dev_pager.c: remove forward declaration + * Makefrag.am: Include device/blkio.h. + * device/blkio.h: New file. + Add copyright. + [_DEVICE_BLKIO_H_]: Add ifndef. + (block_io_mmap): Add prototype. + * device/dev_pager.c: Include device/blkio.h. + (block_io_mmap): Remove forward declaration. + +2013-12-10 Marin Ramesa + + device/dev_pager.c (device_pager_data_request_done): remove unnecessary cast + The argument to trunc_page() is already cast to vm_offset_t in the + macro itself. + + * device/dev_pager.c (device_pager_data_request_done) (trunc_page) (io_data): Don't cast to vm_offset_t. + +2013-12-10 Marin Ramesa + + device/dev_pager.c (device_pager_data_request): cast to (void *) instead to (char *) + * device/dev_pager.c (device_pager_data_request) (vm_object_page_map) (ds): Cast to (void *) instead to (char *). + + device/dev_pager.c (device_pager_data_request): remove forward declaration + * Makefrag.am: Include device/dev_pager.h. + * device/dev_pager.c: Likewise. + (device_map_page): Remove forward declaration. + * device/dev_pager.h: New file. + Add copyright. + [_DEVICE_DEV_PAGER_H_]: Add ifndef. + (device_map_page): Add prototype. + + device/cons.c: fix argument list + * device/cons.c (romgetc, romputc): Fix argument list. + +2013-12-10 Marin Ramesa + + device/cirbuf.c (cb_free): use vm_size_t instead of an int + This is more in line with the call to kfree() in cb_free(). + + * device/cirbuf.c (cb_free) (size): Use vm_size_t instead of an int. + +2013-12-10 Marin Ramesa + + device/cirbuf.c (cb_alloc): use vm_size_t instead of an int + This is more in line with the call to kalloc() in cb_alloc(). + + * device/chario.c (tty_inq_size, tty_outq_size): Use unsigned int instead if an int. + * device/cirbuf.c (cb_alloc) (buf_size): Use vm_size_t instead of an int. + * device/cirbuf.h (cb_alloc) (buf_size): Likewise. + +2013-12-10 Marin Ramesa + + device/chario.c: trivial stylistic fix for consistency + * device/chario.c: Trivial stylistic fix for consistency. + +2013-12-10 Marin Ramesa + + i386/i386/db_interface.c: use vm_offset_t instead of an unsigned int + This is more in line with how the function db_user_to_kernel_address() is + called. In this way there is one cast less and several GCC warnings are + silenced. + + * i386/i386/db_interface.c (db_set_hw_watchpoint) (kern_addr): Use vm_offset_t instead of an unsigned int. + (db_user_to_kernel_address) (kaddr): Likewise. + (db_user_to_kernel_address) (ptetokv): Don't cast return value. + (db_read_bytes) (kern_addr): Use vm_offset_t instead of an unsigned int. + (db_write_bytes_user_space) (kern_addr): Likewise. + (db_task_name) (vaddr, kaddr): Likewise. + * i386/i386/db_interface.h (db_user_to_kernel_address) (kaddr): Likewise. + +2013-12-10 Marin Ramesa + + i386/i386at/kd_event.c (kbdsetstat): fix difference in signedness + * i386/i386at/kd_event.c (X_kdb_enter_init, X_kdb_exit_init): Cast first arguments to (unsigned int *). + +2013-12-10 Marin Ramesa + + i386: move prototypes to fix implicit declaration of function + This fixes the implicit declarations in kern/machine.c and kern/debug.c. + + * i386/i386/model_dep.h (halt_cpu, halt_all_cpus): Add prototypes. + * i386/i386at/model_dep.h (halt_cpu, halt_all_cpus): Remove prototypes. + +2013-12-08 Marin Ramesa + + ddb/db_trap.c (db_task_trap): remove forward declarations + * ddb/db_break.h (db_check_breakpoint_valid): Add prototype. + * ddb/db_trap.c (db_init_default_thread, db_check_breakpoint_valid): Remove forward declarations. + +2013-12-08 Marin Ramesa + + Use db_addr_t instead of db_expr_t + In this way everything falls into place and there is one cast less. + + Function db_task_printsym() is already always called with the cast to + db_addr_t in the first argument. + + * ddb/db_aout.c (aout_db_line_at_pc): Use db_addr_t instead of db_expr_t. + (aout_db_search_by_addr): Don't cast to vm_offset_t. Argument is already + db_addr_t. + * ddb/db_aout.h (aout_db_line_at_pc): Use db_addr_t instead of db_expr_t. + * ddb/db_sym.c (db_task_printsym): Likewise. + (db_line_at_pc): Likewise. + * ddb/db_sym.h (db_task_printsym): Likewise. + (db_line_at_pc): Likewise. + * i386/i386/db_trace.c (db_task_printsym): Cast to db_addr_t instead of db_expr_t. + Member swap_func is a pointer to void. + +2013-12-08 Marin Ramesa + + ddb/db_print.c: use unsigned long instead of an unsigned int + Variable db_maxoff is in other files declared as unsigned long. + + * ddb/db_print.c (db_maxoff): Use unsigned long instead of an unsigned int. + +2013-12-08 Marin Ramesa + + ddb/db_mp.c: definition of db_console() only if CONSOLE_ON_MASTER + Function db_console() is called only if CONSOLE_ON_MASTER. + + If it stays this way, db_console() will not compile. I don't know + if it should be removed. Maybe someone will rewrite it. + + * ddb/db_mp.c (db_console): Definition only if CONSOLE_ON_MASTER. + * ddb/db_mp.h [CONSOLE_ON_MASTER] (db_console): Add prototype. + +2013-12-08 Marin Ramesa + + ddb/db_mp.c: use boolean instead of an int + * ddb/db_mp.c (db_enter_debug): Use boolean instead of an int. + + ddb/db_examine.c: trivial stylistic fix for consistency + * ddb/db_examine.c: Trivial stylistic fix for consistency. + + ddb/db_examine.c (db_examine_cmd): remove forward declaration + * ddb/db_examine.c (db_option): Remove forward declaration. + + ddb/db_command.c (db_command): remove forward declaration + * ddb/db_command.c (db_fncall): Remove forward declaration. + + ddb/db_command.c: use boolean values + * ddb/db_command.c (db_cmd_loop_done): Use boolean values. + +2013-12-08 Marin Ramesa + + i386/i386at/kd.c: use io_req instead of uio + Struct uio is nowhere defined and in device/buf.h the string uio is defined + as io_req. Remove all declarations of uio structure and use io_req_t instead + of it. + + * device/buf.h (uio, io_req): Remove definition. + * i386/i386at/kd.c: Remove comment. + (kdread): Use io_req_t. + (kdwrite): Likewise. + * i386/i386at/kd.h (kdread, kdwrite): Use io_req_t as argument type. + +2013-12-08 Marin Ramesa + + ddb/db_break.c (db_find_thread_breakpoint_here): remove unnecessary cast + Variable addr is already of type db_addr_t. + + * ddb/db_break.c (db_find_thread_breakpoint_here) (addr): Don't cast to db_addr_t. + +2013-12-08 Marin Ramesa + + ddb/db_break.c (db_add_thread_breakpoint): fix argument list + * ddb/db_break.c (db_add_thread_breakpoint): Fix argument list. + + ddb/db_aout.c (aout_db_lookup): remove forward declaration + * ddb/db_aout.c (db_sym_parse_and_lookup): Remove forward declaration. + * ddb/db_sym.h (db_sym_parse_and_lookup): Add prototype. + +2013-12-08 Marin Ramesa + + ddb/db_aout.c (aout_db_qualified_search): use DB_SYM_NULL as return value + Function aout_db_qualified_search() returns db_sym_t. Use DB_SYM_NULL as + return value instead of zero. + + * ddb/db_aout.c (aout_db_qualified_search): Use DB_SYM_NULL as return value. + +2013-12-08 Marin Ramesa + + i386/i386/db_interface.c: remove forward declaration + * i386/i386/db_interface.c (db_write_bytes_user_space): Remove forward declaration. + * i386/i386/db_interface.h (db_write_bytes_user_space): Add prototype. + + i386/i386at/lpr.c: fix initalization from incompatible pointer type + * i386/i386at/lpr.c (lprprobe): Modify argument types. + * i386/i386at/lpr.h (lprprobe): Likewise. + + i386/i386at/com.c: fix assignment from incompatible pointer type + * device/tty.h (tty): Modify so that correct argument list and return type is listed. + + i386/i386at/com.c: fix initialization from incompatible pointer type + * i386/i386at/com.c (comprobe): Modify argument types. + (comprobe): Cast from (struct bus_ctrl *) to (struct bus_device *). + comprobe_general() uses only a small subset of members, so it's all + the same which struct it is. + * i386/i386at/com.h (comprobe): Modify argument types. + + kern/startup.c: use boolean values + * kern/startup.c (reboot_on_panic): Use boolean values. + + vm/vm_map.c: use boolean instead of an int + * vm/vm_map.c (vm_map_pmap_enter_print, vm_map_pmap_enter_enable): Use boolean instead of an int. + + vm/vm_object.c: remove unused variable + * vm/vm_object.c (vm_object_terminate_remove_all): Remove unused variable. + + vm/vm_pageout.c: remove forward declarations + * vm/vm_pageout.c (vm_pageout_continue, vm_pageout_scan_continue): Remove forward declarations. + * vm/vm_pageout.h (vm_pageout_continue, vm_pageout_scan_continue): Add prototypes. + + i386/i386at/pic_isa.c: remove forward declaration + * i386/Makefrag.am: Include i386/i386/hardclock.h. + * i386/i386/hardclock.h: New file. + Add copyright. + [_I386_HARDCLOCK_H_]: Add ifndef. + (hardclock): Add prototype. + * i386/i386at/pic_isa.c (hardclock): Remove forward declaration. + Include i386/hardclock.h. + + i386/i386at/model_dep.c: fix argument list + * i386/i386at/model_dep.c (timemmap): Fix argument list. + + i386/i386at/lpr.c: fix argument list + * i386/i386at/lpr.c (lprprobe): Fix argument list. + + ddb/db_output.c: remove forward declaration + * ddb/db_input.h (db_check_interrupt): Add prototype. + * ddb/db_output.c: Include ddb/db_input.h. + (db_check_interrupt): Remove forward declaration. + +2013-12-08 Marin Ramesa + + kern/act.h: remove unnecessary include + File kern/act.h includes itself. Remove this include. + + * kern/act.h: Don't include kern/act.h. + +2013-12-08 Marin Ramesa + + Cleanup of the prototypes + * device/cirbuf.h (nqdb): Remove prototype without definition. + * device/conf.h (dev_set_indirect): Likewise. + * kern/boot_script.h (boot_script_read_file): Likewise. + * kern/eventcount.h (evc_notify_abort): Remove duplicate prototype. + * kern/thread.h (thread_set_own_priority): Likewise. + * kern/thread_swap.h (thread_swapout): Remove prototype without definition. + * kern/timer.h (softclock): Remove duplicate prototype. + * vm/pmap.h (pmap_resident_count, pmap_access, pmap_phys_address, pmap_phys_to_frame): Remove prototypes without function definition. + * vm/vm_page.h (vm_set_page_size): Likewise. + + vm/vm_page.h: remove unused variables + * vm/vm_page.h (first_phys_addr, last_phys_addr): Remove unused variables. + + kern/syscall_sw.c: use boolean instead of an int + * kern/syscall_sw.c (kern_invalid_debug): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + kern/refcount.h: remove unnecessary include + File kern/refcount.h includes itself. Remove this include. + + * kern/refcount.h: Don't include kern/refcount.h. + +2013-12-08 Marin Ramesa + + kern/rbtree.h: remove unnecessary include + File kern/rbtree.h includes itself. Remove this include. + + * kern/rbtree.h: Don't include kern/rbtree.h. + +2013-12-08 Marin Ramesa + + kern/priority.c: update comment + This is priority.c. Not clock_prim.c. + + * kern/priority.c: Update comment. + +2013-12-08 Marin Ramesa + + kern/pc_sample.c: remove unused variables + * kern/pc_sample.c (pc_sampling_enabled, pc_sampling_lock): Remove unused variables. + + kern/lock_mon.c: remove dead assignments + * kern/lock_mon.c (scurval, ssum, sli): Remove variables. + (scurval, ssum, sli): Remove dead assignments. + +2013-12-08 Marin Ramesa + + kern/lock_mon.c: use spl_t instead of an int + Variable curr_ipl is in other files declared as spl_t. + + * kern/lock_mon.c (curr_ipl): Use spl_t instead of an int. + +2013-12-08 Marin Ramesa + + kern/act.h: remove prototype without definition + * kern/act.h (act_create_kernel): Remove prototype without definition. + +2013-12-08 Samuel Thibault + + Add comment + +2013-12-08 Marin Ramesa + + ipc/port.h: update comment + This is ipc/port.h. Not ipc/ipc_port.h. + + * ipc/port.h: Update comment. + +2013-12-08 Marin Ramesa + + ipc/mach_port.c: use boolean instead of an int + * ipc/mach_port.c (mach_port_deallocate_debug): Use boolean instead of an int. + + ipc/ipc_init.c: qualify constant with const + * ipc/ipc_init.c (ipc_kernel_map_size): Qualify constant with const. + + i386/intel/pmap.c: remove unused variable + * i386/intel/pmap.c (end): Remove unused variable. + + i386/intel/pmap.c: use boolean instead of an int + * i386/intel/pmap.c (pmap_debug): Use boolean instead of an int. + + time: remove unused variable + * i386/i386at/rtc.c (tz): Remove unused variable. + * xen/time.c (tz): Remove unused variable. + + i386/i386at/rtc.c: use boolean instead of an int + * i386/i386at/rtc.c (first_rtcopen_ever): Use boolean instead of an int. + + i386/i386at/kd.c: use boolean instead of an unsigned int + * i386/i386at/kd.c (kd_bellstate): Use boolean instead of an unsigned int. + + i386/i386at/kd.c: use boolean instead of an int + * i386/i386at/kd.c (mouse_in_use): Use boolean instead of an int. + Remove duplicate declaration. + + i386/i386at/model_dep.c, kd.c: use boolean instead of an int + * i386/i386at/kd.c (rebootflag): Use boolean instead of an int. + Remove duplicate variable declaration. + * i386/i386at/model_dep.c (rebootflag): Use boolean instead of an int. + + i386/i386at/immc.c, kd.c: use boolean instead of an int + * i386/i386at/immc.c (immediate_console_enable): Use boolean instead of an int. + * i386/i386at/kd.c (immediate_console_enable): Likewise. + + i386/i386/user_ldt.c: remove unused variable + * i386/i386/user_ldt.c (acc_type): Remove unused variable. + + i386/i386/trap.c: remove unused variables + * i386/i386/trap.c (v86_assist_on, v86_unsafe_ok, v86_do_sti_cli, v86_do_sti_immediate, cli_count, sti_count): Remove unused variables. + + i386/i386/trap.c: remove unused variable + * i386/i386/trap.c (brb): Remove unused variable. + + i386/i386/pit.c: remove unused variables + * i386/i386/pit.c (pitctr1_port, pitctr2_port): Remove unused variables. + + i386/i386/pic.c: remove unused variables + * i386/i386/pic.c (nintr, npics): Remove unused variables. + + i386/i386/mp_desc.c: remove unused variable + * i386/i386/mp_desc.c (avail_start): Remove unused variable. + +2013-12-08 Marin Ramesa + + i386/i386/ipl.h: remove ifdef and add ifndef + This code is used even if KERNEL is not defined. Remove the ifdef. + + * i386/i386/ipl.h [_I386_IPL_H_]: Add ifndef. + +2013-12-08 Marin Ramesa + + i386/i386/db_interface.c: use boolean instead of an int + * i386/i386/db_interface.c (kernel_dr): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + device/tty.h, chario.h: move prototype + Now that we have device/chario.h move the chario_init() prototype + from device/tty.h to device/chario.h. + + * device/chario.h (chario_init): Add prototype. + * device/device_init.c: Include device/chario.h. + * device/tty.h (chario_init): Remove prototype. + +2013-12-08 Marin Ramesa + + device/kmsg.c: use boolean instead of an int + * device/kmsg.c (kmsg_init_done): Use boolean instead of an int. + + device/kmsg.c: use boolean instead of an int + * device/kmsg.c (kmsg_in_use): Use boolean instead of an int. + + device/if_ether.h: remove unused variable + * device/if_ether.h (etherbroadcastaddr): Remove unused variable. + * device/subrs.c (etherbroadcastaddr): Remove initialization. + + device/dev_lookup.c: remove unused lock + * device/dev_lookup.c (dev_port_lock): Remove unused lock. + + device/cirbuf.c: use boolean instead of an int + * device/cirbuf.c (cb_check_enable): Use boolean instead of an int. + + device/chario.c: use boolean instead of an int + * device/chario.c (pdma_default): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + ddb/db_output.c: remove duplicate function + Function kdbprintf() and db_printf() are the same function. Remove + kdbprintf() and define kdbprintf to db_printf. + + * ddb/db_output.c (kdbprintf): Remove function. + * ddb/db_output.h: Define kdbprintf to db_printf. + (kdbprintf): Remove prototype. + +2013-12-08 Marin Ramesa + + ddb/db_output.c: remove call to nonexistent db_printf_enter() + * ddb/db_output.c [db_printf_enter] (db_printf_enter): Remove call to nonexistent function. + + ddb/db_command.h: remove duplicate variable declaration + * ddb/db_command.h (db_recover): Remove duplicate variable declaration. + + ddb/db_command.c: remove forward declaration + * ddb/db_command.c (db_skip_to_eol): Remove forward declaration. + +2013-12-08 Marin Ramesa + + i386/i386/setjmp.h: remove ifdef + Function _longjmp() is used even if __GNUC__ is not defined. Avoid + implicit declaration in that case by removing the ifdef. + + * i386/i386/setjmp.h [__GNUC__] (_longjmp): Remove ifdef. + +2013-12-08 Marin Ramesa + + kern/machine.c: remove __volatile__ + Shutdown can be optimised. Remove __volatile__. + + * kern/machine.c [__GNUC__] (processor_doshutdown): Remove volatile function qualifier. + +2013-12-08 Marin Ramesa + + ipc/ipc_port.c: trivial stylistic fix for consistency + * ipc/ipc_port.c (indent): Trivial stylistic fix for consistency. + +2013-12-08 Samuel Thibault + + Make unsigned character constants unsigned + Thanks Marin Ramesa for the report. + + * i386/i386at/kd.h (K_DONE, NC, K_SCAN): Make constants unsigned. + +2013-12-08 Samuel Thibault + + Always make Assert trigger debugger + * kern/debug.c (Assert): Always call Debugger, even if db_breakpoints_insert + is not set. + +2013-12-08 Samuel Thibault + + Fix implicit declaration of function + Thanks Marin Ramesa for the report. + + * device/ds_routines.h (device_deallocate): Move declaration to... + * include/device/device_types.h (device_deallocate): ... here. + +2013-12-08 Marin Ramesa + + device/device_types_kernel.h: remove redeclaration of dev_port_lookup() + * device/device_types_kernel.h (dev_port_lookup): Remove prototype. + + Add ifndefs + * i386/i386at/cram.h [_CRAM_H_]: Add ifndef. + * i386/i386at/disk.h [_DISK_H_]: Likewise. + * i386/i386at/i8250.h [_I8250_H_]: Likewise. + * i386/include/mach/i386/asm.h [_MACH_I386_ASM_H_]: Likewise. + * i386/include/mach/i386/disk.h [_MACH_I386_DISK_H_]: Likewise. + + Add comments after endifs + * device/cons.c [MACH_KMSG]: Likewise. + [CONSBUFSIZE > 0]: Likewise. + * i386/i386/trap.c [MACH_KDB]: Likewise. + [MACH_PV_PAGETABLES]: Likewise. + * i386/i386at/kd.c [ENABLE_IMMEDIATE_CONSOLE]: Likewise. + * ipc/ipc_kmsg_queue.h [_IPC_KMSG_QUEUE_H_]: Likewise. + * kern/act.c [ACTWATCH]: Likewise. + * kern/refcount.h [MACHINE_REFCOUNT]: Likewise. + * kern/task.c [FAST_TAS]: Likewise. + +2013-12-04 Samuel Thibault + + Add missing include + * ddb/db_variables.h: Include . + +2013-12-04 Marin Ramesa + + i386/i386at/com.h: include chips/busses.h for struct bus_device + * i386/i386at/com.h: Include chips/busses.h. + + ddb/db_variables.c: fix near initialization + * ddb/db_task_thread.c (db_set_default_thread): New parameter. + * ddb/db_task_thread.h (db_set_default_thread): Likewise. + + kern/mach_clock.c: remove forward declaration + * Makefrag.am: Include kern/priority.h. + * kern/mach_clock.c (thread_quantum_update): Remove forward declaration. + Include kern/priority.h. + * kern/priority.h: New file. + Add copyright. + [_KERN_PRIORITY_H_]: Add ifndef. + (thread_quantum_update): Add prototype. + + ipc/mach_port.c: remove forward declaration + * ipc/mach_port.c (mach_port_get_receive_status): Remove forward declaration. + * ipc/mach_port.h (mach_port_get_receive_status): Add prototype. + + ipc/ipc_entry.c: remove forward declaration + * ipc/ipc_entry.c (db_ipc_object_by_name): Remove forward declaration. + * ipc/ipc_entry.h (db_ipc_object_by_name): Add prototype. + + i386/i386at/model_dep.c: remove forward declaration + * i386/i386at/model_dep.c (init_alloc_aligned): Remove forward declaration. + * i386/i386at/model_dep.h (init_alloc_aligned): Add prototype. + + kern/time_stamp.c: remove multimax code + * kern/time_stamp.c [multimax]: Remove code. + +2013-12-04 Samuel Thibault + + Remove unnecessary file + * i386/Makefrag.am: Don't include i386/include/mach/i386/rpc.h. + * i386/include/mach/i386/rpc.h: Remove file. + +2013-12-04 Marin Ramesa + + vm/vm_user.c: remove forward declaration + * vm/vm_user.c (vm_map_machine_attribute): Remove forward declaration. + +2013-12-04 Marin Ramesa + + vm/vm_resident.c: correct comment + This is vm_resident.c, not vm_page.c. + + * vm/vm_resident.c: Correct comment. + +2013-12-04 Marin Ramesa + + vm/vm_map.c: remove forward declarations + * vm/vm_map.c (_vm_map_clip_start, _vm_map_copy_clip_start, _vm_map_clip_end, _vm_map_copy_clip_end): Remove forward declarations. + * vm/vm_map.h (_vm_map_clip_end): Correct prototype. + + vm/vm_kern.c: remove forward declarations + * vm/vm_kern.c (kmem_alloc_pages, kmem_remap_pages): Remove forward declarations. + * vm/vm_kern.h (kmem_alloc_pages, kmem_remap_pages): Add prototypes. + + vm/vm_fault.c: remove forward declaration + * vm/vm_fault.c (vm_fault_wire_fast): Remove forward declaration. + * vm/vm_fault.h (vm_fault_wire_fast): Add prototype. + +2013-12-04 Marin Ramesa + + ipc/ipc_kmsg.h: update comment + Struct ipc_kmsg_queue is not defined in kern/thread.h. + + * ipc/ipc_kmsg.h: Update comment. + +2013-12-04 Marin Ramesa + + kern: remove forward declaration + * kern/xpr.c (db_printf): Remove forward declaration. + [MACH_KDB] Include ddb/db_output.h. + + kern/thread.c: remove forward declaration + * i386/i386/pcb.h (pcb_module_init): Add prototype. + * kern/thread.c (pcb_module_init): Remove forward declaration. + + kern/task.c: remove forward declarations + * ipc/ipc_mqueue.h: Include ipc/ipc_kmsg_queue.h. + * kern/ipc_kobject.h: Move includes into ifndef. + * kern/syscall_emulation.h: Include kern/task.h. + (eml_init, eml_task_reference, eml_task_deallocate): Add prototypes. + * kern/task.c: Include kern/syscall_emulation.h. + (eml_init, eml_task_reference, eml_task_deallocate): Remove forward declarations + + kern/syscall_sw.c: remove forward declarations + * kern/eventcount.h (evc_wait_clear): Add prototype. + * kern/ipc_mig.h: Include device/device_types.h. + (syscall_vm_map, syscall_vm_allocate, syscall_vm_deallocate, syscall_task_create, syscall_task_terminate, syscall_task_suspend, syscall_task_set_special_port, syscall_mach_port_allocate, syscall_mach_port_deallocate, syscall_mach_port_insert_right, syscall_mach_port_allocate_name, syscall_thread_depress_abort, syscall_device_write_request, syscall_device_writev_request): Add prototypes. + * kern/syscall_sw.c (syscall_vm_map, syscall_vm_allocate, syscall_vm_deallocate, syscall_task_create, syscall_task_terminate, syscall_task_suspend, syscall_task_set_special_port, syscall_mach_port_allocate, syscall_mach_port_deallocate, syscall_mach_port_insert_right, syscall_mach_port_allocate_name, syscall_thread_depress_abort, evc_wait, evc_wait_clear, syscall_device_write_request, syscall_device_writev_request): Remove forward declarations. + Include kern/ipc_mig.h. + Include kern/eventcount.h. + + kern/syscall_subr.c: remove forward declaration + * kern/syscall_subr.c (thread_depress_priority): Remove forward declaration. + * kern/syscall_subr.h (thread_depress_priority): Add prototype. + + kern/startup.c: remove forward declarations + * Makefrag.am: Include kern/bootstrap.h. + Include vm/vm_init.h. + Include device/device_init.h. + * device/device_init.h: New file. + Add copyright. + [_DEVICE_DEVICE_INIT_H_]: Add ifndef. + (device_service_create): Add prototype. + * i386/i386/mp_desc.h (start_other_cpus): Add prototype. + * kern/bootstrap.h: New file. + Add copyright. + [_KERN_BOOTSTRAP_H_]: Add ifndef. + (bootstrap_create): Add prototype. + * kern/sched_prim.h (idle_thread, sched_thread): Add prototypes. + * kern/startup.c: Include kern/bootstrap.h. + Include kern/startup.h. + Include vm/vm_init.h. + Include vm/vm_pageout.h. + Include device/device_init.h. + (vm_mem_init, vm_mem_bootstrap, init_timeout, machine_init, idle_thread, vm_pageout, reaper_thread, swapin_thread, sched_thread, bootstrap_create, device_service_create, cpu_launch_first_thread, start_kernel_threads, start_other_cpus, action_thread): Remove forward declarations. + [NCPUS > 1] Include machine/mp_desc.h and kern/machine.h. + * kern/startup.h: Include kern/thread.h. + (cpu_launch_first_thread, start_kernel_threads): Add prototypes. + * vm/vm_init.h: New file. + Add copyright. + [_VM_VM_INIT_H_]: Add ifndef. + (vm_mem_init, vm_mem_bootstrap): Add prototypes. + * vm/vm_pageout.h (vm_pageout): Add prototype. + + kern/sched_prim.c: remove forward declarations + * kern/sched_prim.c (set_pri, do_thread_scan, choose_pset_thread, checkrq, thread_check): Remove forward declarations. + * kern/sched_prim.h (set_pri, do_thread_scan, choose_pset_thread, checkrq, thread_check): Add prototypes. + + kern/processor.c: remove forward declarations + * kern/processor.c (quantum_set, pset_init, processor_init): Remove forward declarations. + * kern/processor.h (quantum_set, pset_init, processor_init): Add prototypes. + + kern/ipc_mig.c: remove forward declarations + * device/ds_routines.h (ds_device_write_trap, ds_device_writev_trap): Add prototypes. + * kern/ipc_mig.c (ds_device_write_trap, ds_device_writev_trap): Remove forward declarations. + + kern/debug.c: remove forward declaration + * kern/debug.c (cnputc): Remove forward declaration. + Include device/cons.h. + + kern/bootstrap.c: remove forward declarations + * i386/i386/pcb.h: Include mach/thread_status.h. + Include machine/thread.h. + * kern/bootstrap.c: Include machine/pcb.h. + (user_stack_low, set_user_regs): Remove forward declarations. + + ipc/mach_msg.c: remove forward declarations + * ipc/mach_msg.c: Include kern/exception.h. + (exception_raise_continue, exception_raise_continue_fast): Remove forward declarations. + * kern/exception.h: Include ipc/ipc_types.h. + Include ipc/ipc_kmsg.h. + + ipc/ipc_table.c: remove forward declaration + * ipc/ipc_table.c (ipc_table_fill): Remove forward declaration. + * ipc/ipc_table.h (ipc_table_fill): Add prototype. + + ipc/ipc_kmsg.c: remove forward declarations + * ipc/ipc_kmsg.c (copyinmap, copyoutmap, ipc_msg_print): Remove forward declarations. + * ipc/ipc_kmsg.h (ipc_msg_print): Add prototype. + + i386/intel/pmap.c: remove forward declarations + * i386/intel/pmap.c (pmap_remove_range, signal_cpus): Remove forward declarations. + * i386/intel/pmap.h (pmap_remove_range, signal_cpus): Add prototypes. + +2013-12-04 Samuel Thibault + + Drop duplicate declaration + * i386/i386/model_dep.h (halt_cpu, halt_all_cpus): Remove duplicate + declaration. + * i386/i386at/model_dep.h (halt_cpu, halt_all_cpus): Add comments. + +2013-12-04 Marin Ramesa + + i386/i386at: remove forward declarations + * Makefrag.am: Include kern/startup.h. + * i386/i386at/model_dep.c: Include kern/startup.h. + Include i386at/model_dep.h. + (setup_main, halt_all_cpus, halt_cpu, inittodr): Remove forward declarations. + * i386/i386at/model_dep.h (halt_all_cpus, halt_cpu, inittodr): Add prototypes. + * kern/startup.h: New file. + Add copyright. + [_KERN_STARTUP_H_]: Add ifndef. + (setup_main): Add prototype. + + i386/i386at/kd_mouse.c: remove forward declarations + * i386/i386at/kd_mouse.c (mouseintr, mouse_enqueue, mouse_read_done): Remove forward declarations. + (mouseintr): Define argument type. + * i386/i386at/kd_mouse.h (mouseintr, mouse_enqueue, mouse_read_done): Add prototypes. + + i386/i386at/kd_event.c: remove forward declarations + * i386/i386at/kd_event.c (kbd_enqueue, X_kdb_enter_init, X_kdb_exit_init, kbd_read_done): Remove forward declarations. + * i386/i386at/kd_event.h (kbd_enqueue, X_kdb_enter_init, X_kdb_exit_init, kbd_read_done): Add prototypes. + + i386/i386at/kd.c: remove forward declarations + * i386/i386at/kd.c (kd_enqsc, kdcheckmagic, do_modifier, bmpch2bit, bmppaintcsr, bit2fbptr): Remove forward declarations. + * i386/i386at/kd.h: Include device/buf.h. + Include i386at/kdsoft.h. + (kdcheckmagic, do_modifier, bmpch2bit, bmppaintcsr, bit2fbptr): Add prototypes. + * i386/i386at/kd_event.h (kd_enqsc): Add prototype. + + i386/i386at/conf.c: remove forward declarations + * i386/Makefrag.am: Include i386/i386at/model_dep.h and i386/i386at/mem.h. + * i386/i386at/com.h (comgetstat, comsetstat): Declare as extern. + (comopen, comclose, comread, comwrite, comportdeath): Add prototypes. + * i386/i386at/conf.c: Include kern/mach_clock.h and i386at/model_dep.h. + (timeopen, timeclose, timemmap): Remove forward declarations. + (kdopen, kdclose, kdread, kdwrite, kdgetstat, kdsetstat, kdportdeath, kdmmap): Likewise. + (comopen, comclose, comread, comwrite, comportdeath, comgetstat, comsetstat): Likewise. + (lpropen, lprclose, lprread, lprwrite, lprportdeath, lprgetstat, lprsetstat): Likewise. + (kbdopen, kbdclose, kbdread, kbdgetstat, kbdsetstat): Likewise. + (mouseopen, mouseclose, mouseread, mousegetstat): Likewise. + (memmmap): Likewise. + (kmsgopen, kmsgclose, kmsgread, kmsggetstat): Likewise. + (hypcnopen, hypcnclose, hypcnread, hypcnwrite, hypcnportdeath, hypcngetstat, hypcnsetstat): Likewise. + Include i386at/kd.h. + Include i386at/com.h. + Include i386at/lpr.h. + Include i386at/kd_event.h. + Include i386at/kd_mouse.h. + Include i386at/mem.h. + Include device/kmsg.h. + Include xen/console.h. + * i386/i386at/kd.h: Include device/io_req.h. + (kdopen, kdclose, kdread, kdwrite, kdgetstat, kdsetstat, kdportdeath, kdmmap): Add prototypes. + * i386/i386at/kd_event.h (kbdopen, kbdclose, kbdread, kbdgetstat, kbdsetstat): Likewise. + * i386/i386at/kd_mouse.h (mouseopen, mouseclose, mouseread, mousegetstat): Likewise. + * i386/i386at/lpr.h (lpropen, lprclose, lprread, lprwrite, lprportdeath): Likewise. + (lprgetstat, lprsetstat): Declare as extern. + * i386/i386at/mem.h: New file. + Add copyright. + [_MEM_H_]: Add ifndef. + (memmmap): Add prototype. + * i386/i386at/model_dep.c: Include i386/i386at/model_dep.h. + (timemmap): Fix argument list. + * i386/i386at/model_dep.h: New file. + Add copyright. + [_MODEL_DEP_H_]: Add ifndef. + (timemmap): Add prototype. + * kern/mach_clock.h (timeopen, timeclose): Add prototypes. + * xen/console.h (hypcnopen, hypcnclose, hypcnread, hypcnwrite, hypcnportdeath, hypcngetstat, hypcnsetstat): Add prototypes. + + i386/i386at/autoconf.c, com.c, lpr.c: remove forward declarations + * i386/i386/autoconf.c (comintr, lprintr): Remove forward declarations. + Include i386at/com.h. + Include i386at/lprreg.h. + * i386/i386at/com.c (comprobe, commctl, comstart, comstop, comattach, comintr, comgetstat, comsetstat): Remove forward declarations. + * i386/i386at/com.h: Include device/tty.h. + (comprobe, commctl, comstart, comstop, comattach, comintr, comgetstat, comsetstat): Add prototypes. + * i386/i386at/lpr.c (lprprobe, lprstop, lprintr, lprstart, lprattach, lprgetstat, lprsetstat, lprpr_addr): Remove forward declarations. + (lprprobe): Fix argument list. + (lprpr): Define argument type. + lprpr_addr): Likewise. + * i386/i386at/lprreg.h (lprprobe, lprstop, lprintr, lprstart, lprattach, lprgetstat, lprsetstat, lprpr_addr): Add prototypes. + + kern/exception.c: remove forward declarations + * i386/i386/trap.h (thread_kdb_return): Add prototype. + * kern/exception.c (thread_kdb_return, db_printf): Remove forward declarations. + Include machine/trap.h. + Include ddb/db_output.h. + + kern: new header file exception.h + * Makefrag.am: Include kern/exception.h. + * i386/i386/trap.c: Include kern/exception.h. + (exception, thread_exception_return): Remove forward declarations. + * kern/exception.c: Include kern/exception.h. + (exception, exception_try_task, exception_no_server, exception_raise, exception_parse_reply, exception_raise_continue, exception_raise_continue_slow, exception_raise_continue_fast): Remove forward declarations. + * kern/exception.h: New file. + Add copyright. + [_KERN_EXCEPTION_H_]: Add ifndef. + (exception, exception_try_task, exception_no_server, exception_raise, exception_parse_reply, exception_raise_continue, exception_raise_continue_slow, exception_raise_continue_fast): Add prototypes. + + i386/i386/pcb.c: remove forward declarations + * i386/i386/pcb.c (Load_context, Switch_context, Thread_continue, user_ldt_free): Remove forward declarations. + * i386/i386/pcb.h (Load_context, Switch_context, Thread_continue): Add prototypes. + * i386/i386/user_ldt.h (user_ldt_free): Add prototype. + + i386/i386/io_perm.c: remove forward declaration + * i386/i386/io_perm.c: Include pcb.h. + (update_ktss_iopb): Remove forward declaration. + * i386/i386/pcb.h (update_ktss_iopb): Add prototype. + + i386/i386/fpu.c, trap.c: remove forward declarations + * i386/i386/fpu.c: Include i386/trap.h. + (void i386_exception, fp_save, fp_load): Remove forward declaration. + * i386/i386/trap.c (void i386_exception): Remove forward declaration. + * i386/i386/trap.h (void i386_exception): Add prototype. + + i386/i386/db_trace.c: remove forward declaration + * i386/i386/db_interface.h: Include ddb/db_variables.h. + (db_i386_reg_value): Add prototype. + * i386/i386/db_trace.c (db_i386_reg_value): Remove forward declaration. + + device/device_init.c: remove forward declarations + * device/dev_lookup.c: Include device/ds_routines.h. + * device/device_init.c: Include device/ds_routines.h. + Include device/net_io.h. + (mach_device_init, dev_lookup_init, net_io_init, device_pager_init, io_done_thread, net_thread): Remove forward declarations. + * device/ds_routines.h (mach_device_init, dev_lookup_init, device_pager_init, io_done_thread): Add prototypes. + * device/net_io.h (net_io_init, net_thread): Add prototypes. + + ddb/db_variables.c: remove forward declarations + * ddb/db_task_thread.h: Include ddb/db_variables.h. + (db_set_default_thread, db_get_task_thread): Add prototypes. + * ddb/db_variables: Include ddb/db_macro.h. + (db_set_default_thread, db_get_task_thread, db_arg_variable): Remove forward declarations. + + ddb/db_trap.c: remove forward declarations + * ddb/db_run.h (db_restart_at_pc, db_stop_at_pc): Add prototypes. + * ddb/db_trap.c (db_restart_at_pc, db_stop_at_pc): Remove forward declarations. + Include ddb/db_run.h. + + ddb/db_command.c: remove useless forward declaration without definition + * ddb/db_command.c (ddb_display): Remove forward declaration. + Remove ddb_display call. + + ddb/db_command.c: remove forward declaration + * ddb/db_command.c (db_reset_cpu): Remove forward declaration. + * i386/i386/db_interface.h (db_reset_cpu): Add prototype. + * i386/i386at/model_dep.c: Include i386/db_interface.h. + + ddb/db_sym.c: fix argument list + * ddb/db_sym.c (dummy_db_free_symbol): Fix argument list. + + ddb/db_sym.c: remove useless forward declarations without definitions + * ddb/db_sym.c (coff_db_sym_init, coff_db_line_at_pc, db_sym_t coff_db_lookup, coff_db_search_symbol, coff_db_symbol_values): Remove forward declarations. + (x_db): Modify field definition. + + ddb: new header file db_aout.h + * Makefrag.am: Include ddb/db_aout.h. + * ddb/db_aout.c: Include ddb/db_aout.h. + * ddb/db_aout.h: New file. + Add copyright. + [_DDB_DB_AOUT_H_]: Add ifndef. + Include ddb/db_sym.h. + Include machine/db_machdep.h. + (aout_db_line_at_pc, aout_db_lookup, aout_db_search_symbol, aout_db_symbol_values): Add prototypes. + * ddb/db_sym.c: Include ddb/db_aout.h. + (db_search_in_task_symbol, aout_db_line_at_pc, aout_db_lookup, aout_db_search_symbol, aout_db_symbol_values): Remove forward declarations. + * ddb/db_sym.h (db_search_in_task_symbol): Add prototype. + + ddb/db_aout.c: trivial stylistic fix for consistency + * ddb/db_aout.c: Trivial stylistic fix for consistency. + + ddb/db_run.c: add comment after endif + * ddb/db_run.c [FIXUP_PC_AFTER_BREAK]: Add comment after endif. + + ddb/db_mp.c: add comment after else and endif + * ddb/db_mp.c [CONSOLE_ON_MASTER]: Add comment after else and endif. + + ddb/db_input.c: add comment after endif + * ddb/db_input.c [DB_HISTORY_SIZE]: Add comment after endif. + + ddb/db_command.c: remove forward declarations + * ddb/db_command.c: Include machine/db_interface.h. + (db_help_cmd, db_stack_trace_cmd): Remove forward declarations. + * ddb/db_command.h (db_help_cmd): Add prototype. + * i386/i386/db_interface.h (db_stack_trace_cmd): Add prototype. + + device/net_io.c: initialize hash_entp to NULL + * device/net_io.c (hash_entp): Initialize to NET_HASH_ENTRY_NULL. + +2013-11-24 Marin Ramesa + + Modify struct db_variable + * ddb/db_macro.c (db_arg_variable): Make function void. + * ddb/db_macro.h (db_arg_variable): Declare void return. + * ddb/db_task_thread.c (db_set_default_thread): Make function void. + (db_get_task_thread): Make function void. + * ddb/db_variables.c (db_set_default_thread, db_get_task_thread, db_arg_variable): Declare void return. + (db_read_write_variable): Use void in initialization. + * ddb/db_variables.h (db_variable): Make third member return void. + [FCN_NULL]: Define void. + * i386/i386/db_trace.c (db_i386_reg_value): Make function void. + + device: new header file chario.h + * Makefrag.am: Include device/chario.h. + * device/chario.c (queue_delayed_reply, tty_output, char_open_done, char_read_done, char_write_done): Remove forward declarations. + * device/chario.h: New file. + Add copyright. + [_DEVICE_CHARIO_H_]: Add ifndef. + Include device/tty.h. + (queue_delayed_reply, tty_output, char_open_done, char_read_done, char_write_done): Add prototypes. + + ddb/db_examine.c: trivial stylistic fix for consistency + * ddb/db_examine.c: Trivial stylistic fix for consistency. + + ddb: move forward declarations into a header file + * ddb/db_examine.c (db_disasm, db_search): Remove forward declarations. + * ddb/db_examine.h (db_disasm, db_search): Add prototypes. + + ddb: move forward declaration into a header file + * ddb/db_sym.c (db_lookup): Remove forward declaration. + * ddb/db_sym.h (db_lookup): Add prototype. + + ddb: create new header file db_mp.h + * Makefrag.am: Include ddb/db_mp.h. + * ddb/db_mp.c (remote_db, lock_db, unlock_db): Remove forward declarations. + * ddb/db_mp.h: New file. + Add copyright. + [_DDB_DB_MP_H_]: Add ifndef. + (remote_db, lock_db, unlock_db): Add prototypes. + + ddb: move forward declarations into a header file + * ddb/db_run.c (db_set_task_single_step, db_clear_task_single_step): Remove forward declarations. + * ddb/db_run.h (db_set_task_single_step, db_clear_task_single_step): Add prototypes. + +2013-11-24 Samuel Thibault + + Simplify test + * ddb/db_sym.c (db_name_is_ambiguous): Simplify test for value returned by + X_db_lookup. + + Drop spurious volatile qualifier + * kern/processor.h (processor_doshutdown): Drop spurious volatile qualifier. + +2013-11-24 Marin Ramesa + + kern: move forward declarations into a header file + * kern/machine.c (processor_doaction, processor_doshutdown): Remove forward declarations. + * kern/processor.h (processor_doaction, processor_doshutdown): Add prototypes. + + kern: move forward declaration into a header file + * kern/eventcount.c [NCPUS] (simpler_thread_setrun): Remove forward declaration. + * kern/eventcount.h [NCPUS] (simpler_thread_setrun): Add prototype. + + kern: move forward declaration into a header file + * kern/timer.c (timer_init): Remove forward declaration. + * kern/timer.h (timer_init): Add prototype. + + kern: move forward declaration into a header file + * kern/mach_clock.c (softclock): Remove forward declaration. + * kern/timer.h (softclock): Add prototype. + + kern: move forward declarations into a header file + * kern/thread.c [MACH_DEBUG] (stack_init, stack_finalize): Remove forward declarations. + * kern/thread.h [MACH_DEBUG] (stack_init, stack_finalize): Add prototypes. + + vm: move forward declarations into a header file + * vm/vm_map.c (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Remove forward declarations. + * vm/vm_map.h (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Add prototypes. + + vm: move forward declarations into a header file + * vm/vm_object.c (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Remove forward declarations. + * vm/vm_object.h (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Add prototypes. + +2013-11-24 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-11-24 Marin Ramesa + + Remove leftover register qualifiers + * ddb/db_break.c: Remove register qualifiers. + * i386/i386/pcb.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/intel/pmap.c: Likewise. + * kern/machine.c: Likewise. + * kern/queue.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/sched_prim.h: Likewise. + * kern/timer.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_resident.h: Likewise. + +2013-11-24 Richard Braun + + New RPC for thread destruction + A new call, thread_terminate_release, is added to support self + destruction in threading libraries. + + * include/mach/gnumach.defs (thread_terminate_release): New + simpleroutine declaration. + * kern/thread.c: Include vm/vm_user.h and ipc/mach_port.h. + (thread_terminate_release): New function. + * kern/thread.h (thread_terminate_release): New prototype. + +2013-11-24 Richard Braun + + Export mach_port_destroy declaration + * ipc/mach_port.h (mach_port_destroy): Add prototype. + +2013-11-22 Marin Ramesa + + ddb/db_break.c: remove duplicate include + * ddb/db_break.c: Don't include ddb/db_access.h. + +2013-11-21 Marin Ramesa + + i386/i386/db_interface.h: fix implicit declaration of function + * i386/i386/db_interface.h (cnpollc): Add prototype. + + ddb/db_sym.c: move assignment outside if + * ddb/db_sym.c: Move assignment outside of if. + (db_lookup): New variable. + + i386/i386at/kd.h: fix implicit declaration of function + * i386/i386at/kd.h [MACH_KDB] (kdb_kintr): Add prototype. + + ddb/db_break.c: fix implicit declaration of functions + * ddb/db_break.c: Include machine/db_interface.h. + +2013-11-20 Marin Ramesa + + i386/i386/trap.c: fix implicit declaration of function + * i386/i386/trap.c: Include machine/db_interface.h. + + i386/i386/db_trace.c: don't cast to db_addr_t + * i386/i386/db_trace.c (db_check_thread_address_valid): Don't cast argument 1 to db_addr_t. + +2013-11-20 Samuel Thibault + + Comment out db_search_null + * i386/i386/db_interface.c (db_search_null) [!GNU]: Do not define + db_search_null. + +2013-11-20 Marin Ramesa + + i386/i386/db_interface.c: add comments after else and endif + * i386/i386/db_interface.c [GNU]: Add comments after else and endif. + +2013-11-20 Marin Ramesa + + i386/i386/db_interface.c: remove return value + Void function returns with FALSE. Remove return value. + + * i386/i386/db_interface.c (db_task_name): Remove return value. + +2013-11-20 Marin Ramesa + + i386/i386/db_trace.c: fix implicit declaration of function + * i386/i386/db_trace.c: Include machine/db_interface.h. + + i386/i386/db_interface.c: fix implicit declaration of function + * i386/i386/db_interface.c: Include string.h. + + i386/i386/db_interface.c: fix implicit declaration of function + * i386/i386/db_interface.c: Include vm/vm_fault.h. + + Fix implicit declaration of function + * ddb/db_sym.c (aout_db_sym_init): Remove forward declaration. + * ddb/db_sym.h (aout_db_sym_init): Add prototype. + * i386/i386at/model_dep.c (aout_db_sym_init): Fix call. + [MACH_KDB]: Include ddb/db_sym.h. + [MACH_KDB]: Add comment after else and endif. + + kern/xpr.c: quiet warning about uninitialized variable + * kern/xpr.c (s): Initialize. + + kern/startup.c: fix implicit declaration of function + * kern/startup.c [MACH_KDB]: Include device/cons.h. + + ipc/ipc_print.h: include ipc/ipc_pset.h for ipc_pset_t + * ipc/ipc_print.h: Include ipc/ipc_pset.h for ipc_pset_t. + + ddb/db_variables.c: fix initializations from incompatible pointer type + * ddb/db_variables.c (db_set_default_thread, db_get_task_thread, db_arg_variable, fcn): Declare long return type. + + ddb/db_run.c: move declaration of brpc into SOFTWARE_SSTEP + * ddb/db_run.c (brpc): Move declaration into SOFTWARE_SSTEP code. + + ddb/db_run.c: trivial stylistic fix for consistency + * ddb/db_run.c: Trivial stylistic fix for consistency. + + ddb/db_run.c: remove set but unused variable + * ddb/db_run.c (ins): Remove variable. + + ddb: fix implicit declaration of function + * ddb/db_variables.c (db_read_write_variable): Remove forward declaration. + * ddb/db_variables.h (db_read_write_variable): Add prototype. + + ddb/db_examine.c: add missing cast + ddb/db_examine.c (addr, count): Cast to (db_expr_t *). + + Add comment + * ddb/db_command.c [DB_MACHINE_COMMANDS]: Add comment after endif. + +2013-11-20 Samuel Thibault + + Drop volatile function qualifier + * i386/i386/setjmp.h (_longjmp): Drop volatile function qualifier. + +2013-11-20 Marin Ramesa + + ddb/db_break.c: quiet GCC warning about uninitialized variable + * ddb/db_break.c (bkpt): Initialize. + +2013-11-19 Marin Ramesa + + kern/slab.c: initialize info_size + info_size is initialized to a random value. Quiet the warning by + initializing to zero. + + * kern/slab.c (info_size): Initialize to zero. + +2013-11-19 Marin Ramesa + + kern/slab.c: initialize optimal_embed + optimal_embed is initialized to a random value. Quiet the warning by + initializing to zero. + + * kern/slab.c (optimal_embed): Initialize to zero. + +2013-11-19 Marin Ramesa + + Add copyright + * ddb/db_write_cmd.h: Add copyright. + * ipc/ipc_print.h: Likewise. + * vm/vm_print.h: Likewise. + +2013-11-18 Marin Ramesa + + Add ifndefs + Finish up with the addition of ifndefs. + + * device/buf.h: Add ifndef. + * device/dev_master.h: Likewise. + * include/device/tty_status.h: Likewise. + * include/mach/version.h: Likewise. + * ipc/ipc_machdep.h: Likewise. + +2013-11-17 Marin Ramesa + + ddb/stab.h: add ifndef + * ddb/stab.h: Add ifndef. + + ddb/db_write_cmd.c: remove register qualifiers + * ddb/db_write_cmd.c: Remove register qualifiers. + + ddb/db_watch.c: remove register qualifiers + * ddb/db_watch.c: Remove register qualifiers. + + ddb/db_variables.c: remove register qualifiers + * ddb/db_variables.c: Remove register qualifiers. + + ddb/db_task_thread.c: remove register qualifiers + * ddb/db_task_thread.c: Remove register qualifiers. + + ddb/db_sym.h: add comment after endif + * ddb/db_sym.h: Add comment after endif. + + ddb/db_sym.c: remove register qualifiers + * ddb/db_sym.c: Remove register qualifiers. + + ddb/db_run.h: add ifndef + * ddb/db_run.h: Add ifndef. + + ddb/db_run.c: remove register qualifiers + * ddb/db_run.c: Remove register qualifiers. + + ddb/db_print.c: remove register qualifiers + * ddb/db_print.c: Remove register qualifiers. + + ddb/db_output.h: add ifndef + * ddb/db_output.h: Add ifndef. + + ddb/db_output.c: remove register qualifiers + * ddb/db_output.c: Remove register qualifiers. + + ddb/db_mp.c: remove register qualifier + * ddb/db_mp.c: Remove register qualifier. + + ddb/db_macro.c: remove register qualifiers + * ddb/db_macro.c: Remove register qualifiers. + + ddb/db_lex.h: add ifndef + * ddb/db_lex.h: Add ifndef. + + ddb/db_lex.c: remove register qualifiers + * ddb/db_lex.c: Remove register qualifiers. + + ddb/db_input.c: remove register qualifiers + * ddb/db_input.c: Remove register qualifiers. + + ddb/db_expr.c: remove register qualifier + * ddb/db_expr.c: Remove register qualifier. + + ddb/db_examine.c: remove register qualifiers + * ddb/db_examine.c: Remove register qualifiers. + + ddb/db_cond.c: remove register qualifiers + * ddb/db_cond.c: Remove register qualifiers. + + ddb/db_command.h: add ifndef + * ddb/db_command.h: Add ifndef. + + ddb/db_command.c: remove register qualifiers + * ddb/db_command.c: Remove register qualifiers. + + ddb/db_break.c: remove register qualifiers + * ddb/db_break.c: Remove register qualifiers. + + ddb/db_aout.c: remove register qualifiers + * ddb/db_aout.c: Remove register qualifiers. + + ddb/db_access.h: add ifndef + * ddb/db_access.h: Add ifndef. + + ddb/db_access.c: remove register qualifiers + * ddb/db_access.c: Remove register qualifiers. + +2013-11-17 Samuel Thibault + + Remove dead code + Thanks Marin Ramesa for the report. + + * i386/i386/user_ldt.c (selector_check): Remove function. + * i386/i386/user_ldt.h (S_CODE, S_STACK, S_DATA): Remove macros. + (selector_check): Remove declaration. + +2013-11-15 Marin Ramesa + + i386/intel/read_fault.c: remove register qualifier + * i386/intel/read_fault.c: Remove register qualifier. + + i386/intel/pmap.h: remove register qualifiers + * i386/intel/pmap.h: Remove register qualifiers. + + i386/intel/pmap.c: remove register qualifiers + * i386/intel/pmap.c: Remove register qualifiers. + + i386/i386at/rtc.h: remove register qualifiers + * i386/i386at/rtc.h: Remove register qualifiers. + + i386/i386at/rtc.c: remove register qualifier + * i386/i386at/rtc.c: Remove register qualifier. + + i386/i386at/lpr.c: remove register qualifier + * i386/i386at/lpr.c: Remove register qualifier. + + i386/i386at/kd_mouse.c: remove register qualifiers + * i386/i386at/kd_mouse.c: Remove register qualifiers. + + i386/i386at/kd.c: remove register qualifiers + * i386/i386at/kd.c: Remove register qualifiers. + + i386/i386at/kd_event.c: remove register qualifiers + * i386/i386at/kd_event.c: Remove register qualifiers. + + i386/i386at/int_init.h: add comment after endif + * i386/i386at/int_init.h (__ASSEMBLER__): Add comment after endif. + + i386/i386at/idt.h: add comment after endif + * i386/i386at/idt.h (__ASSEMBLER__): Add comment after endif. + + i386/i386at/com.c: remove register qualifiers + * i386/i386at/com.c: Remove register qualifiers. + + i386/i386at/com.c: trivial stylistic fix for consistency + * i386/i386at/com.c: Trivial stylistic fix for consistency. + + i386/i386at/autoconf.c: remove register qualifiers + * i386/i386at/autoconf.c: Remove register qualifiers. + + i386/i386/trap.c: remove register qualifiers + * i386/i386/trap.c: Remove register qualifiers. + + i386/i386/thread.h: add comment after endif + * i386/i386/thread.h (LINUX_DEV): Add comment after endif. + + i386/i386/pic.h: add comment after endif + * i386/i386/pic.h (__ASSEMBLER__): Add comment after endif. + + i386/i386/pcb.c: remove register qualifiers + * i386/i386/pcb.c: Remove register qualifiers. + + i386/i386/mp_desc.c: remove register qualifiers + * i386/i386/mp_desc.c: Remove register qualifiers. + + i386/i386/machine_routines.h: add comment after endif + * i386/i386/machine_routines.h (_I386_MACHINE_ROUTINES_H_): Add comment after endif. + + i386/i386/loose_ends.c: remove unused variable + * i386/i386/loose_ends.c (boothowto): Remove unused variable. + + i386/i386/loose_ends.c: add comment after endif + * i386/i386/loose_ends.c (NDEBUG): Add comment after endif. + + i386/i386/lock.h: remove register quaalifier + * i386/i386/lock.h: Remove register qualifier. + + i386/i386/kttd_interface.c: trivial stylistic fix for consistency + * i386/i386/kttd_interface.c: Trivial stylistic fix for consistency. + + i386/i386/hardclock.c: add comment after endif + * i386/i386/hardclock.c (LINUX_DEV): Add comment after endif. + + i386/i386/fpu.h: remove register qualifiers + * i386/i386/fpu.h: Remove register qualifiers. + + i386/i386/fpu.c: remove register qualifiers + * i386/i386/fpu.c: Remove register qualifiers. + + i386/i386/db_trace.c: qualify constants with const + * i386/i386/db_trace.c: Qualify constants with const. + + i386/i386/db_trace.c: remove register qualifiers + * i386/i386/db_trace.c: Remove register qualifiers. + + i386/i386/db_interface.c: remove register qualifiers + * i386/i386/db_interface.c: Remove register qualifiers. + + Fix typo + + i386/i386/vm_tuning.h: remove file + * i386/Makefrag.am: Remove i386/i386/vm_tuning.h. + * i386/i386/vm_tuning.h: Remove file. + * vm/vm_pageout.c: Don't include i386/i386/vm_tuning.h. + + i386/i386at: add ifndefs + * i386/i386at/kd_queue.h: Add ifndef. + * i386/i386at/kdsoft.h: Likewise. + * i386/i386at/lprreg.h: Likewise. + * i386/i386at/rtc.h: Likewise. + + chips/busses.c: remove register qualifiers + * chips/busses.c: Remove register qualifiers. + + chips/busses.c: use boolean instead of an int + * chips/busses.c (found): Constrain range of values to a boolean. + + vm/vm_user.c: remove register qualifiers + * vm/vm_user.c: Remove register qualifiers. + + vm/vm_resident.c: remove register qualifiers + * vm/vm_resident.c: Remove register qualifiers. + + vm/vm_pageout.c: remove register qualifiers + * vm/vm_pageout.c: Remove register qualifiers. + + vm/vm_object.c: remove register qualifiers + * vm/vm_object.c: Remove register qualifiers. + + vm/vm_map.c: remove register qualifiers + * vm/vm_map.c: Remove register qualifiers. + + vm/vm_map.c: trivial stylistic fix for consistency + * vm/vm_map.c: Trivial stylistic fix for consistency. + + vm/vm_kern.c: remove register qualifiers + * vm/vm_kern.c: Remove register qualifiers. + + vm/vm_fault.c: remove register qualifiers + * vm/vm_fault.c: Remove register qualifiers. + + vm/vm_fault.c: remove unused variable + * vm/vm_fault.c: Remove unused variable. + + vm/memory_object_proxy.h: fix definition + * vm/memory_object_proxy.h (_VM_MEMORY_OBJECT_PROXY_H_): Fix definition. + + vm/memory_object.c: remove register qualifiers + * vm/memory_object.c: Remove register qualifiers. + +2013-11-13 Marin Ramesa + + kern: remove register qualifiers + * kern/xpr.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/timer.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/timer.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/thread_swap.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/thread.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/task.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/syscall_subr.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/syscall_emulation.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/strings.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/startup.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/sched_prim.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/sched.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/queue.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/queue.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/processor.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/priority.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/printf.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/pc_sample.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/machine.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/mach_factor.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/mach_clock.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/lock_mon.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/lock.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_tt.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_sched.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_mig.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/host.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/exception.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/eventcount.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/bootstrap.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ast.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/act.c: Remove register qualifiers. + +2013-11-11 Marin Ramesa + + ipc: remove register qualifiers + * ipc/ipc_thread.h: Remove register qualifiers. + + ipc: remove register qualifiers + * ipc/mach_msg.c: Remove register qualifiers. + + ipc: qualify constants with const + * ipc/ipc_table.c: Qualify constants with const. + + ipc: trivial stylistic fix for consistency + * ipc/ipc_pset.c: Trivial stylistic fix for consistency. + +2013-11-11 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-11-11 Marin Ramesa + + ipc: remove register qualifiers + * ipc/ipc_kmsg.c: Remove register qualifiers. + +2013-11-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix the error handling in exec_load + Found using the Clang Static Analyzer. + + * kern/elf-load.c (exec_load): Properly propagate errors. + +2013-11-10 Marin Ramesa + + kern: comment unused variable + Variable reply_port is never used. There is indication in the comments + that it might be used in future function call, so comment it. + + * kern/ipc_mig.c (syscall_device_writev_request): Comment variable. + +2013-11-10 Marin Ramesa + + device: initialize to zero offset + Initialize addr to zero offset to quiet warnings about uninitialized + deallocation. + + * device/chario.c (addr): Initialize to zero. + +2013-11-10 Marin Ramesa + + remove register qualifiers + * device/subrs.c: Remove register qualifiers. + + remove register qualifiers + * device/net_io.c: Remove register qualifiers. + + remove definitions of ETHERMTU and ETHERMIN + * device/if_ether.h (ETHERMTU, ETHERMIN): Remove unused definitions. + + remove register qualifiers + * device/blkio.c: Remove register qualifiers. + +2013-11-09 Vladimir 'φ-coder/phcoder' Serbinenko + + Fix overflow in Xen clock computation + * xen/time.c (hyp_get_stime): Split `delta` into `delta_high` and + `delta_low`, as it may overflow 4 second timing nowadays. + +2013-11-09 Marin Ramesa + + Remove lint code + +2013-10-10 Richard Braun + + Increase kernel map entry pool size + * vm/vm_map.h (KENTRY_DATA_SIZE): Set to 256 pages. + +2013-10-09 Richard Braun + + VM cache policy change + This patch lets the kernel unconditionnally cache non empty unreferenced + objects instead of using a fixed arbitrary limit. As the pageout daemon + evicts pages, it collects cached objects that have become empty. The + effective result is a graceful adjustment of the number of objects + related to memory management (virtual memory objects, their associated + ports, and potentially objects maintained in the external memory + managers). Physical memory can now be almost entirely filled up with + cached pages. In addition, these cached pages are not automatically + deactivated as objects can quickly be referenced again. + + There are problems with this patch however. The first is that, on + machines with a large amount of physical memory (above 1 GiB but it also + depends on usage patterns), scalability issues are exposed. For example, + file systems which don't throttle their writeback requests can create + thread storms, strongly reducing system responsiveness. Other issues + such as linear scans of memory objects also add visible CPU overhead. + + The second is that, as most memory is used, it increases the chances of + swapping deadlocks. Applications that map large objects and quickly + cause lots of page faults can still easily bring the system to its + knees. + +2013-09-28 Samuel Thibault + + Add files missing in distrib tarball + * Makefrag.am (libkernel_a_SOURCES): Add ddb/db_write_cmd.h, + ipc/ipc_print.h, vm/vm_print.h + * linux/Makefrag.am (EXTRA_DIST): Add linux/src/drivers/scsi/FlashPoint.c, + linux/src/drivers/scsi/eata_pio_proc.c, linux/src/drivers/scsi/scsiiom.c. + +2013-09-27 Thomas Schwinge + + Merge remote-tracking branch 'savannah/master' into master + + GNU Mach 1.4. + * version.m4 (AC_PACKAGE_VERSION): Set to 1.4. + * NEWS: Finalize changes for 1.4. + * README: Update. + + * configure.ac (AM_INIT_AUTOMAKE): Add dist-bzip2. + + Generate ChangeLog files for distributions. + * gitlog-to-changelog: New file; import from gnulib's + 9fc81090f6c5590bd1b0e0fa5087577a2ee43a3e:build-aux/gitlog-to-changelog. + * Makefile.am (gen-ChangeLog): New target. + (dist-hook): Depend on it. + + dist-hook extensibility. + * Makefile.am (dist-hook): Rename to... + (dist-rm-CVS): ... this new target. + (dist-hook): Depend on it. + + * README: Simplify build instructions. + Follow-up to commit 471e5b080f7790c2cf95e3069d9fed1173c9ec17. + +2013-09-27 Svante Signell + + Fix typo + * README: Fix typo. + +2013-09-26 Samuel Thibault + + Fix gpl.texi build + texinfo does not support @heading/@center in the middle of an enumerate. + + * doc/gpl.texi: Move "NO WARRANTY" to item heading. + +2013-09-26 Samuel Thibault + + Really update README + * README: Network drivers are actually enabled by default. + + Update README + * README: Update default drivers notice. Mention cross-compilation flags + for 64bit systems. + +2013-09-24 Samuel Thibault + + Drop Invariant, Front-Cover and Back-Cover references + The referenced Invariant sections does not exist, and the front and back + covers do not hold much information. + +2013-09-22 Marin Ramesa + + device: remove unused file dk_label.c + * device/dk_label.c: Remove file. + +2013-09-21 Marin Ramesa + + add comments after endifs + * device/ds_routines.c [CONFIG_PCMCIA, CONFIG_INET, LINUX_DEV, MACH_HYP]: Add comments after endifs. + + remove lint code + * device/ds_routines.c [lint]: Remove ifdefs and associated code. + + remove register qualifiers + * device/ds_routines.c: Remove register qualifiers. + + remove lint code + * device/dev_pager.c [lint]: Remove ifdefs and associated code. + + Coding style trivial fixes + + remove register qualifiers + * device/dev_pager.c: Remove register qualifiers. + +2013-09-16 Marin Ramesa + + another small change in style for consistency + * device/dev_name.c: Change in coding style. + +2013-09-16 Marin Ramesa + + use boolean_t instead of an int + Variable 'found' already receives values TRUE and FALSE, so why not make + it a boolean. + + * device/dev_name.c: Use boolean_t instead of an int. + +2013-09-16 Marin Ramesa + + remove preprocessor comments + The first one is a message that name lookup has been called, which + I think is safe to remove, or maybe add #if DEBUG. Second one is a + alternate calculation that I doubt it will ever be used, so I think + it's safe to remove it. + + * device/dev_name.c: Remove preprocessor comments. + +2013-09-16 Marin Ramesa + + another small change in style for consistency + * device/dev_name.c: Change in coding style. + + small style changes for consistency + * device/dev_name: Changes in coding style. + + remove register qualifiers + * device/dev_name.c: Remove register qualifiers. + +2013-09-15 Marin Ramesa + + remove definition of NDEVICES + NDEVICES is never used. Judging by the position and the comments + it was once used in initialization, but it's not anymore. I think + it's safe to remove it. + + * device/dev_lookup.c (NDEVICES): Remove definition. + +2013-09-15 Marin Ramesa + + remove register qualifiers + * device/dev_lookup.c: Remove register qualifiers. + +2013-09-11 Marin Ramesa + + remove register qualifiers. + * device/cirbuf.c: Remove register qualifiers. + +2013-09-11 Marin Ramesa + + track the console init with a boolean instead of an int + A variable that keeps track if the console init has been called. It should + never receive values other than 0 and 1, so constrain it's possible range of + values to a boolean. + + * device/cons.c (cn_inited): Use boolean_t instead of an int. + +2013-09-11 Marin Ramesa + + track the console buffer usage with a boolean instead of an int + A variable that keeps track of the console buffer usage should never receive + values other than 0 and 1, so constrain it's value range to boolean. Plus, it's + more readable this way. + + * device/cons.c (consbufused): Use boolean_t instead of an int. + +2013-09-11 Marin Ramesa + + drop unused CONSMAJOR + CONSMAJOR is never used. I'm guessing that in the past it was + a part of some problematic code. I don't see a reason to keep + it's definition. + + * device/cons.h (CONSMAJOR): Remove definition. + +2013-09-09 Marin Ramesa + + Remove register qualifiers + * device/chario.c: Remove register qualifiers. + + Add const qualifiers. + * device/chario.c (tty_inq_size, tty_outq_size): Qualify constants as const. + + Drop useless forward declaration + * device/chario.c (tty_flush): Remove forward declaration (prototype is in tty.h). + + Drop luna88k bits + * device/tty.h [luna88k]: Remove ifdef and include for nonexistent header files. + * kern/debug.c: Remove check for luna88k. + +2013-08-28 Samuel Thibault + + Drop FXSR initialization message + * i386/i386/fpu.c (init_fpu): Drop FXSR initialization message + +2013-07-18 Marin Ramesa + + kern: add missing prototype + * kern/lock.h (db_show_all_slocks): Add prototype. + + ipc: organize ipc print function prototypes + * ipc/ipc_print.h: New file. + [MACH_KDB] Include . + [MACH_KDB] Include . + [MACH_KDB] Include . + (ipc_port_print): Add prototype. + (ipc_pset_print): Likewise. + (ipc_kmsg_print): Likewise. + (ipc_msg_print): Likewise. + * ipc/ipc_port.h (ipc_port_print): Remove prototype. + * ipc/ipc_port.c [MACH_KDB]: Include . + * ipc/ipc_pset.h (ipc_pset_print): Remove prototype. + * ipc/ipc_pset.c [MACH_KDB]: Include . + * ipc/ipc_kmsg.c [MACH_KDB]: Include . + + vm: organize vm print function prototypes + * vm/vm_print.h: New file. + Include . + Include . + (vm_map_print): Add prototype. + (vm_map_copy_print): Likewise. + (vm_object_print): Likewise. + (vm_page_print): Likewise. + Include . + Include + * vm/vm_map.h (vm_map_print): Remove prototype. + * vm/vm_map.c [MACH_KDB]: Include . + * vm/vm_object.h (vm_object_print): Remove prototype. + * vm/vm_object.c [MACH_KDB]: Include . + * vm/vm_resident.c [MACH_KDB]: Include . + + ddb: cleanup db_command.c + * ddb/db_command.c (_longjmp): Remove prototype. + (vm_map_print): Likewise. + (vm_object_print): Likewise. + (vm_page_print): Likewise. + (vm_map_copy_print): Likewise. + (ipc_port_print): Likewise. + (ipc_pset_print): Likewise. + (db_show_all_slocks): Likewise. + (ipc_kmsg_print): Likewise. + (ipc_msg_print): Likewise. + Include . + Include . + Include . + * i386/i386/setjmp.h [__GNUC__] (_longjmp): Add prototype. + +2013-07-07 Marin Ramesa + + fix implicit declarations + * ddb/db_trap.c: Include . + * i386/i386/setjmp.h (_setjmp): Add prototype. + +2013-07-07 Samuel Thibault + + Restore db_help_cmd + * ddb/db_command.c (db_help_cmd): Restore function. + +2013-07-06 Marin Ramesa + + ddb: cleanup db_command.c + * ddb/db_write_cmd.h: New file. + (db_write_cmd): Add prototype. + Include . + Include . + * ddb/db_break.h (db_listbreak_cmd): Add prototype. + (db_delete_cmd): Likewise. + (db_breakpoint_cmd): Likewise. + * ddb/db_watch.h (db_listwatch_cmd): Likewise. + (db_deletewatch_cmd): Likewise. + (db_watchpoint_cmd): Likewise. + * ddb/db_print.h (db_show_one_thread): Likewise. + (db_show_all_threads): Likewise. + * ddb/db_examine.h (db_print_cmd): Likewise. + (db_examine_forward): Likewise. + (db_examine_backward): Likewise. + (db_search_cmd): Likewise. + * ddb/db_variables.h (db_set_cmd): Likewise. + * ddb/db_run.h (db_trace_until_call_cmd): Likewise. + (db_trace_until_matching_cmd): Likewise. + (db_continue_cmd): Likewise. + * ddb/db_command.h (db_fncall): Likewise. + * ddb/db_command.c: Include . + Include . + Include . + Include . + Include . + Include . + (db_listbreak_cmd): Remove prototype. + (db_listwatch_cmd): Likewise. + (db_show_one_thread): Likewise. + (db_show_all_threads): Likewise. + (db_show_macro): Likewise. + (db_show_help): Likewise. + (db_print_cmd): Likewise. + (db_examine_cmd): Likewise. + (db_set_cmd): Likewise. + (db_examine_forward): Likewise. + (db_examine_backward): Likewise. + (db_search_cmd): Likewise. + (db_write_cmd): Likewise. + (db_delete_cmd): Likewise. + (db_breakpoint_cmd): Likewise. + (db_deletewatch_cmd): Likewise. + (db_watchpoint_cmd): Likewise. + (db_single_step_cmd): Likewise. + (db_trace_until_call_cmd): Likewise. + (db_trace_until_matching_cmd): Likewise. + (db_continue_cmd): Likewise. + (db_cond_cmd): Likewise. + (db_help_cmd): Likewise. + (db_def_macro_cmd): Likewise. + (db_del_macro_cmd): Likewise. + (db_fncall): Likewise. + +2013-07-05 Marin Ramesa + + ddb: use and cleanup db_print.h + * ddb/db_command.c: Include db_print.h. + Remove extern db_show_regs(). + Remove extern db_show_one_task(). + Remove extern db_show_port_id(). + * ddb/db_print.c: Include db_print.h + * ddb/db_print.h (db_show_all_acts): Remove prototype. + (db_show_one_act): Likewise. + (db_show_shuttle): Likewise. + (db_show_one_task_vm): Likewise. + (db_show_all_task_vm): Likewise. + (db_show_one_space): Likewise. + (db_show_all_spaces): Likewise. + (db_sys): Likewise. + (db_port_kmsg_count): Likewise. + (db_show_one_simple_lock): Likewise. + (db_show_one_mutex): Likewise. + (db_show_subsystem): Likewise. + (db_show_runq): Likewise. + +2013-07-04 Marin Ramesa + + ddb: fix implicit declarations + * ddb/db_break.c: Include ddb/db_access.h. + * ddb/db_examine.h (db_xcdump): Add prototype. + * ddb/db_ext_symtab.c: Include vm/vm_user.h. + * ddb/db_input.c: Include device/cons.h. + * ddb/db_output.c: Likewise. + +2013-06-29 Marin Ramesa + + (slab_info): fix format warnings + * kern/slab.c (slab_info): Fix format for vm_size_t. + + Add device_pager_setup prototype + * device/ds_routines.h (device_pager_setup): Add prototype. + + Add [nh]to[hn][ls] prototypes + * device/net_io.h (ntohl, htonl, ntohs, htons): Add prototypes. + +2013-06-29 Samuel Thibault + + Fix int/long discrepancy + * device/net_io.c (bpf_match): Make the `keys' parameter a pointer to + unsigned int instead of unsigned long. + (bpf_do_filter): Make `A', `B' and `mem' unsigned ints instead of unsigned + longs. Also turn long casts into int casts. + +2013-06-24 Samuel Thibault + + Add partitioning reload support to ahci + * linux/dev/drivers/block/ahci.c (port): Add `gd' field. + (ahci_ioctl): New function. + (ahci_fops): Fill `ioctl' field with `ahci_ioctl'. + (ahci_probe_pci): Fill `gd' field with `gd'. + + Fix printing ahci PCI dev and fun + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Compute `dev' and `fun' + earlier so they can be printed. + +2013-06-10 Samuel Thibault + + Add missing 4KiB memory + * i386/i386at/model_dep.c (init_alloc_aligned): Let allocated area last + until end of memory map. + + Add non-contiguous mmap support + * i386/include/mach/i386/multiboot.h (multiboot_mmap): New structure + * i386/i386at/model_dep.c (mem_size_init): Parse boot_info.mmap_addr if + available. + (init_alloc_aligned): Likewise. + +2013-06-09 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-06-09 Samuel Thibault + + Do not skip AHCI controller without HOST_CAP_ONLY + We rather rely on the announced PCI type to determine whether to use IDE or + AHCI. + + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Do not skip AHCI + controller without HOST_CAP_ONLY. + +2013-06-09 Samuel Thibault + + Add timeout to ahci IDENTIFY + * linux/dev/drivers/block/ahci.c (identify_timeout): New function. + (identify_timer): New variable. + (ahci_probe_port): Add timer to abandon identify command. + + Fix printf format + * linux/dev/drivers/block/ahci.c (ahci_do_request): Cast capacity into unsigned + long and use %lu format. + (ahci_probe_port): Cast size into unsigned and use %u format. + + Fix format + +2013-06-09 Richard Braun + + Fix object construction in the slab allocator + There is currently no actual use of constructors, which is why this bug has + been long overlooked. + + * kern/slab.c (kmem_cpu_pool_fill): Call constructor on buffers unless + verification is enabled for the cache, or the constructor is NULL. + +2013-06-04 Marin Ramesa + + Comment unused variable + * kern/ipc_mig.c (syscall_device_write_request): Comment unused variable. + +2013-06-04 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-06-04 Miguel Figueiredo + + Fix format warnings + * vm/vm_resident.c (pmap_startup): Fix printf format. + * xen/block.c (hyp_block_init, device_write): Likewise. + * xen/net.c (hyp_net_init): Likewise. + +2013-06-02 Miguel Figueiredo + + Remove unused variable + * kern/act.c (act_create): Remove unused variable. + +2013-06-02 Richard Braun + + Fix yet another locking error in the slab allocator + * kern/slab.c (kmem_cache_free): Relock cache before retrying releasing + an object to the CPU pool layer. + +2013-06-02 Miguel Figueiredo + + Remove unused variable + * ipc/mach_port.c (mach_port_set_syscall_right): Remove unused variable. + +2013-05-30 Samuel Thibault + + Add LBA48 support to AHCI driver + * linux/dev/drivers/block/ahci.c (port): Extend `capacity' field type to + unsigned long long. Add `lba48' field. Make `identify' field unsigned. + (ahci_do_port_request): When `lba48' is true, use WIN_READDMA_EXT and + WIN_WRITEDMA_EXT commands. + (ahci_probe_port): Test lba48 flag, read capacity and set `lba48' + accordingly. Display size in GiB above 10GiB. + * linux/src/include/linux/hdreg.h (WIN_READDMA_EXT, WIN_WRITEDMA_EXT): New + macros + (hd_driveid): Add `command_set_2' and lba_capacity_2' fields. + +2013-05-27 Miguel Figueiredo + + Remove old elevator algorithm function + * device/blkio.c (disksort): remove unused function + +2013-05-19 Miguel Figueiredo + + Remove unneeded variable initialization + * kern/thread.c (thread_force_terminate): Remove unneeded variable + initialization. + +2013-05-19 Samuel Thibault + + Remove duplicate line + Reported by Miguel Figueiredo + + * kern/thread.c (thread_create): Remove duplicate reset of + new_thread->pc_sample.buffer to 0. + +2013-05-16 Richard Braun + + Reduce fragmentation in the slab allocator + This reverts a change brought when reworking slab lists handling that made + the allocator store slabs in LIFO order, whatever their reference count. + While it's fine for free slabs, it actually increased fragmentation for + partial slabs. + + * kern/slab.c (kmem_cache_alloc_from_slab): Insert slabs that become partial + at the end of the partial slabs list. + +2013-05-16 Richard Braun + + Rename list_insert to list_insert_head + This change increases clarity. + + * kern/list.h (list_insert): Rename to ... + (list_insert_head): ... this. + * kern/slab.c: Update calls to list_insert. + +2013-05-15 Richard Braun + + Fix itemization errors in the texinfo documentation + * doc/mach.texi: Replace @itemx with @item for --enable-tulip and + --enable-epic100. + +2013-05-13 Miguel Figueiredo + + Drop unused variables + * kern/slab.c (kalloc_init): Remove unused variables. + +2013-05-11 Samuel Thibault + + Add missing parameters to printf + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Add missing parameters to + printf. + +2013-05-10 Samuel Thibault + + Fix ahci.h path + * linux/Makefrag.am (liblinux_a_SOURCES): Fix path to ahci.h + + Add AHCI driver + * linux/dev/glue/kmem.c (vmtophys): New function. + * linux/dev/include/linux/mm.h (vmtophys): New prototype. + * linux/src/include/linux/pci.h (PCI_CLASS_STORAGE_SATA, + PCI_CLASS_STORAGE_SATA_AHCI): New macros. + * linux/dev/drivers/block/ahci.c: New file. + * linux/dev/include/ahci.h: New file. + * linux/Makefrag.am (liblinux_a_SOURCES): Add linux/dev/drivers/block/ahci.c + and linux/dev/drivers/block/ahci.h. + * linux/src/drivers/block/ide.c: Include . + (probe_for_hwifs): Call ahci_probe_pci. + +2013-05-02 Samuel Thibault + + Fix non-block-aligned-offset reads + This fixes grave issues when device_read is called with non-block-aligned + offset, e.g. when using grub-probe with a non-block-aligned partition table. + + * linux/dev/glue/block.c (rdwr_full): Use current position instead of base + buffer position to check for alignment. + +2013-05-01 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix macro name + * linux/dev/glue/block.c (device_get_status): Use + DEV_GET_RECORDS_RECORD_SIZE for DEV_GET_RECORDS instead of + DEV_GET_SIZE_RECORD_SIZE. + +2013-04-21 Richard Braun + + Optimize slab reaping + Instead of walking the list of free slabs while holding the cache lock, + detach the list from the cache and directly compute the final count values, + and destroy slabs after releasing the cache lock. + + * kern/slab.c (kmem_cache_reap): Optimize. + +2013-04-21 Richard Braun + + Rework slab lists handling + Don't enforce strong ordering of partial slabs. Separating partial slabs + from free slabs is already effective against fragmentation, and sorting + would sometimes cause pathological scalability issues. In addition, store + new slabs (whether free or partial) in LIFO order for better cache usage. + + * kern/slab.c (kmem_cache_grow): Insert new slab at the head of the slabs list. + (kmem_cache_alloc_from_slab): Likewise. In addition, don't sort partial slabs. + (kmem_cache_free_to_slab): Likewise. + * kern/slab.h: Remove comment about partial slabs sorting. + +2013-04-21 Richard Braun + + Fix locking error in the slab allocator + * kern/slab.c (kmem_cache_free): Lock cache before releasing an object to + the slab layer. + +2013-04-08 Samuel Thibault + + Add -fno-optimize-sibling-calls option for better kdb traces + * Makefrag.am (AM_CFLAGS) [enable_kdb]: Add -fno-optimize-sibling-calls + option. + +2013-03-11 Samuel Thibault + + Update BASEPRI_USER + * kern/sched.h (BASEPRI_USER): Increase to 25. + + Fix build without kdb + * i386/i386/db_interface.h [! MACH_KBD] (db_set_hw_watchpoint, + db_clear_hw_watchpoint, db_dr): Do not declare functions. + +2013-03-06 Samuel Thibault + + Increase number of priorities + * kern/sched.h (NRQS): Increase to 50. + +2013-03-05 Samuel Thibault + + Do not hardcode maximum priority value + * kern/sched_prim.c (do_priority_computation): Replace 31 with NRQS - 1. + idle_thread: Likewise. + +2013-02-04 Samuel Thibault + + Include machine/db_interface instead of hardcoding function prototypes + * ddb/db_access.c: Include . + (db_read_bytes, db_write_bytes): Remove functions prototypes. + (db_get_task_value): Fix calling db_read_bytes. + (db_put_task_value): Fix calling db_write_bytes. + * ddb/db_watch.c: Include . + (db_set_hw_watchpoint, db_clear_hw_watchpoint): Remove functions prototypes. + +2013-02-04 Samuel Thibault + + Plug hw debug register support into kdb + Make the `watch' command use hw debug registers whenever possible. + + * ddb/db_watch.c (db_set_hw_watchpoint, db_clear_hw_watchpoint): Add + functions prototypes. + (db_set_watchpoints): Try to call db_set_hw_watchpoint. + (db_clear_watchpoints): Call db_clear_hw_watchpoint. + * i386/i386/db_interface.c: Include + (db_set_hw_watchpoint): Take a db_watchpoint_t WATCH parameter instead of + its content. Remove support for clearing a debug register. + (db_clear_hw_watchpoint): Add function. + * i386/i386/db_interface.h: Include . + (db_set_hw_watchpoint): Fix function prototype. + (db_clear_hw_watchpoint): Add function prototype. + * i386/i386/db_machdep.h: Do not include + +2013-02-04 Samuel Thibault + + Document dwatch + * doc/mach.texi: Add dwatch documentation. + +2013-02-04 Samuel Thibault + + Add x86 hardware debugging register support + This adds using the x86 hardware debugging registers, either from the kernel + through db_set_hw_watchpoint, or from userland through i386_DEBUG_STATE. + While the kernel is using the registers, the userland values are ignored. + + * i386/i386/db_interface.c (kernel_dr, ids): New variables. + (db_load_context, db_get_debug_state, db_set_debug_state, db_dr, + db_set_hw_watchpoint): New functions. + (kdb_trap): Use get_dr* instead of dr_addr[]. + * i386/i386/db_interface.h (db_user_to_kernel_address, db_set_hw_watchpoint) + (db_dr, db_get_debug_state, db_set_debug_state, db_load_context): Add functions + prototypes. + (dr0, dr1, dr2, dr3): Remove functions prototypes. + * i386/i386/locore.S (dr6, dr0, dr1, dr2, dr3): Remove functions. + (dr_msk, dr_addr): Remove variables. + * i386/include/mach/i386/thread_status.h (i386_DEBUG_STATE): Add macro. + (i386_debug_state): Add structure. + (i386_DEBUG_STATE_COUNT): Add macro. + * i386/i386/thread.h: Include . + (i386_machine_state): Add `struct i386_debug_state ids' field. + * i386/i386/pcb.c: Include . + (switch_ktss): Call db_load_context. + (thread_setstatus, thread_getstatus): Add I386_DEBUG_STATE case. + * i386/i386/proc_reg.h (get_dr0, set_dr0, get_dr1, set_dr1, get_dr2, + set_dr2, get_dr3, set_dr3, get_dr6, set_dr6, get_dr7, set_dr7): Add macros. + +2013-02-03 Samuel Thibault + + Prevent the kernel from making any FPU use + * i386/Makefrag.am (AM_CFLAGS): Add -mno-3dnow -mno-mmx -mno-sse -mno-sse2. + +2013-01-31 Samuel Thibault + + Implement pmap_map_mfn for the PVH case + * i386/intel/pmap.c (pmap_map_mfn) [MACH_XEN && !MACH_PV_PAGETABLES]: + Implement. + + Make the PVH variant get sure that the support is available in the hypervisor + * i386/xen/xen_boothdr.S (FEATURES): Mark PVH features as required. + +2013-01-30 Samuel Thibault + + Add comment for TODO + + Do not use 4gb segment assistance in PVH + * i386/i386/gdt.c (gdt_init) [MACH_PV_DESCRIPTORS && !MACH_PV_PAGETABLES]: + Do not enable VMASST_TYPE_4gb_segments. + * i386/i386/trap.c (user_trap): Do not handle trap 15, 4gb segment + assist notification. + + Drop spurious inclusion + * i386/i386/vm_param.h [MACH_XEN && !MACH_PV_PAGETABLES]: Do not include + . + + Increase VM_MAX_KERNEL_ADDRESS for PVH case + * i386/i386/vm_param.h (VM_MAX_KERNEL_ADDRESS) [MACH_XEN && + !MACH_PV_PAGETABLES]: Remove hypervisor area from VM_MAX_KERNEL_ADDRESS + restriction. + +2013-01-28 Samuel Thibault + + More ifdef fixes for ring1 support and pv descriptors support + * i386/i386/idt_inittab.S: Turn MACH_XEN test into MACH_PV_DESCRIPTORS test. + * i386/i386/fpu.c: Turn appropriate MACH_HYP/XEN tests into MACH_RING1 tests. + * i386/i386/ktss.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/proc_reg.h: Likewise. + * i386/i386/trap.c: Likewise. + + Add initial code for disabling PV pagetables + * xen/configfrag.ac (--disable-pv-pagetables): Add option. + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_PV_PAGETABLES]: Add + writable_page_tables. + * i386/i386/gdt.c: Turn appropriate MACH_XEN/MACH_HYP tests into + MACH_PV_PAGETABLES tests. + * i386/i386/i386asm.sym: Likewise + * i386/i386/ldt.c: Likewise + * i386/i386/locore.S: Likewise + * i386/i386/proc_reg.h: Likewise + * i386/i386/user_ldt.c: Likewise + * i386/i386/vm_param.h: Likewise + * i386/i386/xen.h: Likewise + * i386/i386at/model_dep.c: Likewise + * i386/intel/pmap.h: Likewise + * include/mach/xen.h: Likewise + * xen/console.c: Likewise + * xen/store.c: Likewise + * i386/intel/pmap.c: Likewise. Define pmap_map_mfn as TODO stub. + + Fix comments + + Fix build with --disable-pseudo-phys + * i386/i386/i386asm.sym (PFN_LIST) [!MACH_PSEUDO_PHYS]: Do not define. + + Add initial code for disabling ring1 xen execution + * xen/configfrag.ac (--disable-ring1): Add option. + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_RING1]: Add + supervisor_mode_kernel. + * i386/i386/seg.h (KERNEL_RING) [!MACH_RING1]: Set macro to 0. + + Add initial code for disabling PV descriptors + * xen/configfrag.ac (--disable-pv-descriptors): Add option + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_PV_DESCRIPTORS]: Add + writable_descriptor_tables. + * i386/i386/gdt.c: Turn appropriate MACH_XEN/MACH_HYP tests into + MACH_PV_DESCRIPTORS tests. + * i386/i386/gdt.h: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/idt.c: Likewise. + * i386/i386/idt_inittab.S: Likewise. + * i386/i386/ldt.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386/user_ldt.c: Likewise. + * i386/i386/user_ldt.h: Likewise. + +2013-01-22 Richard Braun + + Add the mach_print debugging system call + The purpose of this system call is to help debugging in situations where + it's desirable to bypass the mach_msg call entirely. + + * include/mach/syscall_sw.h (mach_print): Generate system call code. + * kern/syscall_subr.c: Include . + [MACH_KDB] (mach_print): New function. + * kern/syscall_subr.h (mach_print): New prototype. + * kern/syscall_sw.c [MACH_KDB] (mach_trap_table): Declare mach_print + system call. + +2013-01-13 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix task stats incrementations + * vm/vm_fault.c (vm_fault_page): Properly increment + current_task()->zero_fills and cow_faults. + +2013-01-13 David Höppner <0xffea@gmail.com> + + Add statistics for task_events_info + * ipc/ipc_mqueue.c (ipc_mqueue_send, ipc_mqueue_receive): Increment + counters for message sent and received. + * kern/ipc_kobject.c (ipc_kobject_server): Increment sent and received + counters for the kernel task. + * kern/task.c (task_create): Zero statistics. + * kern/task.c (task_info): Add task_events_info call. + * kern/task.h: Add statistics. + * vm/vm_fault.c (vm_fault_page): Increment zero_fills, pageins, + reactivations and cow_faults counters. + * vm/vm_fault.c (vm_fault_wire_fast): Increment faults counters. + * vm/vm_pageout.c (vm_pageout_scan): Increment reactivations counter. + +2013-01-08 Richard Braun + + Fix slab cache list locking + This problem was overlooked because of simple locks being no-ops. + + * kern/slab.c (slab_collect): Fix lock name to kmem_cache_list_lock. + (host_slab_info): Likewise. + +2013-01-08 Richard Braun + + Add function to dump a raw summary of the slab allocator state + The purpose of this function is to allow kernel code to display the state + of the slab caches in situations where the host_slab_info RPC wouldn't be + available, e.g. before a panic. + + * kern/slab.c (slab_info): New function. + * kern/slab.h: Add declaration for slab_info. + +2013-01-06 Samuel Thibault + + Double KENTRY_DATA_SIZE + * vm/vm_map.h (KENTRY_DATA_SIZE): Bump from 32 pages to 64 pages. + +2013-01-04 David Höppner <0xffea@gmail.com> + + Fix compilation warning implicit function declaration kdbprintf + When kernel debugger support is requested ipc and vm need + the prototype for the debugger function kdbprintf. + + * ddb/db_output.h: Add prototype for kdbprintf. + * ipc/ipc_object.c: Add include file ddb/db_output.h + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2012-12-27 Samuel Thibault + + Fix slow boot in virtualbox + By disabling some of the most slow drivers by default, and giving progress + feedback to the user. + + * linux/configfrag.ac (CONFIG_SCSI_NCR53C7xx, CONFIG_SCSI_AIC7XXX, + CONFIG_SCSI_GDTH): Disable by default + * linux/src/drivers/scsi/eata.c (__initfunc): Don't feed line in probe + message. + * linux/src/drivers/scsi/hosts.c (scsi_init): Print SCSI probe progress. + +2012-12-27 Samuel Thibault + + Fix spurious error on accessing fd1 + Cherry picked from Linux kernel commit 76c25284e0d845bff4ee1031721556148af4db1c + + * linux/dev/drivers/block/floppy.c (config_types): Clear from + `allowed_drive_mask' floppy drives whose cmos type is 0. + +2012-12-23 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2012-12-23 Samuel Thibault + + Make thread_suspend wait for !TH_UNINT + 0a55db5 made thread_suspend return KERN_FAILURE when the target thread is in + TH_UNINT state. That however is not currently handled by libc, and it's more + useful to just wait for the thread to get interruptible. + + * kern/sched_prim.c (thread_invoke): Wake NEW_THREAD->STATE for thread_suspend. + * kern/thread.c (thread_suspend): Wait on NEW_THREAD->STATE as long as THREAD + has TH_UNINT. + +2012-12-21 David S. Miller + + ide: Increase WAIT_DRQ to accomodate some CF cards and SSD drives. + Based upon a patch by Philippe De Muyter, and feedback from Mark + Lord and Robert Hancock. + + As noted by Mark Lord, the outdated ATA1 spec specifies a 20msec + timeout for setting DRQ but lots of common devices overshoot this. + + (cherry picked from Linux kernel commit 602da297e293eb2cbd28dcdbbe247593a46a853a) + + * linux/src/drivers/block/ide.h (WAIT_DRQ): Increase to 1 s. + +2012-12-21 Thomas Schwinge + + IDE disk drives with unusual C/H/S. + * linux/src/drivers/block/ide.c: Partially update to Linux 2.0.40 code. + +2012-12-05 Richard Braun + + Fix kernel task creation time + The mapable_time_init function is called before machine_init, but the + latter sets the system boot time. Fix their calling order. + + * kern/startup.c (setup_main): Call machine_init before mapable_time_init. + +2012-12-04 Richard Braun + + Strongly reduce risks of name capture in rbtree macros + * kern/rbtree.h (rbtree_lookup): Prefix local variable names with three + underscores. + (rbtree_lookup_nearest): Likewise. + (rbtree_insert): Likewise. + (rbtree_lookup_slot): Likewise. + (rbtree_insert_slot): Rewrite as an inline function. + +2012-11-21 Richard Braun + + Fix calls to vm_map when size is 0 + * vm/vm_map.c (vm_map_enter): return KERN_INVALID_ARGUMENT if size is 0. + * vm/vm_user.c (vm_map): Likewise. + +2012-11-19 Matthew Leach + + Fix compilation error with older versions of GCC + Some versions of GCC will error if you define a type twice (even if + the definition is the same). The NCR53C8XX SCSI driver defines + 'vm_offset_t', this is also defined in vm_types.h and will therefore + cause a compilation error depending on the GCC version. + + * linux/src/drivers/scsi/ncr53c8xx.c [!MACH] (vm_offset_t, vm_size_t): Don't + define types. + +2012-09-23 Samuel Thibault + + Fix gnumach_server_routine prototype + * kern/ipc_kobject.c (ipc_kobject_server): Set gnumach_server_routine + prototype to mig_routine_t. + +2012-09-23 Richard Braun + + Add missing file for page statistics + * kern/gnumach.srv: New file. + + Add missing file for page statistics + * include/mach/vm_cache_statistics.h: New file + +2012-09-23 Gianluca Guida + + Fix panic on irq >= 16 + * linux/src/drivers/net/pci-scan.c (pci_drv_register): Skip device + if we are getting an invalid IRQ >= 16 and different from 255 (it + happens in some motherboard). + +2012-09-23 Sergio Lopez + + Update DMA auto-enabling, make forcing DMA an option + * linux/configfrag.ac (--enable-ide-forcedma): Add option. + * linux/src/drivers/block/ide.c (ide_probe_promise_20246): Do not call + ide_init_promise. + (probe_for_hwifs): Add SI, VIA, AL PCI probing. + * linux/src/drivers/block/ide.h (hwif_chipset_t): Add hpt343, udma and + ultra66 chipsets. + * linux/src/drivers/block/triton.c: Update to upstream 1.14 version. + * linux/src/include/linux/hdreg.h (HDIO_GET_IDENTITY): Rename to ... + (HDIO_OBSOLETE_IDENTITY): ... new macro. + (HDIO_GET_IDENTITY): New macro. + (hd_driveid): Add fields for extended identification. + +2012-09-23 Alexey Dejneka + + Fix CDROM door unlock on closure without device_close + * linux/dev/glue/block.c + (device_open): Properly return devp on multiple opens. + (device_close_forced): Renamed from device_close, when force parameter is 1, do + not wait for open_count to become 0 before closing. + (device_close): New function. + (device_no_senders): New function. + linux_block_emulation_ops: Use (device_no_senders). + +2012-09-23 Richard Braun + + Provide basic page cache statistics + * Makefrag.am (EXTRA_DIST): Add kern/gnumach.srv. + (include_mach_HEADERS): Add include/mach/gnumach.defs and + include/mach/vm_cache_statistics.h + (nodist_libkernel_a_SOURCES): Add kern/gnumach.server.defs.c, + kern/gnumach.server.h, kern/gnumach.server.c, kern/gnumach.server.msgids, + kern/gnumach.server.defs. + * include/mach/mach_types.h: Add #include . + * kern/ipc_kobject.c (ipc_kobject_server): Declare and call + gnumach_server_routine. + * vm/vm_object.c (vm_object_cached_pages): New variable. + (vm_object_cached_pages_lock_data): Likewise. + (vm_object_deallocate): Update number of cached pages. + (vm_object_lookup): Likewise. + (vm_object_lookup_name): Likewise. + (vm_object_destroy): Likewise. + (vm_object_enter): Likewise. + * vm/vm_object.h (ref_count): Declare as int. + (resident_page_count): Likewise. + (vm_object_cached_count): Add extern declaration. + (vm_object_cached_pages): Likewise. + (vm_object_cached_pages_lock_data): Likewise. + (vm_object_cached_pages_update): New macro. + * vm/vm_resident.c (vm_page_insert): Assert resident page count doesn't + overflow, update number of cached pages as appropriate. + (vm_page_replace): Likewise. + (vm_page_remove): Update number of cached pages as appropriate. + * vm/vm_user.c: Add #include . + (vm_cache_statistics): New function. + * vm/vm_user.h: Add #include . + (vm_cache_statistics): New declaration. + * include/mach/gnumach.defs: New file. + +2012-08-24 Richard Braun + + Store threads waiting on a message queue in LIFO order + * ipc/ipc_thread.h (ipc_thread_enqueue_macro): Insert thread at the + head of the list instead of the tail. + +2012-07-14 Samuel Thibault + + Fix Xen boot at linear address 0xC0000000 + * i386/intel/pmap.c (pmap_bootstrap): Interate over linear addresses and compute + l3 and l2 offsets from it instead of assuming nul l3 offset. + +2012-07-08 Richard Braun + + Fix slab collection timing + The slab garbage collector uses sched_tick as its time reference, which + is increased every seconds, while the interval is expressed in clock + ticks. Use the proper time reference instead. + + * kern/slab.c (kmem_gc_last_tick): Declare as unsigned long. + (slab_collect): Use elapsed_ticks instead of sched_tick. + +2012-07-08 Richard Braun + + Increase the slab collection interval + * kern/slab.c (KMEM_GC_INTERVAL): Increase to 5 seconds. + +2012-07-07 Richard Braun + + Allocate kernel thread stacks out of kmem_map + The kernel submaps eat most of the available kernel space. Using the + main kernel map for thread stacks sometimes lead to exhaustion when many + threads are created. Use kmem_map instead to increase this limit. + + * kern/thread.c (stack_alloc): Use kmem_map instead of kernel_map for + stack allocation. + (stack_collect): Likewise for release. + +2012-07-07 Richard Braun + + Merge kalloc_map into kmem_map + * ipc/ipc_table.c: Add #include . + (ipc_table_alloc): Use kmem_map instead of kalloc_map when allocating + a table. + (ipc_table_realloc): Likewise for reallocation. + (ipc_table_free): Likewise for release. + * kern/kalloc.h (kalloc_map): Remove declaration. + * kern/slab.c (KMEM_MAP_SIZE): Increase to 128 MiB. + (KALLOC_MAP_SIZE): Remove macro. + (kalloc_map_store): Remove variable. + (kalloc_map): Likewise. + (kalloc_pagealloc): Use kmem_map instead of kalloc_map for general + purpose allocations. + (kalloc_pagefree): Likewise. + (kalloc_init): Remove the creation of kalloc_map. + +2012-06-10 Samuel Thibault + + Permit to select/deselect whole driver groups + * linux/configfrag.ac (AC_OPTION_Linux_group): New function + (AC_OPTION_Linux_ix86_at): Do not enable driver by default if the group was + explicitly disabled. + (scsi, net, pcmcia, wireless): Define groups. + +2012-05-17 Samuel Thibault + + Offset bios32 entry + * linux/src/arch/i386/kernel/bios32.c (check_pcibios, pcibios_init): Convert + physical bios32 entry address to kernel virtual address. + +2012-05-17 Samuel Thibault + + Clear direction flag after bios32 call + Linux does this, there are probably wild BIOSes out there. + + * linux/src/arch/i386/kernel/bios32.c (bios32_service, check_pcibios, + pci_bios_find_class, pci_bios_find_device, pci_bios_read_config_byte, + pci_bios_read_config_word, pci_bios_read_config_dword, + pci_bios_write_config_byte, pci_bios_write_config_word, + pci_bios_write_config_dword): Clear direction flag after lcall to bios32. + +2012-05-05 Samuel Thibault + + Offset kernel addresses by 3GiB + This permits better trace support in kdb. + + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS): Set to 0xC0000000 + * i386/Makefrag.am (_START): Set to 0xC0100000. + +2012-05-05 Samuel Thibault + + Document how to offset the kernel to get better debugging + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS): Document that it can be + changed, but _START has to be offset too. + (INIT_VM_MIN_KERNEL_ADDRESS): Document that it should remain 0. + +2012-04-27 Richard Braun + + Augment VM maps with a red-black tree + * vm/vm_map.c: Add #include . + (vm_map_setup): Initialize the map red-black tree. + (vm_map_entry_cmp_lookup): New function. + (vm_map_entry_cmp_insert): Likewise. + (_vm_map_entry_link): Insert map entry in the red-black tree. + (_vm_map_entry_unlink): Remove map entry from the red-black tree. + (vm_map_lookup_entry): Rework the way the VM map hint is used, and + replace the linear search with a binary search tree lookup. + (vm_map_copy_insert): Move map entries from the map copy tree to the + destination map tree. + (vm_map_copyin): Initialize the map copy red-black tree. + * vm/vm_map.h: Add #include . + (vm_map_entry): Add `tree_node' member. + (vm_map_header): Add `tree' member. + +2012-04-22 Richard Braun + + Update comments. + Literature about red-black trees vary concerning the cases numbering, + and the implementation doesn't make all of them clearly appear. Remove + cases numbering references to avoid confusion. + +2012-04-22 Richard Braun + + Fix copyright assignment + Maksym and I have assigned copyright to the Free Software Foundation. + In addition, restore the original upstream copyrights for correctness. + + * kern/list.h: Fix copyright assignment. + * kern/rbtree.c: Likewise. + * kern/rbtree.h: Likewise. + * kern/rbtree_i.h: Likewise. + * kern/slab.c: Likewise. + * kern/slab.h: Likewise. + +2012-04-06 Samuel Thibault + + Check hyp_stack_switch return + * i386/i386/pcb.c (switch_ktss): Check value returned by hyp_stack_switch. + + Fix integer type + * kern/thread.c (host_stack_usage): Set `total' type to natural_t. + +2012-04-06 Samuel Thibault + + Do not take address of va_list variable + This breaks on x86_64, where it is an array and thus gets bogus results. + + * ddb/db_output.c (db_printf, kdbprintf): Pass copy of va_list variable instead + of its address. + * kern/debug.c (panic, log): Likewise. + * kern/printf.c (vprintf, iprintf, sprintf, vsnprintf): Likewise. + (_doprnt): Take va_list instead of va_list *, fix usage and comment accordingly. + * kern/printf.h (_doprnt): Take va_list instead of va_list *. + +2012-03-24 Samuel Thibault + + Fix Xen boot after c74adfe + * i386/Makefrag.am (_START_MAP): Define symbol to 0x100000. + * i386/xen/Makefrag.am (_START_MAP): Define symbol to 0xC0000000. + * i386/ldscript: Use _START_MAP instead of hardcoding 0x100000. + +2012-03-24 Samuel Thibault + + Relocate kernel at bootup + Grub is not able to map us at high addresses. We can however make it load us at + low addresses (through the linker script mapping), then use segmentation to move + ourselves to high addresses, and switch to C which uses high addresses + (through _START definition). + + * i386/ldscript: Force mapping kernel at 0x100000, regardless of the value + of _START. + * i386/i386at/boothdr.S (boot_entry): Set up initial segments to project the + bootstrap linear space to high addresses. + +2012-03-24 Samuel Thibault + + Make sure BIOS area is mapped in kernel threads + * i386/i386at/model_dep.c (i386at_init): Map BIOS memory at 0. + * i386/intel/pmap.c (pmap_create): Do not map BIOS memory in user tasks. + +2012-03-24 Samuel Thibault + + Separate INIT_VM_MIN_KERNEL_ADDRESS from VM_MIN_KERNEL_ADDRESS + The former is the initial value set by the bootloader. It may not be the + same as what Mach will set up. + + * i386/i386/vm_param.h (INIT_VM_MIN_KERNEL_ADDRESS): New macro. + * i386/i386at/model_dep.c (i386at_init): Use INIT_VM_MIN_KERNEL_ADDRESS + instead of VM_MIN_KERNEL_ADDRESS. + +2012-03-24 Samuel Thibault + + Add missing phystokv/kvtophys calls + * i386/i386/vm_param.h [!MACH_XEN]: Do not include . + * i386/i386at/model_dep.c (init_alloc_aligned): Use phystokv to compare physical + memory addresses with kernel start, end, and symbol table. + * i386/intel/pmap.c (pmap_enter): Use kvtophys to convert ptp pointer to pte + entry. + * linux/dev/init/main.c (alloc_contig_mem, linux_init): Use phystokv to convert + allocated pages to virtual pointer. + * linux/src/include/asm-i386/io.h: Include . + (virt_to_phys): Call _kvtophys. + (phys_to_virt): Call phystokv. + * linux/src/include/linux/compatmac.h: Include . + (ioremap): Use phys_to_virt to convert physical address to virtual pointer. + (my_iounmap): Likewise. + * linux/dev/include/asm-i386/page.h: Include . + (PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Remove macros. + * linux/src/drivers/scsi/ncr53c8xx.c (vm_size_t): Remove type. + * linux/dev/glue/net.c: Include + (device_write): Call phystokv to convert from physical page address to + virtual pointer. + * linux/dev/glue/block.c (alloc_buffer, free_buffer, rdwr_full): Likewise. + + Fix issig crash at boot + * linux/dev/glue/misc.c (issig): Return 0 if current_thread() is NULL. + + Fix wrap-around in pmap bootstrap + * i386/intel/pmap.c (pmap_bootstrap): Check against `va' wrap around + 0xffffffff. + +2012-03-23 Samuel Thibault + + Fix boot with big values of _start + When _start is not close to 0, just using init_alloc_aligned() is not enough + to know how much should be duplicated between linear and virtual mappings. + Just mapping everything that can be is not very costly and should just work + when it can work. + + * i386/i386at/model_dep.c (i386at_init) [VM_MIN_KERNEL_ADDRESS != + LINEAR_MIN_KERNEL_ADDRESS]: Extend `nb_direct' to VM_MIN_KERNEL_ADDRESS - + LINEAR_MIN_KERNEL_ADDRESS. + +2012-03-22 Ludovic Courtès + + Refer to `PFN_LIST' on Xen only. + * i386/i386/i386asm.sym (PFN_LIST): Enclose in #ifdef MACH_XEN. Thanks + to Samuel Thibault for the suggestion. + +2012-03-20 Samuel Thibault + + Use long types + * ddb/db_examine.c (db_xcdump): Do not cast addr before passing to + db_read_bytes. + * ddb/db_macro.c (db_arg_variable): Return long. + * ddb/db_macro.h (db_arg_variable): Likewise. + * ddb/db_sym.c (db_maxoff): Set type to unsigned long. + * ddb/db_task_thread.c (db_set_default_thread, db_get_task_thread): Return + long. + * ddb/db_variables.h (db_variable): Make fcn function field to return long. + (FCN_NULL): Make function type return long. + * i386/i386/db_interface.c (int_regs): Set field sizes to long. + * i386/i386/db_machdep.h (db_expr_t): Set type to long. + * i386/i386/db_trace.c (db_i386_reg_value): Return long. Use long types. + (i386_frame, i386_kregs, interrupt_frame, db_nextframe): Set field sizes to + long. + (db_regs, i386_kregs): Use long * pointers. + (db_lookup_i386_kreg): Return long *. + (db_numargs, db_nextframe, db_stack_trace_cmd, db_i386_stack_trace): Use long + types. + * i386/i386/debug_i386.c (dump_ss): Fix format. + * i386/i386/ktss.c (ktss_init): Use long type. + * i386/i386/pcb.c (set_user_regs): Likewise. + * i386/i386/thread.h (i386_saved_state, v86_segs, i386_kernel_state, + i386_interrupt_state): Set field sizes to long. + * i386/i386/trap.c (kernel_trap, user_trap): Fix formats. + * kern/ast.h (ast_t): Set type to long. + * kern/boot_script.c (create_task, resume_task, prompt_resume_task, + boot_script_set_variable): Use long types. + * kern/boot_script.h (boot_script_set_variable): Use long type. + * kern/bootstrap.c (bootstrap_create): Pass long type. + * kern/lock.c (simple_lock, simple_lock_try): Use long type. + * linux/dev/kernel/softirq.c (linux_soft_intr): Fix format. + + Complain about Xen console smash only once at a time + * xen/console.c (hypputc): Warning only once per console write about console + ring smash. + + Make xchgl arch-neutral + * i386/i386/xen.h (xchgl): Use xchg instruction instead of xchgl, so the + assembler can detect unsigned long size. + +2012-03-20 Guillem Jover + + Use compiler defined __i386__ symbol instead of use defined i386 + * i386/configfrag.ac (i386): Remove definition. + * i386/intel/pmap.c (pmap_update_interrupt): Rename i386 to __i386__. + * i386/intel/pmap.h: Likewise. + * kern/debug.c (Debugger): Likewise. + * kern/lock.c (simple_lock, simple_lock_try, db_show_all_slocks): Likewise. + +2012-03-20 Guillem Jover + + Change types holding cpu flags from int to long + On amd64 the cpu flags is a 64-bit word, and long on 32-bit systems is + 32-bit wide anyway. + + * linux/dev/glue/kmem.c (linux_kmalloc, linux_kfree, __get_free_pages, + free_pages): Use unsigned long instead of unsigned. + * linux/dev/include/asm-i386/system.h (__save_flags, __restore_flags): + Likewise. + * linux/dev/kernel/printk.c (printk): Likewise. + * linux/src/drivers/scsi/advansys.c (DvcEnterCritical, DvcLeaveCritical, + advansys_queuecommand, advansys_abort, advansys_reset, advansys_interrupt, + interrupts_enabled, AdvISR): Likewise. + * linux/src/drivers/scsi/aha152x.c (aha152x_intr): Likewise. + * linux/src/drivers/scsi/aha1542.c (aha1542_intr_handle): Likewise. + * linux/src/drivers/scsi/aic7xxx.c (aic7xxx_done_cmds_complete): Likewise. + * linux/src/drivers/scsi/ultrastor.c (log_ultrastor_abort, + ultrastor_queuecommand, ultrastor_abort): Likewise. + +2012-03-20 Guillem Jover + + Match type for count with tty_get_status and tty_set_status + * i386/i386at/com.c (comgetstat): Use natural_t instead of `unsigned int'. + (comsetstat): Likewise. + * i386/i386at/kd.c (kdgetstat, kdsetstat): Likewise. + * i386/i386at/lpr.c (lprgetstat, lprsetstat): Likewise. + +2012-03-19 Samuel Thibault + + Use unsigned int for ELF 32bit values + * i386/include/mach/i386/exec/elf.h (Elf32_Addr, Elf32_Off, Elf32_Sword, + Elf32_Word): Use int type instead of long. + +2012-03-18 Samuel Thibault + + Fix assembly snippet portability + * xen/evt.c (hyp_c_callback): Do not set assembly instruction suffixes, + using 1UL constant instead. + + Use unsigned long types for addresses + * i386/include/mach/i386/vm_param.h (i386_btop, i386_ptob, i386_round_page, + i386_trunc_page): Cast to unsigned long. + + Use unsigned long for registers + * i386/i386/proc_reg.h (get_eflags, get_esp, get_eflags, get_cr0, get_cr2, + get_cr3, get_cr4): Return unsigned long type. + (set_eflags, set_cr0, set_cr3, set_cr4): Take unsigned long type. + + Do not hardcode structure offset + * i386/i386/i386asm.sym (R_EDI): Define macro. + * i386/i386/locore.S (t_page_fault): Use R_CR2-R_EDI instead of hardcoded + 12. + +2012-03-18 Samuel Thibault + + Set Xen kernel virtual address to 0xC0000000 + That makes the virtual addressing equal to linear addressing, thus optimizing + some computations away. + + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to + 0xC0000000UL. + * i386/xen/Makefrag.am (gnumach_LINKFLAGS): Set _START to 0xC0000000. + * i386/xen/xen_boothdr.S (VIRT_BASE, ELF_PADDR_OFFSET): Set to 0xC0000000. + +2012-03-18 Samuel Thibault + + Fix access above 4GiB in bootstrap page table + * i386/intel/pmap.c (pmap_set_page_readonly_init) [PAE]: Access the bootstrap + dirbase with PTEMASK (1 page) instead of PDEMASK (4 pages) through pmap_pde. + +2012-03-15 Thomas Schwinge + + Fix build error introduced in 5f701793f63f16d111db3e3d2e91134fcc179c5b. + * linux/src/include/linux/interrupt.h (intr_count): Declare as unsigned int. + +2012-03-14 Samuel Thibault + + Simplify splx + * i386/i386/spl.S (splx): Use S_ARG0 instead of reimplementing it. + + Fix variable types according to assembly use + * linux/dev/arch/i386/kernel/irq.c (intr_count): Set to int type. + * linux/dev/kernel/softirq.c (bh_active, bh_mask): Likewise. + (linux_soft_intr: active, mask, left): Likewise + * linux/src/include/linux/interrupt.h (bh_active, bh_mask): Likewise. + * linux/src/kernel/softirq.c (intr_count, bh_active, bh_mask): Likewise. + (do_bottom_half: active, mask, left): Likewise + + Stick to binutils ELF scripts + * i386/ldscript: Reformat to follow binutils version + + Fix PAE page frame number mask. + * i386/intel/pmap.h (INTEL_PTE_PFN): Keep only 47bits, others are not usable. + + Fix Xen bootstrap at virtual address above 1GiB + * i386/intel/pmap.h (lin2pdpnum): New macro. + * i386/intel/pmap.c (pmap_set_page_readonly_init): Use lin2pdpnum macro + instead of hardcoding 0. + + Simplify i386at_init + * i386/i386at/model_dep.c (i386at_init): Do not copy linear into virtual kernel + mapping when they are equal, and do not drop the former either. Use the + function `i' variable. + + Simplify kvtophys + * i386/i386/phys.c (kvtophys): Use pte_to_pa macro instead of reimplementing + it. + +2012-03-09 Samuel Thibault + + Use unsigned long for addresses and sizes + TODO: remonter formats + + * i386/include/mach/i386/vm_types.h (vm_offset_t): Define to unsigned long. + (signed32_t): Define to signed int. + (unsigned32_t): Define to unsigned int. + * i386/include/mach/sa/stdarg.h (__va_size): Use sizeof(unsigned long)-1 + instead of 3. + * include/mach/port.h (mach_port_t): Define to vm_offset_t instead of + natural_t. + * include/sys/types.h (size_t): Define to unsigned long instead of + natural_t. + * linux/src/include/asm-i386/posix_types.h (__kernel_size_t): Define to + unsigned long. + (__kernel_ssize_t): Define to long. + * linux/src/include/linux/stddef.h (size_t): Define to unsigned long. + + * device/dev_pager.c (dev_pager_hash): Cast port to vm_offset_t insted of + natural_t. + (device_pager_data_request): Fix format. + + * device/ds_routines.c (ds_no_senders): Fix format. + * i386/i386/io_map.c (io_map): Likewise. + * i386/i386at/autoconf.c (take_dev_irq): Likewise. + * i386/i386at/com.c (comattach): Likewise. + * i386/i386at/lpr.c (lprattach): Likewise. + * i386/i386at/model_dep.c (mem_size_init, mem_size_init, c_boot_entry): + Likewise. + * i386/intel/pmap.c (pmap_enter): Likewise. + * ipc/ipc_notify.c (ipc_notify_port_deleted, ipc_notify_msg_accepted, + ipc_notify_dead_name): Likewise. + * ipc/mach_port.c (mach_port_destroy, mach_port_deallocate): Likewise. + * kern/ipc_kobject.c (ipc_kobject_destroy): Likewise. + * kern/slab.c (kalloc_init): Likewise. + * vm/vm_fault.c (vm_fault_page): Likewise. + * vm/vm_map.c (vm_map_pmap_enter): Likewise. + * xen/block.c (device_read): Likewise. + + * device/net_io.c (bpf_match): Take unsigned long * instead of unsigned int + *. + (bpf_do_filter): Make mem unsigned long instead of long. + * i386/i386/ktss.c (ktss_init): Cast pointer to unsigned long instead of + unsigned. + * i386/i386/pcb.c (stack_attach, switch_ktss): Cast pointers to long instead of + int. + * i386/i386/trap.c (dump_ss): Likewise. + * ipc/ipc_hash.c (IH_LOCAL_HASH): Cast object to vm_offset_t. + * ipc/mach_msg.c (mach_msg_receive, mach_msg_receive_continue): Cast kmsg to + vm_offset_t instead of natural_t. + * kern/pc_sample.c (take_pc_sample): Cast to vm_offset_t instead of + natural_t. + * kern/boot_script.c (sym, arg): Set type of `val' field to long instead of int. + (create_task, builtin_symbols, boot_script_parse_line, + boot_script_define_function): Cast to long instead of int. + * kern/bootstrap.c (bootstrap_create): Likewise. + * kern/sched_prim.c (decl_simple_lock_data): Likewise. + * kern/printf.c (vsnprintf): Set size type to size_t. + * kern/printf.h (vsnprintf): Likewise. + * vm/vm_map.h (kentry_data_size): Fix type to vm_size_t. + * vm/vm_object.c (vm_object_pmap_protect_by_page): Fix size parameter type + to vm_size_t. + +2012-03-08 Samuel Thibault + + Move kentry_data_size initial value to header + * vm/vm_map.h (KENTRY_DATA_SIZE): Define macro. + * vm/vm_map.c (kentry_data_size): Initialize to KENTRY_DATA_SIZE. + +2012-03-03 Gabriele Giacone <1o5g4r8o@gmail.com> + + Set default serial parameters to 8N1 instead of 7E1 + * i386/i386at/com.c (comcninit): Set LINE_CTL register to i8BITS instead of + i7BITS|iPEN. + +2012-02-19 Samuel Thibault + + Fix format for string print + * linux/src/drivers/net/3c505.c (elp_sense): Use %s format for printing a mere + string, not the string. + + Fix format for string print + * linux/src/drivers/net/8390.c: Use %s format for printing a mere string, not + the string. + + Fix format for string print + * linux/src/drivers/net/3c503.c (el2_probe1): Use %s format for printing a mere + string, not the string. + + Fix format for string print + * linux/src/drivers/scsi/aha1542.c (aha1542_setup): Use %s format for printing a + mere string, not the string. + + Fix format for string print + * linux/src/drivers/scsi/advansys.c (asc_prt_line): Use %s format for + printing a mere string, not the string. + + Fix format for string print + * i386/i386at/model_dep.c (c_boot_entry): Use %s format for printing a mere + string, not the string. + +2012-01-28 Samuel Thibault + + Merge branch 'master' into master-slab + +2012-01-22 Samuel Thibault + + Fix build on 64bit host + When stealing the memset function from the 32bit host libc on a 64bit host + system, glibc tends to bring unwanted references to _Unwind_Resume, + __gcc_personality_v0, etc. So let's stop stealing memset. + + * kern/strings.c (memset): New function. + * Makefile.am (clib_routines): Remove memset. + +2012-01-09 Richard Braun + + Improve ipc hash/marequest init readability + Use macros instead of raw numeric values. + + * ipc/ipc_hash.h (IPC_HASH_GLOBAL_SIZE): New macro. + * ipc/ipc_hash.c (ipc_hash_init): Directly set the global hash table + size to IPC_HASH_GLOBAL_SIZE. + * ipc/ipc_marequest.h (IPC_MAREQUEST_SIZE): New macro. + * ipc/ipc_marequest.c (ipc_marequest_init): Directly set the marequest + hash table size to IPC_MAREQUEST_SIZE. + +2011-12-30 Samuel Thibault + + Cope with dom0s which do not respect feature-no-csum-offload + Event with feature-no-csum-offload=1, some dom0s (such as Debian Squeeze's + 2.6.32) send packets with a blank checksum. Recompute them before givin the + packet to pfinet. + + * xen/net.c (recompute_checksum): New function. + (hyp_net_intr): Call recompute_checksum when the checksum is blank but the + data is validated. + +2011-12-29 Samuel Thibault + + Fix typo + + Upgrade number of event queues + * kern/sched_prim.c (NUMQUEUES): Increase to 1031 + +2011-12-17 Richard Braun + + Remove arbitrary limits used by the zone system + The zone allocator could limit the size of its zones to an arbitrary + value set at zinit() time. There is no such parameter with the slab + module. As a result of removing those limits, the kern/mach_param.h + header becomes empty, and is simply removed altogether. + + * Makefrag.am (libkernel_a_SOURCES): Remove kern/mach_param.h. + * i386/i386/fpu.c: Remove #include . + * i386/i386/machine_task.c: Likewise. + * i386/i386/pcb.c: Likewise. + * ipc/ipc_init.c: Likewise. + (ipc_space_max): Remove variable. + (ipc_tree_entry_max): Likewise. + (ipc_port_max): Likewise. + (ipc_pset_max): Likewise. + * ipc/ipc_init.h (IPC_ZONE_TYPE): Remove macro. + (ipc_space_max): Remove extern declaration. + (ipc_tree_entry_max): Likewise. + (ipc_port_max): Likewise. + (ipc_pset_max): Likewise. + * ipc/ipc_hash.c (ipc_hash_init): Don't use ipc_tree_entry_max to + compute ipc_hash_global_size. + * ipc/ipc_marequest.c: Remove #include . + (ipc_marequest_max): Remove variable. + (ipc_marequest_init): Don't use ipc_marequest_max to compute + ipc_marequest_size. + (ipc_marequest_info): Return (unsigned int)-1 in maxp. + * kern/act.c: Remove #include . + * kern/mach_clock.c: Likewise. + * kern/priority.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * vm/memory_object_proxy.c: Likewise. + * vm/vm_fault.c: Likewise. + +2011-12-17 Richard Braun + + Remove the defunct kernel_task_create() function + The kmem_suballoc() function, which has been replaced with + kmem_submap(), is called by kernel_task_create(). Rather than update it, + remove this now unused function. + + * kern/task.c (kernel_task_create): Remove function. + * kern/task.h (kernel_task_create): Remove prototype. + +2011-12-17 Richard Braun + + Fix kern/kalloc.h includes + * device/dev_pager.c: Remove #include . + * i386/i386/io_perm.c: Add #include . + * kern/bootstrap.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/processor.c: Likewise. + * kern/server_loop.ch: Likewise. + * kern/thread.c: Likewise. + * linux/dev/glue/block.c: Likewise. + * linux/dev/glue/net.c: Likewise. + * vm/vm_map.c: Likewise. + * xen/block.c: Likewise. + * xen/net.c: Likewise. + * xen/store.c: Likewise. + +2011-12-17 Richard Braun + + Adjust VM initialization + Unlike the zone allocator, the slab code can't be fed with an initial + chunk of memory. Some VM objects used early during startup now have to + be statically allocated, and kernel map entries need a special path + to avoid recursion when being allocated. + + * vm/vm_map.c (vm_submap_object_store): New variable. + (vm_submap_object): Point to vm_submap_object_store. + (kentry_data_size): Initialize to arbitrary value. + (kentry_count): Remove variable. + (kentry_pagealloc): New function. + (vm_map_setup): Likewise. + (vm_map_create): Replace initialization with a call to vm_map_setup(). + * vm/vm_map.h (vm_map_setup): New prototype. + * vm/vm_kern.c (kernel_map_store): New variable. + (kernel_map): Point to kernel_map_store. + (kmem_suballoc): Remove function. Replaced with... + (kmem_submap): New function. + (kmem_init): Call vm_map_setup() instead of vm_map_create(). + * vm/vm_kern.h (kmem_suballoc): Remove prototype. + (kmem_submap): New prototype. + * vm/vm_object.c (kernel_object_store): New variable. + (kernel_object): Point to kernel_object_store. + (vm_object_template): Change type from vm_object_t to struct vm_object. + (_vm_object_setup): New function. + (_vm_object_allocate): Replace initialization with a call to + _vm_object_setup(). + (vm_object_bootstrap): Don't allocate vm_object_template, and use it as + a structure instead of a pointer. Initialize kernel_object and + vm_submap_object with _vm_object_setup() instead of + _vm_object_allocate(). + * vm/vm_resident.c (vm_page_bootstrap): Don't initialize + kentry_data_size. + * device/ds_routines.c (device_io_map_store): New variable. + (device_io_map): Point to device_io_map_store. + (mach_device_init): Call kmem_submap() instead of kmem_suballoc(). + * ipc/ipc_init.c (ipc_kernel_map_store): New variable. + (ipc_kernel_map): Point to ipc_kernel_map_store. + +2011-12-17 Richard Braun + + Adjust the kernel to use the slab allocator + * device/dev_lookup.c: Replace zalloc header, types and function calls + with their slab counterparts. + * device/dev_pager.c: Likewise. + * device/ds_routines.c: Likewise. + * device/io_req.h: Likewise. + * device/net_io.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_perm.c: Likewise. + * i386/i386/machine_task.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/task.h: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Remove #include . + * include/mach_debug/mach_debug.defs (host_zone_info): Replace + routine declaration with skip directive. + (host_slab_info): New routine declaration. + * include/mach_debug/mach_debug_types.defs (zone_name_t) + (zone_name_array_t, zone_info_t, zone_info_array_t): Remove types. + (cache_info_t, cache_info_array_t): New types. + * include/mach_debug/mach_debug_types.h: Replace #include + with . + * ipc/ipc_entry.c: Replace zalloc header, types and function calls with + their slab counterparts. + * ipc/ipc_entry.h: Likewise. + * ipc/ipc_init.c: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/ipc_table.c (kalloc_map): Remove extern declaration. + * kern/act.c: Replace zalloc header, types and function calls with their + slab counterparts. + * kern/kalloc.h: Add #include . + (MINSIZE): Remove definition. + (kalloc_map): Add extern declaration. + (kget): Remove prototype. + * kern/mach_clock.c: Adjust comment. + * kern/processor.c: Replace zalloc header, types and function calls with + their slab counterparts. + * kern/startup.c: Remove #include . + * kern/task.c: Replace zalloc header, types and function calls with + their slab counterparts. + * kern/thread.c: Likewise. + * vm/memory_object_proxy.c: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_init.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_page.h: Remove #include . + * vm/vm_pageout.c: Replace zalloc header, types and function calls with + their slab counterparts. + * vm/vm_resident.c: Likewise. + (zdata, zdata_size): Remove declarations. + (vm_page_bootstrap): Don't steal memory for the zone system. + +2011-12-17 Richard Braun + + Import the slab allocator + As it is intended to completely replace the zone allocator, remove it on + the way. So long to the venerable code ! + + * Makefrag.am (libkernel_a_SOURCES): Add kern/slab.{c,h}, remove kern/kalloc.c + and kern/zalloc.{c,h}. + * configfrag.ac (SLAB_VERIFY, SLAB_USE_CPU_POOLS): Add defines. + * i386/Makefrag.am (libkernel_a_SOURCES): Remove i386/i386/zalloc.h. + * i386/configfrag.ac (CPU_L1_SHIFT): Remove define. + * include/mach_debug/slab_info.h: New file. + * kern/slab.c: Likewise. + * kern/slab.h: Likewise. + * i386/i386/zalloc.h: Remove file. + * include/mach_debug/zone_info.h: Likewise. + * kern/kalloc.c: Likewise. + * kern/zalloc.c: Likewise. + * kern/zalloc.h: Likewise. + +2011-12-17 Richard Braun + + Import utility files + * Makefrag.am (libkernel_a_SOURCES): Add kern/list.h, kern/rbtree.c, + kern/rbtree.h and kern/rbtree_i.h. + * kern/list.h: New file. + * kern/rbtree.c: Likewise. + * kern/rbtree.h: Likewise. + * kern/rbtree_i.h: Likewise. + * kern/macro_help.h (MACRO_BEGIN): Use GNU C compound statement + enclosed in parentheses. + (MACRO_END): Likewise. + +2011-11-27 Samuel Thibault + + Keep frame pointer when debugger is enabled + * Makefrag.am (AM_CFLAGS) [enable_kdb]: Add -fno-omit-frame-pointer. + +2011-10-16 Samuel Thibault + + Merge branch 'master' of callisto:gnumach + +2011-10-16 Samuel Thibault + + Do not map xen driver pages + * xen/block.c (hyp_block_init): Use vm_page_grab_phys_addr instead of + kmem_alloc_wired to allocate driver pages. + * xen/net.c (hyp_net_init): Likewise. + +2011-10-16 Samuel Thibault + + Increase kmem area for the Xen case. + Kernel tacks are 4 pages in the Xen case, so we need more kmem space. + + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE) [MACH_XEN]: Increase to 224MiB. + +2011-10-10 Samuel Thibault + + Raise block device interrupt level to SPL6 + * linux/dev/drivers/block/genhd.c (device_setup): Set linux_intr_pri to + SPL6. + * linux/dev/glue/block.c (init_partition, device_open): Likewise. + + Raise Linux kmem memory size + * linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 32. + +2011-10-10 Samuel Thibault + + Leave interrupts enabled in sym53c8xx driver + The driver can work with them, and request_irq works fine with them. + + * linux/src/drivers/scsi/sym53c8xx.c (ncr_attach): Do not pass SA_INTERRUPT to + request_irq(). + +2011-10-09 Samuel Thibault + + Define BITS_PER_LONG for Linux code + * linux/src/include/asm-i386/types.h (BITS_PER_LONG): Define to 32. + +2011-10-08 Samuel Thibault + + Add sym53c8xx driver from linux 2.2 + This driver supports qemu's SCSI host device. + Unfortunately it seems to be breaking the network device, so test with care. + + * linux/Makefrag.am (liblinux_a_SOURCES): Add + linux/src/drivers/scsi/sym53c8xx{.c,_comm.h,.h,_defs.h} + * linux/configfrag.ac: Add AC_Linux_DRIVER([sym53c8xx] to enable + CONFIG_SCSI_SYM53C8XX. + * linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 16. + * linux/src/drivers/scsi/hosts.c [CONFIG_SCSI_SYM53C8XX]: Include "sym53c8xx.h". + (builtin_scsi_hosts): include SYM53C8XX. + +2011-09-28 Sergio Lopez + + fix copy out-of-line data when length >= 512MB + * ipc/ipc_kmsg.c (ipc_kmsg_copyin_body): Change length type to + unsigned64_t. Cast number to unsigned64_t. + (ipc_kmsg_copyout_body): Likewise. + +2011-09-28 Sergio López + + Make thread_suspend honor the TH_UNINT flag + Interrupting a thread without a continuation, puts it in a + inconsistent state. This is the cause for the bug described in + https://lists.gnu.org/archive/html/bug-hurd/2011-09/msg00148.html + + * kern/thread.c (thread_suspend): Fail with KERN_FAILURE if thread is + uninterruptible. + +2011-09-12 Guillem Jover + + Remove unused [!MACH_KERNEL] driver code + Use «unifdef -DMACK_KERNEL=1» as a starting point, but only remove + the code not exposed on public headers, the rest is needed to build + properly from userland. + + * device/cons.c [!MACH_KERNEL]: Remove includes. + [!MACH_KERNEL] (constty): Remove variable. + (cninit, cnmaygetc) [MACH_KERNEL]: Remove preprocessor conditionals. + [!MACH_KERNEL] (cnopen, cnclose, cnread, cnwrite, cnioctl, cnselect) + (cncontrol): Remove functions. + * device/cons.h (struct consdev) [MACH_KERNEL]: Remove preprocessor + conditional. + * device/kmsg.h [MACH_KERNEL]: Likewise. + * i386/i386at/autoconf.c [!MACH_KERNEL]: Remove includes. + * i386/i386at/kd_event.c [!MACH_KERNEL]: Likewise. + [!MACH_KERNEL] (kbd_sel, kbdpgrp, kbdflag): Remove variables. + [!MACH_KERNEL] (KBD_COLL, KBD_ASYNC, KBD_NBIO): Remove macros. + (kbdopen, kbdclose, kbd_enqueue) [!MACH_KERNEL]: Remove code. + [!MACH_KERNEL] (kbdioctl, kbdselect, kbdread): Remove functions. + [!MACH_KERNEL] (X_kdb_enter_init, X_kdb_exit_init: Likewise. + * i386/i386at/kd_mouse.c [!MACH_KERNEL]: Remove includes. + [!MACH_KERNEL] (mouse_sel, mousepgrp, mouseflag): Remove variables. + [!MACH_KERNEL] (MOUSE_COLL, MOUSE_ASYNC, MOUSE_NBIO): Remove macros. + (mouseopen, mouseclose, kd_mouse_read, mouse_enqueue) [!MACH_KERNEL]: Remove + code. + [!MACH_KERNEL] (mouseioctl, mouseselect, mouseread): Remove functions. + * i386/i386at/lpr.c [!MACH_KERNEL]: Remove includes. + (lpropen) [MACH_KERNEL]: Remove preprocessor conditionals. + (lpropen, lprclose, lprstart) [!MACH_KERNEL]: Remove code. + [!MACH_KERNEL] (lprwrite, lprioctl, lprstop): Remove functions. + * i386/i386at/rtc.c (readtodc, writetodc) [!MACH_KERNEL]: Remove code. + * kern/mach_factor.c [MACH_KERNEL]: Remove preprocessor conditional. + * xen/time.c (readtodc) [!MACH_KERNEL]: Remove code. + +2011-09-09 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2011-09-09 Guillem Jover + + Do not take unused strpbrk() from libc + * Makefile.am (clib_routines): Remove strpbrk. + +2011-09-06 Thomas Schwinge + + * .gitignore: Tighten some rules, and distribute others to... * doc/.gitignore: ... here; * i386/i386/.gitignore: ... here; * tests/.gitignore: ..., and here. + + * i386/i386/pcb.h (stack_attach): Parameterize the continuation parameter's parameter list. * i386/i386/pcb.c (stack_attach): Likewise. + + Move i386/i386/locore.S declarations. + * i386/i386/trap.c (recover_table, recover_table_end, retry_table) + (retry_table_end): Move declarations to... + * i386/i386/locore.h: ... here. + +2011-09-06 Thomas Schwinge + + Further prototyping work for memory_object_proxy.c functions. + * vm/memory_object_proxy.h: Add #includes. + (memory_object_proxy_lookup): New declaration. + * vm/memory_object_proxy.c: #include . + * vm/vm_user.c: Likewise. + (memory_object_proxy_lookup): Drop declaration. + + Parts based on a patch by Fridolín Pokorný . + +2011-09-05 Samuel Thibault + + Drop module memory free verbosity + * kern/bootstrap.c (bootstrap_create): Do not show freed module memory. + + Free memory used by boot modules + * vm/vm_resident.c (pmap_startup): Warn when some pages could not be included + in the allocator due to bad estimation. + * kern/bootstrap.c: Include . + (bootstrap_create): Call vm_page_create on bootstrap modules content. + +2011-09-03 Fridolín Pokorný + + Add prototypes for memory_object_proxy.c functions + * vm/memory_object_proxy.h: Add file. + * vm/vm_init.c: Include . + * kern/ipc_kobject.c: Likewise. + * Makefile.am (libkernel_a_SOURCES): Add vm/memory_object_proxy.h. + +2011-09-03 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2011-09-02 Guillem Jover + + Remove long obsolete RPC routines + * kern/compat_xxx_defs.h: Remove file. + * Makefrag.am (libkernel_a_SOURCES): Remove `kern/compat_xxx_defs.h'. + + * include/mach/mach_types.defs (xxx_emulation_vector_t): Remove type. + + * device/device.srv: Do not simport . + * kern/mach.srv: Likewise. + * kern/mach_host.srv: Likewise. + + * include/device/device.defs [MACH_KERNEL]: Do not simport + . + (xxx_device_set_status, xxx_device_get_status) + (xxx_device_set_filter): Replace routine declarations with skip + directives. + * include/mach/mach.defs [MACH_KERNEL]: Do not simport + . + (xxx_memory_object_lock_request, xxx_task_get_emulation_vector) + (xxx_task_set_emulation_vector, xxx_host_info, xxx_slot_info) + (xxx_cpu_control, xxx_task_info, xxx_thread_get_state) + (xxx_thread_set_state, xxx_thread_info): Replace routine declarations + with skip directive. + * include/mach/mach_host.defs [MACH_KERNEL]: Do not simport + . + (yyy_host_info, yyy_processor_info, yyy_processor_control) + (xxx_processor_set_default_priv, yyy_processor_set_info): Replace + routine declarations with skip directive. + + * kern/ipc_host.c (xxx_processor_set_default_priv): Remove function. + * kern/machine.c (xxx_host_info, xxx_slot_info) + (xxx_cpu_control): Likewise. + * kern/syscall_emulation.c (xxx_task_set_emulation_vector) + (xxx_task_get_emulation_vector): Likewise. + * vm/memory_object.c (xxx_memory_object_lock_request): Likewise. + +2011-09-02 Guillem Jover + + Do not remap errno codes from E* to LINUX_E* + Mach no longer uses any of the old and clashing errno E* codes, so + it's safe to use them now w/o namespacing. This also means one less + modification needed to the Linux code. + + * linux/dev/include/asm-i386/errno.h: Remove file. + * linux/dev/kernel/dma.c (notifier_chain_unregister) [MACH_INCLUDE]: Remove + code. + * linux/dev/include/linux/notifier.h: Likewise. + * linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Rename LINUX_EBUSY + to EBUSY. + (request_irq): Rename LINUX_EINVAL to EINVAL. + * linux/dev/glue/block.c (register_blkdev): Rename LINUX_EBUSY to EBUSY + and LINUX_EINVAL to EINVAL. + (unregister_blkdev): Rename LINUX_EINVAL to EINVAL. + (rdwr_partial) Rename LINUX_ENOMEM to ENOMEM and LINUX_EIO to EIO. + * linux/dev/glue/misc.c (linux_to_mach_error): Rename LINUX_EPERM to + EPERM, LINUX_EIO to EIO, LINUX_ENXIO to ENXIO, LINUX_EACCES to EACCES, + LINUX_EFAULT to EFAULT, LINUX_EBUSY to EBUSY, LINUX_EINVAL to EINVAL, + LINUX_EROFS to EROFS, LINUX_EWOULDBLOCK to EWOULDBLOCK and LINUX_ENOMEM + to ENOMEM. + (verify_area): Rename LINUX_EFAULT to EFAULT. + * linux/dev/kernel/resource.c (check_region): Rename LINUX_EBUSY to + EBUSY. + * linux/dev/kernel/sched.c (__do_down): Rename LINUX_EINTR to EINTR. + +2011-09-02 Guillem Jover + + Use Mach native error codes instead of POSIX errno E* ones + * device/errno.h: Remove file. + * Makefrag.am (libkernel_a_SOURCES): Remove `device/errno.h'. + * i386/i386at/com.c: Include instead of + . + (comopen): Replace ENXIO with D_NO_SUCH_DEVICE. + * i386/i386at/kd_event.c: Include instead of + . + * i386/i386at/kd_mouse.c: Likewise. + (mouseopen): Replace ENODEV with D_NO_SUCH_DEVICE and EBUSY with + D_ALREADY_OPEN. + * i386/i386at/lpr.c: Include instead of + . + (lpropen): Replace ENXIO with D_NO_SUCH_DEVICE and EBUSY with + D_ALREADY_OPEN. + +2011-09-02 Guillem Jover + + Change argument name to match function body usage + Otherwise the function wrongly uses the global symbol. + + * linux/src/drivers/scsi/ppa.c (ppa_nibble_in): Rename `str_p' argument + to `base'. + +2011-09-02 Guillem Jover + + Disable set but unused variable + * linux/src/drivers/scsi/gdth.c (gdth_detect): Conditionalize `b' on + [LINUX_VERSION_CODE < 0x020000]. Do not preset it to 0, it's initialized + later on when needed. + + Remove set but unused variables + * linux/dev/drivers/block/floppy.c (setup_rw_floppy): Remove `dflags'. + (floppy_eject): Remove `dummy'. + * linux/src/drivers/net/8390.c (ethdev_init): Remove `ei_local'. + * linux/src/drivers/scsi/ppa.c (ppa_detect): Remove `ppb'. + + Cast addr argument to vm_offset_t + * linux/dev/glue/kmem.c (vfree): Cast `addr' argument on kfree_mem + function to vm_offset_t. + + Add vsnprintf prototype + * kern/printf.h (vsnprintf): New prototype. + + Add missing headers + * linux/dev/init/main.c: Include . + * linux/dev/kernel/printk.c: Include . + +2011-09-01 Ludovic Courtès + + Add missing header file to the distribution. + * linux/Makefrag.am (liblinux_a_SOURCES): Add `linux/dev/glue/glue.h', + which appeared in commit 2b4bff9914d57bff600ac70194b8b1aab3485bee + ("Fix declarations"). + +2011-09-01 Samuel Thibault + + Fix documentation + + Close kernel stacks. + * i386/i386/pcb.c (stack_attach): Initialize ebp to 0. + +2011-09-01 Samuel Thibault + + Fix PC sampling + interrupt.S now saves the IRQ on the stack to acknowledge it later. + + * i386/i386/hardclock.c (hardclock): Add irq parameter. + * i386/i386at/kd.c (kdintr, kdcheckmagic): Remove regs parameter. + * i386/i386at/kd.h (kdintr): Likewise. + +2011-08-31 Guillem Jover + + Add silent rules support if available and disable it by default + * configure.ac (AM_SILENT_RULES): Add silent rules support if available, + and disable it by default. + * Makefile.am (AWK_V, AWK_V_, AWK_V_0): New variables. + (NM_V, NM_V_, NM_V_0): Likewise. + (GZIP_V, GZIP_V_, GZIP_V_0): Likewise. + (MIGCOM_V, MIGCOM_V_, MIGCOM_V_0): Likewise. + (gnumach-undef): Use NM_V in front of NM. + (gnumach-undef-bad): Use AM_V_GEN in front of sed. + (clib-routines.o): Use AM_V_at in fron of undefined symbols check. + Use AM_V_CCLD in front of CCLD. + * Makefrag.am (gnumach.msgids): Use AM_V_GEN in front of cat. + * Makerules.am (%.symc): Use AWK_V in front of AWK. + (%.symc.o): Use AM_V_CC in front of COMPILE. + (%.h): Use AM_V_GEN in front of sed. + (%.gz): Use GZIP_V in front of GZIP. + * Makerules.mig.am (%.user.defs.c): Use AM_V_GEN in front of command. + (%.server.defs.c): Likewise. + (%.user.h %.user.c %.user.msgids): Use MIGCOM_V in front of MIGCOM. + (%.server.h %.server.c %.server.msgids): Likewise. + +2011-08-31 Samuel Thibault + + Optimize copyout path + * i386/i386/locore.S (copyout): Remove RETRY() use from >=i486 variant. Move + copyout_ret and copyout_fail. + + Fix copyout retry on lazy allocation on >= i486 + * i386/i386/locore.S (copyout): Add a >=i486 variant of copyout which uses + no loop, but simply retries rep mov. + + Disable global page while writing in kernel space + * i386/i386/db_interface.c (db_write_bytes): If CPU has PGE feature, disable + CR4_PGE before enabling kernel page write access, and re-enable the former after + disabling the latter. + +2011-08-31 Samuel Thibault + + Protect set_cr3 against compiler assignment optimizations + This fixes the kdb `break' command. + + i386/i386/proc_reg.h (set_cr3): Add "memory" clobber. + +2011-08-31 Guillem Jover + + Fix undefined operation on assigning self pre-incremented variable + * linux/src/drivers/scsi/wd7000.c (mail_out): Add `1' instead of + pre-incrementing self assigned variable. + * linux/src/drivers/net/de4x5.c (de4x5_sw_reset, de4x5_queue_pkt, de4x5_rx) + (de4x5_tx, de4x5_rx_ovfc, set_multicast_list, ping_media, mii_get_phy) + (de4x5_ioctl): Likewise. + * linux/src/drivers/net/depca.c (depca_rx, depca_tx, load_packet): Likewise. + + Honour type promotion on variable argument handling + * linux/dev/lib/vsprintf.c (linux_vsprintf): Use `int' when retrieving + a `short' through `va_arg'. + + Correct MiG Mach types to fix compilation warnings + * include/mach/mach_types.defs (thread_info_t): Change from array of + natural_t to integer_t. + (task_info_t): Likewise. + (host_info_t): Likewise. + (processor_info_t): Likewise. + (processor_set_info_t): Likewise. + + Denote __exit symbols as used + * linux/src/include/linux/init.h: Include . + (__exitused): New macro. + (__exit): Define to ` __exitused __cold notrace'. + * linux/src/include/linux/kcomp.h (__exit): Remove. + + Move from linux/pcmcia-cs to linux/src + * linux/pcmcia-cs/include/linux/init.h: Move to ... + * linux/src/include/linux/init.h: ... here. + + Import Linux 3.1 compiler definitions + * linux/src/include/linux/compiler.h: New file. + * linux/src/include/linux/compiler-gcc.h: Likewise. + * linux/src/include/linux/compiler-gcc3.h: Likewise. + * linux/src/include/linux/compiler-gcc4.h: Likewise. + * linux/dev/include/linux/kernel.h (barrier): Remove definition and + include instead. + + Import Linux 3.1 ctype code + * linux/src/include/linux/ctype.h: Update file. + * linux/src/lib/ctype.c: Likewise. + + Remove unused and non-functional string specialization header + * linux/src/include/asm-i386/string-486.h: Remove. + + Fix memcmp prototype + * include/string.h (memcmp): Remove bogus `*' from return type. + +2011-08-31 Samuel Thibault + + Fix declarations + * device/ds_routines.h (io_done_list): Add variable declaration. + (device_io_map): Keep variable declaration and move definition to... + * device/ds_routines.c: ... here. + * i386/i386/fpu.c: Include + (curr_ipl): Remove declaration. + (fpintr): Add int unit parameter. + * linux/dev/glue/glue.h: New header. + * i386/i386/fpu.h (fpintr): Add function prototype. + * i386/i386/hardclock.c (clock_interrupt, linux_timer_intr): Remove prototypes. + [LINUX_DEV]: Include + * i386/i386/ipl.h (curr_ipl): Add declaration. + * i386/i386/pic.h (curr_pic_mask, pic_mask, prtnull, intnull): Add + declarations. + * i386/i386at/kd.h (kdintr): Add declaration. + * i386/i386at/pic_isa.c: Include and + (intnull, fpintr, hardclock, kdintr, prtnull): Remove prototypes. + * i386/xen/xen.c: Include + (clock_interrupt): Remove prototype. + * linux/dev/arch/i386/kernel/irq.c: Include and + + (linux_timer_intr, splhigh, spl0, curr_ipl, curr_pic_mask, pic_mask, + get_options): Remove declarations. + * linux/dev/drivers/block/floppy.c: Include + (issig, get_options): Remove declarations. + * linux/dev/drivers/block/genhd.c: Include + (linux_intr_pri): Remove declaration. + * linux/dev/glue/block.c: Include and + . + (device_io_map, blksize_size): Remove declarations. + * linux/dev/glue/kmem.c: Include and + (alloc_contig_mem, printf): Remove declarations. + * linux/dev/glue/misc.c: Include and + (vm_map_lookup_entry, printf): Remove prototypes. + * linux/dev/glue/net.c: Include , and + . + (linux_intr_pri, io_done_list): Remove declarations. + * linux/dev/init/main.c: Include and + . + (phys_last_addr, alloc_contig_mem, free_contig_mem, init_IRQ, + restore_IRQ, startrtclock, linux_version_init, linux_kmem_init, pci_init, + linux_net_emulation_init, device_setup, linux_printk, linux_timer_intr, spl0, + splhigh, form_pic_mask, linux_bad_intr, prtnull, intnull, linux_sched_init, + pcmcia_init): Remove declarations. + * linux/dev/kernel/sched.c: Include , and + . + (alloc_contig_mem, free_contig_mem, splhigh, splx, linux_soft_intr, issig, + printf, linux_auto_config): Remove prototypes. + * linux/dev/kernel/softirq.c: Include . + * linux/src/drivers/block/floppy.c: Include . + (get_options): Remove prototype. + * linux/src/init/main.c: Include + (init_IRQ): Remove prototype. + +2011-08-30 Guillem Jover + + Add linux_timer_intr function declaration + * i386/i386/hardclock.c [LINUX_DEV] (linux_timer_intr): New prototype. + + Add missing headers + * device/dev_pager.c: Include . + * linux/pcmcia-cs/glue/wireless_glue.h: Include . + + Remove unused variable + * i386/i386at/rtc.c (rtc): Remove variable. + + Cast host_get_time() arguments to fix warnings + * linux/dev/glue/misc.c (do_gettimeofday): Cast arguments to + `host_get_time'. + + Cast function timeout() argument to fix a warning + * kern/mach_clock.h (timer_func_t): New function type. + (struct timer_elt): Change fcn type to timer_func_t. + * i386/i386at/com.c (comstart): Cast `ttrstrt' to `timer_funct_t *' in + `timeout' call. + * i386/i386at/lpr.c (lprstart): Likewise, + + Return a value on non-void function + * i386/i386at/com.c (comcnprobe, comcninit, comcnputc): Return 0. + +2011-08-30 Samuel Thibault + + Fix copyright assignment + I have assigned copyright to the Free Software Foundation. + + * i386/i386/xen.h: Fix copyright assignment + * i386/xen/xen.c: Likewise. + * i386/xen/xen_boothdr.S: Likewise. + * i386/xen/xen_locore.S: Likewise. + * include/mach/xen.h: Likewise. + * xen/block.c: Likewise. + * 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. + +2011-08-30 Samuel Thibault + + Console declaration cleanup + * device/cons.h: Add multiple inclusion _DEVICE_CONS_H macro protector. + (struct consdev): Add function members prototypes. + * i386/i386/xen.h: Include . + * i386/i386at/com.c (comcnprobe, comcninit, comcngetc, comcnputc): Move + prototypes... + * i386/i386at/com.h: ... here. Include . + * i386/i386at/cons_conf.c [MACH_HYP]: Include . + [!MACH_HYP]: Include "kd.h". + [!MACH_HYP && NCOM > 0]: Include "com.h". + (hypcnprobe, hypcninit, hypcngetc, hypcnputc, kdcnprobe, kdcninit, kdcngetc, + kdcnputc comcnprobe, comcninit, comcngetc, comcnputc): Remove prototypes. + * i386/i386at/kd.c (kdcnputc): Make it return int, -1 on error, 0 on + success. + (kdcnprobe, kdcninit, kdcngetc, kdcnputc): Move prototypes... + * i386/i386at/kd.h: ... here. Include . + * xen/console.c (hypcnprobe): Remove unused `my_console' local variable. + * xen/console.h: Include + (hypcnputc, hypcngetc, hypcnprobe, hypcninit): Add prototypes. + +2011-08-30 Guillem Jover + + Move Linux module macros to their original header + * linux/pcmcia-cs/glue/wireless_glue.h (EXPORT_SYMBOL) + (SET_MODULE_OWNER): Move to ... + * linux/src/include/linux/module.h [!MODULE]: ... here. + + Move cdrom_sleep() definition to its original source file + * linux/dev/kernel/sched.c (cdrom_sleep): Move to ... + * linux/src/drivers/block/ide-cd.c [MACH]: ... here, make it static. + Include . + +2011-08-29 Samuel Thibault + + Make copyout run in 1 loop on >= i486 + * i386/i386/locore.S (copyout): On >= i486, skip WP-check loop split and just + use byte count. + +2011-08-28 Samuel Thibault + + Skip kernel WP check on i486 and above + * i386/i386/i386asm.sym (machine_slot.sub_type): Define. + * i386/i386/locore.S (copyout_retry): Skip if machine_slot[0].cpu_type > 3. + + Enable >4GiB cr3 + * i386/xen/xen_boothdr.S (__xen_guest): Add [extended-cr3] to PAE + (XEN_ELFNOTE_PAE_MODE): Likewise. + +2011-08-28 Samuel Thibault + + Disable ( + + Fix pmap_clear_bootstrap_pagetable with >4G mfns + * i386/intel/pmap.c (pmap_clear_bootstrap_pagetable): Use pte_to_pa instead + of atop. + + Rework memory mapping reservation + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE): Define to 192MiB. + * i386/i386at/model_dep.c (mem_size_init): Use VM_KERNEL_MAP_SIZE instead of + 1/6 factor. + * i386/intel/pmap.c (morevm): Remove. + (pmap_bootstrap): Use VM_KERNEL_MAP_SIZE instead of morevm. + + Move free_skbuffs declaration to the top + * device/ds_routines.c (free_skbuffs): Move declaration to the top. + +2011-08-27 Guillem Jover + + Initialize the new map entry when it's a projected buffer + * vm/vm_map.c (vm_map_fork): Call vm_map_entry_create for projected_on + buffers too. + + Fix initialization from incompatible pointer type + * linux/dev/glue/block.c (device_get_status): Cast `hg' to `unsigned long' + in ioctl call. + + Match signedness of char pointer comparisons and assignments + * linux/dev/drivers/block/genhd.c (msdos_partition): Cast `data' assignment + to `unsigned char *'. + * linux/src/drivers/block/ide-cd.c (cdrom_queue_request_sense): Cast + `buffer' assignment to `unsigned char *'. + (cdrom_transfer_packet_command): Change `cmd_buf' argument type to + `unsigned char *'. + (cdrom_read_capacity): Cast `pc.buffer' assignments to `unsigned char *'. + Use temporary `model' and `fw_rev' `const char *' variables to compare + against literal strings and characters. + * linux/src/drivers/block/ide.c (execute_drive_cmd): Cast `args' + assignment to `byte *'. + (ide_open): Cast `rq.buffer' assignment to `char *'. + (ide_release): Likewise. + (ide_ioctl): Likewise. + (do_identify): Cast variables being compared against literal string to + `char *'. + (probe_for_drive): Likewise. + * linux/src/drivers/block/ide.h (struct packet_command): Change `buffer' + type to `unsigned char *'. + + Always initialize A and X variables in BPF code + * device/net_io.c (bpf_do_filter): Remove lint conditional. + + Disable unused variables + * i386/i386at/com.c (comstart): Disable `i' variable. + * linux/src/drivers/net/at1700.c (net_close): Disable `lp' variable. + * linux/dev/include/linux/blk.h (end_request): Disable `nsect' variable + on MACH. + + Remove unused variables + * vm/memory_object_proxy.c (memory_object_create_proxy): Remove unused + `kr' variable. + * linux/dev/glue/block.c (free_buffer): Remove unused `i' variable. + (register_blkdev): Remove unused `err' variable. + (unregister_blkdev): Likewise. + (bread): Likewise. + (init_partition): Likewise. + * linux/dev/glue/net.c (device_write): Likewise. + + Remove ident tags producing preprocessor warnings + * linux/src/drivers/scsi/FlashPoint.c: Remove #ident tags. + + Add header for printf prototype + * vm/memory_object_proxy.c: Include . + + Add prototype for free_skbuffs function + * device/ds_routines.c [LINUX_DEV && CONFIG_INET] (free_skbuffs): Add + prototype. + + Add prototype for log function + * kern/debug.h (log): New prototype. + +2011-08-27 Samuel Thibault + + * Makefile.am (AM_CFLAGS): Add -fno-builtin-log. + +2011-08-27 Guillem Jover + + Add prototypes for locore functions + * i386/i386at/model_dep.c (discover_x86_cpu_type): Move ... + * i386/i386/locore.h: ... here. + (inst_fetch, cpu_shutdown): New prototypes. + * i386/i386at/kd.c: Include . + + Do not take obsolete and unused bcopy and bzero from libc + * Makefile.am (clib_routines): Remove bcopy and bzero. + + Use AC_LANG_SOURCE inside AC_LANG_CONFTEST to fix autoconf warning + * configure.ac (AC_LANG_CONFTEST): Wrap the source into a AC_LANG_SOURCE + call. + + Add a .gitignore file + * .gitignore: New file. + +2011-08-22 Samuel Thibault + + Make ipc_space_zone not exhaustible + Users of ipc_space_create() actually assume that it succeeds. + + * ipc/ipc_init.c (ipc_bootstrap): Create ipc_space_zone without EXHAUSTIBLE + flag. + +2011-08-22 Samuel Thibault + + Add more details to "zone exhausted" panics. + * kern/zalloc (zalloc): Add more details to "zone exhausted" panics. + +2011-08-21 Samuel Thibault + + Add 8byte breakpoint macro + * i386/i386/db_interface.h (I386_DB_LEN_8): Define macro. + +2011-08-18 Samuel Thibault + + Add compiler barrier to update_mapped_time + * kern/mach_clock.c (update_mapped_time): Add compiler barriers between + writes to shared memory. Update comment: on SMP, write barriers are + required. + +2011-08-10 Samuel Thibault + + Do not warn for cross-space spurious port deallocation + These are harmless (the target is stopped) and difficult to fix anyway. + + * ipc/mach_port.c (mach_port_destroy): Do not warn about spurious port + deallocation when SPACE is not equal to current_space(). + (mach_port_deallocate): Likewise. + +2011-08-10 Samuel Thibault + + Add more spurious deallocation debugging + * ipc/mach_port.c (mach_port_destroy): Print the current space and the + target space on spurious deallocation. + (mach_port_deallocate): Likewise. + +2011-07-21 Samuel Thibault + + Whitelist QEMU Hard-Drive for DMA. + PIO has become very slow in Linux 2.6.35+, so we do not really have the + choice any more. + + * linux/src/drivers/block/triton.c (good_dma_drives): Re-whitelist QEMU hard + drive. + +2011-05-19 Samuel Thibault + + Fix gcc 4.6 build + * linux/dev/include/linux/skbuff.h (skb_put, skb_push): Do not print the + address of a local label, gcc 4.6 does not build this and the debugger can + output it anyway. + * linux/src/include/linux/skbuff.h (skb_put, skb_push): Likewise. + +2011-05-18 Samuel Thibault + + Merge two asm constraints + * linux/src/drivers/scsi/ultrastor.c (find_and_clear_bit_16): Use + modifier + instead of using both a read and a write constraint. + +2011-05-09 Samuel Thibault + + Do not warn on vm_map_enter with fixed address failing + * vm/vm_map.c (vm_map_enter): Warn about missing room in map only if + anywhere is set. + +2011-04-24 Samuel Thibault + + Update constants to nowadays standards + Follow-up to fa6c711d + + * ipc/ipc_init.c (ipc_kernel_map_size): Increase to 8MiB. + +2011-04-23 Samuel Thibault + + Enable all caches + * i386/i386at/model_dep.c (i386at_init): Set CR0_CD and CR0_NW in CR0 + register. + + Drop spurious warning + * ipc/ipc_entry.c (ipc_entry_get): Do not warn when ipc_entry_get returns + KERN_NO_SPACE. + +2011-04-22 Samuel Thibault + + Warn once when part of the kernel is lacking space + * ipc/ipc_entry.c (ipc_entry_get, ipc_entry_grow_table): Warn when returning + KERN_NO_SPACE. + * vm/vm_map.c (vm_map_find_entry, vm_map_enter, vm_map_copyout, + vm_map_copyout_page_list): Warn when returning KERN_NO_SPACE. + +2011-04-22 Samuel Thibault + + Update constants to nowadays standards + Follow-up to fa6c711d + + * vm/vm_object.c (DEVICE_IO_MAP_SIZE): Increase to 16MiB. + * kern/kalloc.c (kalloc_map_size): Increase to 64MiB. + * i386/intel/pmap.c (morevm): Increase to 128MiB. + +2011-04-20 Samuel Thibault + + Warn once when part of the kernel is lacking memory + * kern/printf.h (printf_once): New macro. + * ipc/mach_port.c (mach_port_names, mach_port_get_set_status): Warn when + returning KERN_RESOURCE_SHORTAGE. + * vm/vm_kern.c: Include printf.h. + (kmem_alloc, kmem_realloc, kmem_alloc_wired, kmem_alloc_aligned, + kmem_alloc_pageable): Warn when failing. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Warn when returning + KERN_RESOURCE_SHORTAGE. + +2011-04-19 Samuel Thibault + + Close call stack on continuation + * i386/i386/locore.S (call_continuation): Push dummy return address instead + of letting the callee get a random one. + +2011-04-18 Arne Babenhauserheide + + Removed deprecated LINTLIBRARY #ifdefs + mach/mach_traps.h: Removed LINTLIBRARY #ifdefs. + mach/message.h: Removed LINTLIBRARY #ifdefs. + +2011-04-03 Samuel Thibault + + Fix build with kdb from make dist-generated tarball + * Makefrag.am (libkernel_a_SOURCES): Add ddb/db_cond.h, ddb/db_examine.h, + ddb/db_input.h, ddb/db_macro.h, ddb/db_trap.h. + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386/db_interface.h + +2011-03-21 Samuel Thibault + + Fix typo + * i386/i386at/kd.c (key_map): Fix K_PERIOD typo. + +2011-03-20 Samuel Thibault + + Clean kd.[ch] + * i386/i386at/kd.h (NUMSTATES): Fix comment about NORM_STATE. + * i386/i386at/kd.c (key_map): Use K_* macros instead of numeric values. + +2011-03-14 Samuel Thibault + + Also warn about mach_port_destroy on invalid ports + * ipc/mach_port.c (mach_port_destroy): Warn (and possibly call debugger) when + ipc_right_lookup_write didn't find the port name. + +2011-03-11 Samuel Thibault + + Fix continuation after keyboard debugger invocation + According to stack layout change in 5da1aea7 + + * i386/i386/locore.S [!MACH_XEN] (RET_OFFSET): Define to 12 instead of 8. + +2011-03-06 Samuel Thibault + + Enable global pages after enabling paging + * i386/i386at/model_dep.c (i386at_init): Enable CR4_PGE after enabling + CR0_PG. + +2011-03-05 Samuel Thibault + + Fix temporary direct mapping during page table enabling + * i386/i386at/model_dep.c (i386at_init): Count the number of actually + needed temporary L1 direct mapping by getting the last used address from + init_alloc_aligned(), instead of hardcoding it to 1 or 3, and then use a for + loop. + +2011-03-03 Samuel Thibault + + Keep supplementary L1 pages read-only + * i386/intel/pmap.c (pmap_bootstrap): Fix loop which keeps supplementary L1 + pages read-only: break as soon as one of the L1 supplementary pages has been + recognized, so that its pte does not get rewritten read-write. + +2011-02-27 Samuel Thibault + + Refuse to share IRQs at different interrupt levels + * linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Return -LINUX_EBUSY when + trying to share an IRQ between two different interrupt levels. + +2011-02-27 Samuel Thibault + + Re-enable updating pvlist for kernel_pmap + This partially reverts 0744feb6 + + * i386/intel/pmap.c (pmap_remove_range): Update pvlist for kernel_pmap too. + +2011-02-27 Samuel Thibault + + Acknoledge interrupt after handler call + This fixes interrupt overflows when software interrupts processing gets slower + than hardware. + + * i386/i386at/interrupt.S (interrupt): Issue EOI to PICs after having called + the interrupt handler and disabled interrupts through cli. + +2011-02-27 Samuel Thibault + + Detect interrupt overflow + * i386/i386/locore.S (int_from_instack): Check %esp against _intstack, issue + ud2 on stack overflow. + + Add x86 debug register Xen support + * i386/xen/xen_boothdr.S: Add global visibility to __hyp_* symbols. + * i386/i386/locore.S [MACH_XEN] (dr6,dr0,dr1,dr2,dr3): Make get_debugreg and + set_debugreg hypercalls to manipulate debug registers. + (dr0,dr1,dr2,dr3): Fix dr7 field shift. + * i386/i386/xen.h (hyp_set_debugreg, hyp_get_debugreg): New prototypes. + + Add prototypes for x86 debug registers + * i386/i386/db_interface.h (I386_DB_TYPE_X, I386_DB_TYPE_W, I386_DB_TYPE_RW, + I386_DB_LEN_1, I386_DB_LEN_2, I386_DB_LEN_4, I386_DB_LOCAL, + I386_DB_GLOBAL): New macros. + (dr0, dr1, dr2, dr3): New function prototypes. + + Fix for kdb watch command + * i386/intel/pmap.c (pmap_remove_range): Do not update pvlist for + kernel_map. + [MACH_KBD] (pmap_enter): Allow physical memory remapping. + +2011-02-26 Samuel Thibault + + Add console=comN boot option to enable serial console + * i386/configfrag.ac (RCLINE, RCADDR): Remove defines. + * i386/i386at/com.c: Include and + [!RCLINE] (RCBAUD, comcndev, comcnprobe, comcninit, comcngetc, comcnputc): + Declare and define macro, variable, and functions. + (rcline): New variable. + (kernel_cmdline): New declaration. + (comcnprobe): Detect "console=comN" option and set rcline accordingly, use + rcline instead of RCLINE for serial console selection. + * i386/i386at/cons_conf.c [NCOM>0 && !RCLINE] (comcnprobe, comcninit, + comcngetc, comcnputc): Declare functions. + [NCOM>0 && !RCLINE] (constab): Enable "com" console. + * i386/i386at/kd_event.c (kbdopen): Call kdinit function, for when the + VGA+pckbd console was not initialized. + +2011-02-09 Samuel Thibault + + xen block: Add more legacy hd* name support + * xen/block.c (hyp_block_init): Add IDE 3-10 device number recognition. Skip + unknown block device numbers. + +2011-02-07 Samuel Thibault + + Defer Xen device initialization to device_service_create + * device/device_init.c (device_service_create) [MACH_HYP]: Call + hyp_dev_init. + * xen/xen.c (hyp_init): Do not call hyp_block_init and hyp_net_init, now + called in ... + (hyp_dev_init): New function. + * xen/xen.h (hyp_dev_init): New declaration. + + Add rx-copy support to netfront + * xen/net.c (net_data): Add rx_copy field. + (enqueue_rx_buf): When rx_copy != 0, give grant on buffer to domD instead of + issuing a transfer from domD. + (hyp_net_intr): When rx_copy != 0, take back grant on buffer instead of + finishing transfer. Do not panic on packet error, free kmsg on error. + (hyp_net_init): Check for feature-rx-copy in backend, write 1 to + request-rx-copy in such case. Wait for Connected state before continuing. + Only unmap buffer when rx_copy is 0. + +2011-01-31 Diego Nieto Cid + + * doc/mach.texi (device_set_filter): Document filter header. + Acked-by: Richard Braun + +2011-01-31 Samuel Thibault + + Enable pae_extended_cr3 in pmap_bootstrap + * i386/i386/gdt.c (gdt_init): Do not enable VMASST_TYPE_pae_extended_cr3. + * i386/intel/pmap.c (pmap_bootstrap): Enable VMASST_TYPE_pae_extended_cr3. + + Enable Xen >4GiB physical memory support + * i386/i386/gdt.c (gdt_init): Enable VMASST_TYPE_pae_extended_cr3. + * i386/i386/xen.h: Drop actually-unneeded comment. + * i386/xen/xen_boothdr.S (FEATURES) [MACH_PSEUDO_PHYS]: Add pae_pgdir_above_4gb. + (XEN_ELFNOTE_FEATURES) [MACH_PSEUDO_PHYS]: Add pae_pgdir_above_4gb. + + Drop kbd device on xen + * i386/Makefrag.am (libkernel_a_SOURCES): Move i386/i386at/kd_event.[ch] and + i386/i386at/kd_queue.[ch] to [PLATFORM_at]. + * i386/i386at/conf.c (dev_name_list): Move kbd device to [!MACH_HYP]. + +2011-01-15 Samuel Thibault + + Avoid dropping kd_intr when RCLINE is >= 0 + * i386/i386at/kd.c (kdintr): Return immediately if !kd_initialized. + * i386/i386at/pic_isa.c (ivect) [RCLINE >= 0]: Enable kdintr in that case + too. + +2011-01-15 Samuel Thibault + + Move -d and -H parse to kern/startup.c + The code is arch-independant, and reboot_on_panic, used by kern/debug.c + would be undefined on non-i386. + + * i386/i386at/model_dep.c (reboot_on_panic, c_boot_entry): Move -d and -H parse + to... + * kern/startup.c (reboot_on_panic,setup_main): ... here. Include + +2010-12-09 Samuel Thibault + + memcpy operands are not supposed to overlap + * include/string.h (memmove): Add prototype. + * i386/i386at/immc.c (immc_cnputc): Replace memcpy with memmove. + +2010-10-24 Samuel Thibault + + Avoid harmless warning + * i386/i386at/kd.c (kd_setleds1): Only display unexpected state warning when + debugging is enabled. + +2010-10-23 Samuel Thibault + + Add prototype for strstr + * include/string.h (strstr): Add prototype. + + Add prototype for discover_x86_cpu_type + * i386/i386at/model_dep.c (discover_x86_cpu_type): Add prototype. + + Warn on unknown CPU family + * i386/i386at/model_dep.c (c_boot_entry): Warn in the default case for + cpu_type. + + Recognize P4 and Opteron-like as pentium pro + * i386/i386at/model_dep.c (c_boot_entry): Treat cpu_type 15 as Pentium pro. + +2010-09-19 Samuel Thibault + + Fix device_get/set_status ABI for NET_FLAGS + * linux/dev/glue/net.c (device_get_status): Compare count with 1 instead + of sizeof(short). Access *status instead of *(short *) status. + (device_set_status): Likewise. + +2010-09-14 Thomas Schwinge + + Merge branch 'typo-print' + +2010-09-14 Thomas Schwinge + + Typo fix. + * i386/i386/trap.c (user_trap): Call printf, not print. + +2010-09-14 Samuel Thibault + + Fix ifunc entries + * i386/ldscript: Update to the version from binutils 2.20.51.20100617. + Remove SEARCH_DIR calls. + * Makefile.am (clib_routines): Accept undefined __rel_iplt_start and + __rel_iplt_end as these come from the ldscript. + * i386/i386at/boothdr.S (boot_entry): Call ifunc hooks at boot. + * i386/xen/xen_boothdr.S (start): Likewise. + +2010-09-08 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix non-contiguous PCI functions + * linux/src/drivers/pci/pci.c (scan_bus): Do not set `is_multi' to 0 + when a hole is encountered. Detect 0000:ffff and ffff:0000 vendor ID as + holes too. + +2010-08-27 Guillem Jover + + Fix "make dist" + * Makefile.am (EXTRA_DIST): Remove ChangeLog.0, ChangeLog.00 and + Makefile.correct_output_files_for_.S_files.patch. + * Makefrag.am (libkernel_a_SOURCES): Add ipc/mach_port.h, + kern/ipc_mig.h, kern/machine.h, util/putchar.h, util/atoi.h, + vm/vm_resident.h, vm/vm_types.h and device/subrs.h. + Remove kern/time_out.h. + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/autoconf.h, + i386/i386at/com.h, i386/i386at/int_init.h, i386/i386/loose_ends.h, + i386/i386/model_dep.h, i386/intel/read_fault.h and i386/i386/xen.h. + Remove i386/i386/timer.h. + * linux/Makefrag.am (liblinux_a_SOURCES): Add + linux/src/drivers/net/sis900.h. + * xen/Makefrag.am (libkernel_a_SOURCES): Add xen/public/arch-x86_32.h + xen/public/arch-x86_64.h, xen/public/arch-x86/xen.h, + xen/public/arch-x86/xen-mca.h, xen/public/arch-x86/xen-x86_32.h, + xen/public/arch-x86/xen-x86_64.h, xen/public/callback.h, xen/public/COPYING, + xen/public/dom0_ops.h, xen/public/domctl.h, xen/public/elfnote.h, + xen/public/elfstructs.h, xen/public/event_channel.h, xen/public/features.h, + xen/public/grant_table.h, xen/public/io/blkif.h, xen/public/io/console.h, + xen/public/io/fbif.h, xen/public/io/fsif.h, xen/public/io/kbdif.h, + xen/public/io/netif.h, xen/public/io/pciif.h, xen/public/io/protocols.h, + xen/public/io/ring.h, xen/public/io/tpmif.h, xen/public/io/xenbus.h, + xen/public/io/xs_wire.h, xen/public/kexec.h, xen/public/libelf.h, + xen/public/memory.h, xen/public/nmi.h, xen/public/physdev.h, + xen/public/platform.h, xen/public/sched.h, xen/public/sysctl.h, + xen/public/trace.h, xen/public/vcpu.h, xen/public/version.h, + xen/public/xencomm.h, xen/public/xen-compat.h, xen/public/xen.h, + xen/public/xenoprof.h, xen/block.h, xen/console.h, xen/evt.h, + xen/grant.h, xen/net.h, xen/ring.h, xen/store.h, xen/time.h and xen/xen.h. + +2010-08-26 Samuel Thibault + + Do not advice to install libc0.3-xen on 4gb_segment trap + ext2fs.static will trigger some anyway. Instead, provide an easy way to + track how many traps happen. + + * i386/i386/gdt.c [MACH_XEN] (gdt_init): Disable enabling + VMASST_TYPE_4gb_segments_notify. + * i386/i386/trap.c [MACH_XEN] (user_trap): Remove printing libc0.3-xen + installation advice on 4gb_segments trap. Instead, print a count every 10000 + traps, and disable them on the 1000000th. + +2010-08-22 Samuel Thibault + + Disable 4gb segment emulation notification on first notification + i386/i386/trap.c [MACH_XEN] (user_trap): Disable + VMASST_TYPE_4gb_segments_notify on trap 15. + + Report Xen 4gb segment emulation + * i386/i386/gdt.c [MACH_XEN] (gdt_init): Enable VMASST_TYPE_4gb_segments_notify. + * i386/i386/idt_inittab.S [MACH_XEN]: Set trap 15 as pushing an error + code. + * i386/i386/trap.c [MACH_XEN]: Print trap 15 first occurrence. + +2010-08-01 Samuel Thibault + + Fix unexpected irq + irq timeout on write + * linux/src/drivers/block/ide.c (do_rw_disk): Set IRQ handler before + issuing write command. + + Move read-only sections to after text section + +2010-07-31 Samuel Thibault + + Un-whitelist the QEMU harddisk for DMA support + * linux/src/drivers/block/triton.c (good_dma_drives): Remove "QEMU HARDDISK". + + Put a name on the 16MiB magic number + * linux/dev/glue/kmem.c (MEM_DMA_LIMIT): New macro + (linux_kmem_init): Replace 16 * 1024 * 1024 occurrences with + MEM_DMA_LIMIT. + +2010-06-25 Jeremie Koenig + + Route BLKRRPART to partitions layer + * linux/dev/glue/block.c (device_set_status): New function + (linux_block_emulation_ops): Set set_status field to device_set_status. + +2010-04-16 Samuel Thibault + + Add memory clobbers to segment selector loaders + * i386/i386/seg.h (lldt): Add memory clobber to lldt asm + snippet. + * i386/i386/tss.h (ltr): Add memory clobber to ltr asm + snippet. + +2010-04-08 Samuel Thibault + + Fix bootstrap additional mapping + * i386/intel/pmap.c (pmap_bootstrap): Use pt_entry_t type + instead of vm_offset_t to map additional kernel space. + + Extend machine addresses to 64bit for PAE + * i386/i386/pcb.c (switch_ktss): Use uint64_t for descriptor + type instead of unsigned long long. + * i386/i386/seg.h (fill_descriptor): Use uint64_t for descriptor + type instead of unsigned long long. Cast result of kv_to_ma() + into vm_offset_t before printing. + * i386/i386/xen.h (hyp_mmu_update_pte): Use pt_entry_t type + instead of unsigned long long, make pte parameter a pt_entry_t + too. + (hyp_mmu_update_pte): Compute pte address just using pt_entry_t + integers. + (hyp_high): New macro to fix 32bit right shifting. + (hyp_do_update_descriptor): Use pt_entry_t type for machine + address instead of unsigned long. Split it in 32bit parts. Use uint64_t + for descriptor type instead of unsigned long long. + (update_va_mapping): Use pt_entry_t type instead of unsigned + long long. Use hyp_high macro. + (hyp_invlpg): Use uint64_t for time type instead of unsigned + long long. + * i386/intel/pmap.c (pmap_bootstrap): Use ptetokv instead of + pte_to_pa + phystokv. Cast machine addresses into vm_offset_t + before printing. + (pmap_set_page_readwrite): Likewise. + (pmap_set_page_readonly): Likewise + (pmap_set_page_readonly_init): Likewise + (pmap_clear_bootstrap_pagetable): Likewise + (pmap_destroy): Likewise + (pmap_map_mfn): Use pt_entry_t type for machine addresses. Cast + machine addresses into vm_offset_t before printing. + * i386/intel/pmap.h [PAE] (INTEL_PTE_PFN): Set macro to + 0xfffffffffffff000ULL. + * include/mach/xen.h [PAE] (pa_to_ma, ma_to_pa): Use pt_entry_t + type for machine addresses. + [!PAE] (pa_to_ma): Remove cast to vm_offset_t. + (mfn_to_kv): Use mfn_to_pfn + ptoa instead of ptoa + ma_to_pa. + * xen/xen.c (hyp_invalidate_pte): Cast machine addresses into + vm_offset_t before printing. + +2010-04-06 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix crash on Xen when no module is provided + * kern/bootstrap.c (bootstrap_create): Iterate over bmods only + if is not NULL. + +2010-03-15 Thomas Schwinge + + Require GNU Automake 1.10.2. + 9ff49d9648debffbe42d18863c739d37bcdb50b4's config.status.dep.patch is fit for + 1.10.2 (released in November 2008) and later, and is no longer suitable for + 1.10.1. + + * configure.ac (AM_INIT_AUTOMAKE): Require 1.10.2. + +2010-03-14 Samuel Thibault + + Fix Xen build without kdb + * xen/console.c (hypcnintr): Use #if MACH_KDB instead of #ifdef + MACH_KDB. + + Add mem device + * i386/Makefrag.am (libkernel_a_SOURCES): Add + i386/i386at/iopl.c. + * i386/i386at/conf.c [!MACH_HYP] (memmmap): Declare function. + (memname): Add macro. + (dev_name_list): Add mem device. + * i386/i386at/mem.c: New file. + +2010-03-02 Samuel Thibault + + whitelist the QEMU harddisk for DMA support + * linux/src/drivers/block/triton.c (good_dma_drives): Add + "QEMU HARDDISK". + +2010-01-04 Samuel Thibault + + ignore bogus FDPT information from BIOS + +2009-12-22 Samuel Thibault + + Align mach_port_deallocate debug flag with usage + * 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 deallocation + * 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/gnumach + +2009-12-22 root + + Fix debugger trigger + * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 + * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of + panicing. + +2009-12-21 Samuel Thibault + + Invoke debugger on duplicate port deallocation + * 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 function + * 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. + +2009-12-19 Samuel Thibault + + Document kdb_kintr stack manipulation + * i386/i386/locore.S: Document kdb_kintr stack manipulation. + +2009-12-19 root + + Fix debugger trigger + * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 + * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of + panicing. + +2009-12-18 Guillem Jover + + Add missing casts + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Cast `prevmemp' + assignement to vm_page_t. + + Add missing function prototypes + * i386/i386/pcb.c (Load_context): New prototype. + * i386/i386at/lpr.c (lprpr_addr): Likewise. + + Use `unsigned char *' for byte buffers + * 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 used + * 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 lcall + * 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 value + * 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 code + * linux/src/include/asm-i386/segment.h [MACH]: Include + and . + [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 tree + * linux/dev/include/asm-i386/segment.h: Move to ... + * linux/src/include/asm-i386/segment.h: ... here. + + Match function types with `struct tty' member functions + * i386/i386at/com.c (comstart): Change return type to `void'. + * i386/i386at/lpr.c (lprstop): Likewise. + + Use explicit type int when defining register variables + * linux/src/drivers/scsi/aha1542.c (WAIT, WAITd): Define variables + with explicit type `register int' and not just `register'. + +2009-12-16 Samuel Thibault + + Add Xen support + 2009-03-11 Samuel Thibault + + * 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 + + * 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 + + * i386/configfrag.ac (enable_pae): Enable by default on the Xen + platform. + + 2007-11-14 Samuel Thibault + + * i386/i386at/model_dep.c (machine_relax): New function. + (c_boot_entry): Refuse to boot as dom0. + + 2007-10-17 Samuel Thibault + + * i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr(). + + 2007-08-12 Samuel Thibault + + * 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 + + * 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 + + * device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices. + + 2007-02-19 Thomas Schwinge + + * 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 + Thomas Schwinge + + * i386/xen/Makefrag.am: New file. + * xen/Makefrag.am: Likewise. + * xen/configfrag.ac: Likewise. + + 2007-02-11 (and later dates) Samuel Thibault + + 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/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(), + do not enable CR0_EM. + * i386/i386/gdt.c: Include and . + [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 . + [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 . + [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 and + [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 . 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_HYP] (mp_desc_init): Panic. + * i386/i386/pcb.c: Include . + [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_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] (fill_descriptor): Register descriptor with hypervisor. + * i386/i386/spl.S: Include and + [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 , . + [MACH_XEN] Include , , , + . + [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_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_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. + +2009-11-30 Samuel Thibault + + Add stack-protector support + * kern/debug.c (__stack_chk_guard): New variable + (__stack_chk_fail): New function. + + Use gcc builtins for stdarg.h when available + * 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. + +2009-11-28 Samuel Thibault + + Fix commit d088a062 + * vm/memory_object_proxy.c: New file. + +2009-11-28 Samuel Thibault + + Add memory object proxies + 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 + + * 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-28 Samuel Thibault + + Add -H option to halt on panic + 2005-12-29 Soeren D. Schulze + + * 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-28 Samuel Thibault + + Add sis900 driver + 2005-05-01 Andreas B. Mundt + + * 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-28 Samuel Thibault + + Add XMM FPU registers save/restore support. + * 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 + (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 message + * i386/i386/fpu.c (fphandleerr): Fix debugging message. + + Add native FPU error support + * 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 available + * i386/i386/fpu.c (init_fpu): Panic if no FPU is available. + + Initialize FPU in MS-DOS compatibility mode + * i386/i386/fpu.c (init_fpu): Make sure CR0_NE is dropped. + +2009-11-22 Samuel Thibault + + Declare memcmp function + * include/string.h (memcmp): New prototype. + + Do not fail if no PTE maps virtual address 0 + * i386/intel/pmap.c (pmap_unmap_page_zero): Do not fail if no PTE maps + virtual address 0. + + Remove (vm_offset_t) casts from constants + * 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. + * kern/startup.c (cpu_launch_first_thread): Call startrtclock + really after starting at least one thread. + + Add pmap parameter to INVALIDATE_TLB + * 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 declaration + * i386/i386/model_dep.h (phys_first_addr, phys_last_addr): New + declarations. + * i386/i386/trap.c: Include + (user_trap): Remove extern declaration of phys_last_addr. + * i386/intel/pmap.c: Include + (phys_first_addr, phys_last_addr): Remove extern declaration. + + Use typeof(boot_info) + * i386/i386at/model_dep.c (i386at_init): Use typeof(boot_info) + instead of hardcoding struct multiboot_info*. + + Fix early interrupt crash + * i386/i386at/model_dep.c (i386at_init): Move int_stack_high + assignation to before setting up interrupts. + + Add missing phystokv/kvtophys conversions + * 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 list + * 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_ADDRESS + * 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 vars + * i386/i386/pcb.c (switch_ktss): Rename ldt variable into tldt. + + Do not assume that VM_MIN_KERNEL_ADDRESS is 0 + * 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.h + * i386/i386/spl.h (splnet, splbio, spl7, splx_cli): Add + prototypes. + + Do not assume that VM_MIN_KERNEL_ADDRESS is 0 + * 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 loop + * i386/i386/db_interface.c (db_search_null): Do not decrease + vaddr twice. + + Introduce KERNEL_RING + * 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_atoi + * i386/i386at/kd.c: Include + (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-16 Guillem Jover + + Update dependency patch for Automake 1.10.2, 1.11, and thereabouts. + * config.status.dep.patch: Refresh. + +2009-11-11 Zheng Da + + Fix a bug in vm_page_grab_contiguous_pages. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Maintain the free vm page queue correctly. + +2009-11-01 Samuel Thibault + + Show EATA probing progression + * linux/src/drivers/scsi/eata.c (port_detect): Print the port being + probed. + +2009-10-26 Samuel Thibault + + Fix VM_MAX_ADDRESS default + * i386/include/mach/i386/vm_param.h (VM_MAX_ADDRESS): Set back to 0xc0000000 by + default. + + Make tuning VM_MAX_ADDRESS trivial + * 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. + + Fix build + * i386/i386at/com.h (comtimer): Fix prototype of comtimer. + +2009-10-25 Samuel Thibault + + Fix warning + * i386/i386at/autoconf.c: Include even when [!LINUX_DEV]. + + Fix warning + * i386/i386/trap.h: Include + + Fix warning + * i386/i386/pcb.c (thread_setstatus): Comment out state variable + declaration. + + Fix warning + * device/net_io.c (net_set_filter): Cast filter into bpf_insn_t for + bpf_eq call. + + Fix warning + * i386/i386/locore.S (TIME_INT_ENTRY): Fix comment. + + Fix warning + * i386/intel/pmap.c (i): Declare only when [NCPUS > 1]. + +2009-10-20 Samuel Thibault + + Fix warnings + * 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. + + Fix warnings + * 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 . + (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 . + (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. + + Fix warnings + * device/tty.h (tty): Set type of t_ispeed and t_ospeed members to + unsigned char instead of (potentially signed) char. + + Fix warnings + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Remove unused + count_zeroes and not_found_em labels. + + Fix warning + * vm/vm_pageout.c (vm_pageout_scan): Remove unused Restart label. + + Fix warning + * vm/vm_map.c (vm_map_lookup): Add braces to fix readability. + + Fix warning + * kern/thread.c (_s_): Remove unused variable. + + Fix warnings + * 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. + + Fix boot from grub2 with more than 800MiB memory + * 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. + + Better estimate avail_remaining + * i386/i386at/model_dep.c (mem_size_init): Move avail_remaining computation to + after all phys_last_addr corrections. + +2009-10-18 Samuel Thibault + + Revert "Fix multiboot compliancy concerning x86 D flag" + This reverts commit de00e82b8c4491a4ff3320c0ddd80ac91ed0977b. + + Flags already get cleared using push/pop a few instructions later. + +2009-10-17 Samuel Thibault + + Fix multiboot compliancy concerning x86 D flag + i386/i386at/boothdr.S (boot_entry): Clear D flag. + +2009-10-14 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Update constants to nowadays standards + kern/zalloc.c (zone_map_size): Increase to 64MiB. + i386/i386at/model_dep.c (mem_size_init): Reduce cap to 1/6 of memory + space to save room for zalloc area. + linux/src/drivers/block/ide.h (INITIAL_MULT_COUNT): Set to 16. + vm/vm_map.h (VM_MAP_COPY_PAGE_LIST_MAX): Set to 64. + vm/vm_object.c (vm_object_cached_max): Set to 4000. + +2009-10-14 Thomas Schwinge + + Merge branch 'master-zhengda' + +2009-10-14 Zheng Da + + Apply patch #6851: fix a bug in BPF * net_io.c (net_filter): Correct the amount of data of a packet accepted by BPF. + +2009-10-14 Samuel Thibault + + Fix yet more allocation failures during gc + kern/zalloc.c (zone_gc): Allocate and free two vm_map_kentry_zone elements to + make sure the gc will be able to allocate two in vm_map_delete. + + Revert spurious part of 909c941d + + Fix db kernel memory access + i386/i386/db_interface.c (db_read_bytes): Also check addr against + VM_MAX_KERNEL_ADDRESS. + + Fix macro escapes + i386/intel/pmap.c (INVALIDATE_TLB): Fix macro escapes + + Fix allocation failure during gc + 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. + + More restrictive requirements on zone alignment + kern/zalloc.c (zinit): Panic if requested alignment doesn't match page + size and list elements. + + Fix return with lock held + vm/vm_map.c (vm_map_copy_overwrite): Unlock dst_map before returning. + + Fix return with lock held + vm/vm_map.c (vm_map_enter): Use RETURN instead of return to unlock the + map before returning. + + Make local variable static + kern/lock.c (lock_wait_time): Add static qualifier. + + Advertise memory size truncations + i386/i386at/model_dep.c (mem_size_init): Advertise memory size + truncations. + +2009-09-27 Samuel Thibault + + Disable CMD-640 support + 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-11 Thomas Schwinge + + Switch to the new ChangeLog style. + * ChangeLog: Wipe out content, and add instructions about how to get it back. + * ChangeLog.0: Remove file. + * ChangeLog.00: Likewise. + +2009-02-26 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-01-05 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. For now, disable use of invlpg. + +2008-12-30 Samuel Thibault + + * i386/i386/proc_reg.h [__ASSEMBLER__ && __GNUC__]: Include + and + (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. + +2008-12-29 Samuel Thibault + + * i386/intel/pmap.c (pmap_bootstrap): Extend kernel virtual memory to + at least the size of the physical memory. + +2008-12-05 Samuel Thibault + + * vm/vm_fault.c (vm_fault_page): Print value returned + memory_object_data_request as %x instead of %d. + +2008-11-15 Shakthi Kannan + + * 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 + + * 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. + +2008-11-28 Thomas Schwinge + + * doc/Makefrag.am: Only advertize updating the web pages on + gnumach-1-branch. + +2008-11-27 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. + +2008-11-23 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. + +2008-11-17 Thomas Schwinge + + * Makefile.am (install_sh, INSTALL): Point to `build-aux/install-sh'. + Make use of its `-C' option. + + * configure.ac: Require GNU Automake 1.10.1. + * Makefile.am: Adapt. + * Makefile.correct_output_files_for_.S_files.patch: Remove. + +2008-07-19 Barry deFreese + + * 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. + +2008-11-13 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. + +2008-11-11 Shakthi Kannan + + * kern/eventcount.c (evc_wait_clear): Remove unused variable 'ret'. + +2008-11-10 Samuel Thibault + + [task #8135 -- PAE for GNU Mach] + * i386/configfrag.ac: Add --enable-pae option, which defines PAE. + * i386/i386/i386asm.sym (PDPSHIFT, PDEMASK, PTE_SIZE): New assembly + macros. + * i386/i386/locore.S (copyout_retry) [PAE]: Use page directory pointer + bits, take PTE_SIZE into account. + * i386/i386at/model_dep.c (i386at_init) [PAE]: Set second initial 2MB + page. Enable PAE bit. Set cr3 to page directory pointer table instead + of page directory. + * i386/intel/pmap.c (pmap_bootstrap, pmap_create) [PAE]: Allocate 4 + pages for dirbase. Setup pdpbase. + (pmap_destroy) [PAE]: Free 4 pages from dirbase. Free pdpbase. + * i386/intel/pmap.h (pt_entry_t) [PAE]: Typedef to unsigned long long. + (PDPSHIFT, PDPNUM, PDPMASK) [PAE]: New macros. + (PDESHIFT, PDEMASK, PTEMASK) [PAE]: Set to PAE values. + (lin2pdenum, NPDES) [PAE]: Make them take the page directory pointer + index into account too. + (struct pmap) [PAE]: 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. + +2008-11-05 Shakthi Kannan + + * ipc/mach_port.c (mach_port_insert_right): Cast poly into + (ipc_object_t) to fix compiler warning when calling + ipc_object_copyout_name. + +2008-08-31 Samuel Thibault + + * i386/i386/trap.c (user_trap): On page fault, raise exception instead + of asserting that cr2 is below LINEAR_MIN_KERNEL_ADDRESS. + +2008-07-29 Zheng Da + Manuel Menal + + * 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. + +2008-08-03 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. + +2008-07-23 Barry deFreese + + * device/chario.c (ttyinput_many): Change chars param to char *. + * device/tty.h (ttyinput_many): Likewise. + * i386/i386/pcb.h: Include . + * i386/i386at/autoconf.h: Include . + * 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. + +2008-07-23 Barry deFreese + + * 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. + +2008-07-19 Barry deFreese + + * 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(). + +2008-07-20 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. + * device/net_io.c (net_deliver): Fix parenthesis to really round up. + * kern/mach_clock.c (timeout): Make the `fcn' parameter take a void * + instead of char *. + * kern/mach_clock.h (timeout): Likewise. + * 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. + * linux/src/include/linux/tqueue.h (queue_task_irq, + queue_task_irq_off, queue_task, run_task_queue): Turn into static + inlines. + +2008-07-19 Barry deFreese + + * device/dev_hdr.h (dev_name_lookup, dev_set_indirection): Add + prototypes. + * device/dev_pager.c: Include . + * device/ds_routines.c: Likewise. + * device/subrs.c: Likewise. + * device/device_init.c: Include . + * 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 . + Change include to . + (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/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/i386at/kd_mouse.c: Likewise. + * i386/i386/pit.h (clkstart): Add prototype. + * i386/i386/trap.c: Include , , + . + * i386/i386/trap.h (interrupted_pc): Add prototype. + * i386/i386/user_ldt.c: Include . + * i386/i386at/autoconf.h: New header. + * i386/i386at/com.h: New header. + * i386/i386at/com.c: Include , . + * i386/i386at/idt.h (idt_init): Add prototype. + * i386/i386at/int_init.h: New header. + * i386/i386at/kd.c: Include . + * kern/debug.c: Likewise. + * i386/i386at/kd_event.c: Include . + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/kd_mouse.c: Include , . + * i386/i386at/lpr.c: Include + * i386/i386at/model_dep.c: Include: , , + , , , , + , , , + , . + * i386/i386at/rtc.h (readtodc, writetodc): Add prototypes. + * i386/intel/pmap.h: Include . + (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/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/syscall_subr.c: Include . + (thread_depress_abort): Remove prototype. + * kern/syscall_subr.h: Include , + (thread_depress_abort): Add prototype. + * kern/syscall_sw.c: Include: . + * kern/task.h (consider_task_collect): Add prototype. + * kern/thread.c: Include , , + . + * kern/thread.h (stack_collect): Add prototype. + * linux/pcmcia-cs/glue/pcmcia_glue.h (Debugger): Remove prototype. + * util/putchar.c: Include . + * util/putchar.h: New header. + * util/puts.c: Include , . + * vm/memory_object.c: Include . + (memory_object_data_provided): Move function below + memory_object_data_supply definition. + * vm/vm_init.c: Include . + * vm/vm_kern.h (projected_buffer_in_range): Add prototype. + * vm/vm_map.c: Include , . + (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 , , + . + * vm/vm_resident.h: New header. + * vm/vm_user.c: Include . + * vm/pmap.h (pmap_pageable, pmap_map_bd): Add prototype. + +2008-07-18 Andrei Barbu + + * 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. + * i386/i386/db_interface.c (db_read_bytes): Do not increment the + address before printing it. + * 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. + * ddb/db_sym.c (db_task_printsym): Do not print empty symbols. + * 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. + * (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. + * include/sys/types.h (quad): Remove type. + +2008-07-15 Barry deFreese + + * device/cons.c (cnputc): Turn parameter `c' into a char. + * device/cons.h (cninit, cngetc, cnmaygetc, cnputc): Add prototypes. + * i386/i386at/model_dep.c: Include + * kern/printf.c: Include + (cnputc): Remove prototype. + (vprintf, iprintf): Explicitely cast cnputc into the type _doprnt + expects. + * linux/dev/kernel/printk.c: Include + (cnputc): Remove prototype. + * device/ds_routines.c: Include + * ipc/ipc_kmsg.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/exception.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/time_stamp.c: Likewise. + * vm/vm_kern.c: Likewise. + * device/ds_routine.h (ds_notify): Add prototype. + * kern/ipc_kobject.c: Include + * device/net_io.h (net_ast): Add prototype. + * ipc/ipc_kmsg.c: Include + * kern/ast.c: Include + * i386/i386at/kd.h (kd_isupper, kd_islower, kd_senddata, kd_sendcmd, + kd_cmdreg_write, kd_mouse_drain, set_kd_state, kd_setleds1, kd_setleds2, + cnsetleds, kdreboot, kd_putc, kd_parseesc, kd_down, kd_up, kd_cr, + kd_tab, kd_left, kd_right, kd_scrollup, kd_scrolldn, kd_cls, kd_home, + kd_atoi, kd_insch, kd_cltobcur, kd_cltopcur, kd_cltoecur, kd_clfrbcur, + kd_eraseln, kd_insln, kd_delln, kd_delch, kd_erase, kd_bellon, + kd_belloff, kdinit, kdsetkbent, kdgetkbent, kdsetbell, kd_resend, + kd_handle_ack, kd_kbd_magic, kdstate2idx, kd_parserest, kdcnmaygetc, + kd_slmwd, kd_slmscu, kd_slmscd): Add prototypes. + * i386/i386at/kd.c (do_modifier): Add prototype. + * kern/ipc_kobject.c: Include + * vm/vm_object.h: Include and . + (vm_object_coalesce, vm_object_pager_wakeup): Add prototypes. + * kern/priority.c: Include . + * kern/sched_prim.c (recompute_priorities, update_priority): Remove + prototypes. + * kern/sched_prim.h (update_priority, compute_my_priority): Add + prototypes. + * kern/time_stamp.h (timestamp_init): Add prototype. + * kern/startup.c: Include . + * ipc/ipc_kmsg.c: Include and . + * ipc/ipc_mqueue (ipc_mqueue_copyin): Add prototype. + * kern/bootstrap.c: Include . + * kern/exceptions.c: Include . + * kern/ipc_kobject.h (ipc_kobject_notify): Add prototype. + * kern/ipc_mig.c: Include . + * kern/pc_sample.c: Include . + * kern/printf.h (safe_gets): Add prototype. + * kern/processor.c: Include . + * kern/queue.h (insque): Add prototype. + * kern/startup.c: Include and . + * kern/thread.h (thread_start, kernel_thread, thread_priority, + thread_set_own_priority, thread_max_priority, thread_policy, + consider_thread_collect, stack_privilege): Add prototypes. + * kern/timer.h (timer_normalize, timer_init, init_timers): Add + prototypes. + * vm/vm_map.h (vm_map_lookup_entry, vm_map_entry_delete): Add + prototypes. + * device/chario.c: Include + * device/device_init.c (chario_init): Remove prototype. + * device/tty.h (ttyinput_many, tty_cts, tty_get_status, + tty_set_status, tty_flush, ttrstrt, ttstart, ttyclose, tty_portdeath, + chario_init): Add prototypes. + * i386/i386/model_dep.h: New header. + * i386/i386at/model_dep.c: Include . + * kern/debug.c: Include . + * kern/mach_clock.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/machine.c: Likewise. + (halt_cpu): Remove prototype. + * vm/pmap.h (pmap_grab_page): Add prototype. + * ipc/mach_port.h: New header. + * ipc/mach_port.c: Include . + (mach_port_get_receive_status): Add forward declaration. + * kern/bootstrap.c: Include . + * kern/ipc_mig.c: Likewise. + * kern/syscall_sw.c: Likewise. + * device/dev_pager.c (device_pager_data_request, + device_pager_data_request_done, device_pager_init_pager): Fix printf + formats. + * i386/i386/debug_i386.c (dump_ss): Likewise. + * i386/i386/trap.c (user_trap): Likewise. + * i386/i386at/com.c (comtimer): Likewise. + * ipc/ipc_notify (ipc_notify_port_deleted, ipc_notify_msg_accepted, + ipc_notify_port_destroyed, ipc_notify_no_senders, + ipc_notify_send_once, ipc_notify_dead_name): Likewise. + * kern/ipc_kobject.c (ipc_kobject_destroy): Likewise. + * kern/sched_prim.c (do_runq_scan): Likewise. + * linux/pcmcia-cs/clients/smc91c92_cs.c (smc_start_xmit): Likewise. + * linux/src/drivers/net/sundance.c (start_tx): Likewise. + * vm/vm_fault.c (vm_fault_page): Likewise. + * vm/vm_map.c (vm_map_pmap_enter): Likewise. + * vm/vm_object.c (vm_object_collapse): Likewise. + +2008-07-04 Samuel Thibault + + * linux/src/drivers/net/rtl8139.c (rtl8129_open): Move IRQ + initialization after ring initialization. + +2008-07-02 Samuel Thibault + + * linux/dev/include/asm/segment.h (__put_user, __get_user): Add + always_inline attribute. + +2008-06-29 Samuel Thibault + + * i386/i386/fpu.c (fpintr): Do not panic if the we receive the + interrupt twice in the same thread. + +2008-05-28 Thomas Schwinge + + [bug #23417, patch #6508 -- Building with -g3] + * Makefile.am (MIGCOM): Revert the 2008-05-19 change. + +2008-05-25 Andrei Barbu + + * ddb/db_aout.c (aout_db_symbol_values): Add stab parameter. + * ddb/db_sym.h (db_sym_switch): Add stab parameter to symbol_values + member. + (X_db_symbol_values): Pass stab parameter to symbole_values function. + +2008-05-19 Thomas Schwinge + + [patch #6508 -- Building with -g3] + * Makefile.am (MIGCOM): Let it filter through CPP again. + Suggested by Andrei Barbu . + +2008-05-09 Andrei Barbu + + * i386/i386/loose_ends.c (DELAY): Use volatile qualifier instead of + register to prevent optimization. + +2008-03-10 Samuel Thibault + + * doc/Makefrag.am: Fix typo. + +2008-03-07 Samuel Thibault + + * i386/i386/locore.S (syscall): Clear direction flag at entry. + +2008-02-06 Samuel Thibault + + * linux/src/drivers/block/triton.c (ide_init_triton): Enable Bus + Mastering if not enabled by BIOS. + +2007-12-30 Samuel Thibault + + * kern/debug.c (panic) [MACH_KDB]: Don't wait before running the + debugger. + * linux/dev/glue/block.c (MAX_BUF): Set to sane stack-friendly 8 + instead of blindly following VM_MAP_COPY_PAGE_LIST_MAX. + (rdwr_full): increment blk by cc >> bshift instead of nb. + +2007-12-11 Thomas Schwinge + + * linux/dev/include/linux/nfs.h: Remove unused file. + * linux/src/include/linux/nfs.h: Likewise. + +2007-12-10 Thomas Schwinge + + * i386/Makefrag.am (i386/i386at/boothdr.o, i386/i386at/interrupt.o) + (i386/i386/cswitch.o, i386/i386/locore.o): Remove targets. + * configure.ac : Add a hack to + re-add the four targets with have been removed above for the (legacy) + case only where they are actually needed. + +2007-12-05 Guillem Jover + + * i386/Makefrag.am (i386/i386at/interrupt.o): New target, depends on + i386/i386/i386asm.h + (i386/i386/cswitch.o): Likewise. + (i386/i386/locore.o): Likewise. + +2007-11-18 Samuel Thibault + + * i386/intel/pmap.c (pmap_map_bd): Use + INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock. + +2007-11-15 Samuel Thibault + + * ddb/db_examine.c (db_strcpy): Add extra parentheses around + assignment used as boolean. + * ddb/db_sym.c (db_qualify, db_lookup): Likewise. + +2007-11-08 Thomas Schwinge + + * doc/mach.texi: Do the copyright and licensing things as suggested by + the GNU Texinfo manual. + +2007-10-09 Thomas Schwinge + + * linux/dev/glue/net.c (device_open) : Comment. + +2007-10-08 Stefan Siegl + + * linux/dev/glue/net.c (device_open): Set LINUX_IFF_ALLMULTI flag + on device and propagate. + +2007-10-02 Samuel Thibault + + * kern/zalloc.c (zget_space): Fix last change. + +2007-09-03 Samuel Thibault + + * kern/zalloc.c (zget_space): Align zalloc_next_space again after + calling kmem_alloc_wired (which may sleep). + +2007-08-16 Samuel Thibault + + * Makefile.am (clib_routines): Add udivdi3, __udivdi3 and _end. Fix + edata into _edata. + (gnumach-undef): Do not remove heading _s. + (clib-routines.o): Add -lgcc. + +2007-07-09 Samuel Thibault + + * i386/i386/db_interface.c (int_regs): Drop gs and fs fields. + (kdb_kentry): Get fs and gs from struct i386_interrupt_state instead of + struct int_regs. + * i386/i386/kttd_interface.c (int_regs, kttd_netentry): Likewise. + * i386/i386/locore.S (all_intrs): Save fs and gs and set them to kernel + segment too. + (return_to_iret): Restore fs and gs too. + (return_to_iret_i): Likewise. + (ast_from_interrupt): Set fs and gs to kernel segment too. + (kdb_from_iret): Don't save/restore fs and gs either. + (ttd_from_iret): Likewise. + * i386/i386/thread.h (i386_interrupt_state): Add gs and fs fields. + * linux/src/include/asm-i386/irq.h (SAVE_ALL): Set gs to kernel + segment too. + +2007-08-04 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. + (current_tstamp, TIME_TRAP_UENTRY, TIME_TRAP_SENTRY, TIME_TRAP_UEXIT) + (TIME_INT_ENTRY, TIME_INT_EXIT, timer_switch, start_timer): Use + EXT(current_tstamp) and EXT(current_timer) instead of _current_tstampt + and _current_timer. + * i386/i386/io_perm.c (i386_io_perm_create): Lock io_perm->port, not + inexistent device->port. + * i386/i386at/model_dep.c: Make init_alloc_aligned() extern. + * i386/i386/mp_desc.c: Include + (interrupt_stack_alloc): Call init_alloc_aligned() instead of + init_alloc(). + (cpu_control, interrupt_processor, cpu_start, start_other_cpus): New + functions. + * i386/i386/mp_desc.h: Include instead of "idt.h" + * i386/i386/cswitch.S: Use EXT(interrupt_stack) instead of + _interrupt_stack. + * i386/i386/i386asm.sym (MP_GDT, MP_IDT): Remove macros. + * i386/i386/lock.h: Don't include_next "lock.h". + * i386/linux/dev/include/linux/autoconf.h [NCPUS > 1]: Define + CONFIG_SMP. + * linux/dev/include/asm-i386/smp.h: New file. + * linux/dev/init/main.c [__SMP__ && __i386] (smp_loops_per_tick): + Restore variable. + * linux/pcmcia-cs/modules/cs_internal.h: Use __SMP__ instead of + USE_SPIN_LOCKS. + * linux/pcmcia-cs/modules/i82365.c: Likewise. + * linux/pcmcia-cs/modules/rsrc_mgr.c: Likewise. + * linux/dev/include/asm-i386/system.h: Update to Linux 2.2 for SMP. + * configfrag.ac (mach_ncpus): Define to 1. + (NCPUS): Set to $mach_ncpus. + [$mach_ncpus > 1] (MULTIPROCESSOR): Set to 1. + * linux/configfrag.ac [$mach_ncpus > 1] (__SMP__): Define. + * linux/dev/arch/i386/kernel/irq.c: Include . + (local_bh_count, local_irq_count, global_irq_holder, global_irq_lock) + (global_irq_count, check_smp_invalidate, show, wait_on_bh) + (wait_on_irq, synchronize_bh, synchronize_irq, get_irqlock) + (__global_cli, __global_sti, __global_save_flags) + (__global_restore_flags): New variables and functions from Linux 2.2 + * linux/src/drivers/net/3c515.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/de4x5.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/eth16i.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/kern_compat.h (test_and_set_bit): Remove macro. + * linux/src/drivers/net/pcnet32.c (test_and_set_bit): Remove macro. + * linux/src/include/linux/compatmac.h (test_and_set_bit) + (test_and_clear_bit): Remove macro. + * linux/src/include/asm-i386/atomic.h (atomic_read): New macro. + * linux/src/include/asm-i386/bitops.h (test_and_set_bit) + (test_and_clear_bit, test_and_change_bit): New inline functions. + * linux/src/include/asm-i386/hardirq.h (local_bh_count): New + declaration. + * linux/src/include/linux/tasks.h (NR_CPUS): Set to NCPUS. + (NO_PROC_ID): New macro. + +2007-07-08 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. + +2007-07-04 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. + +2007-06-23 Samuel Thibault + + * i386/i386/trap.c (user_trap): Read faulting linear address before + using it. + +2007-06-02 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. + + * Makefile.am (MIGFLAGS): Remove. + (MIGCOM): Add ``-n''. + * Makerules.am: Adapt to that. + +2007-05-09 Thomas Schwinge + + * include/mach/mach_types.defs (userprefix, serverprefix): Set, if + requested (by setting USERPREFIX respective SERVERPREFIX). + +2007-05-08 Samuel Thibault + + * i386/i386/fpu.c (fpu_set_state): Set fp_valid to TRUE. Free the + unused ifps. + +2007-05-07 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 . + (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 , , + and don't include . + (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 and + . + (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 . + * i386/i386/tss.h: Include . + (task_tss): New structure, equivalent to the OSKit-Mach one. + * i386/include/mach/i386/mach_i386.defs: Don't include + . + (device_list_t): Remove type. + * i386/include/mach/i386/mach_i386_types.h (device_list_t): Remove type + definition. + +2007-05-07 Marcus Brinkmann + + [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 . + + * 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. + +2007-05-06 Thomas Schwinge + + * device/kmsg.c: Include . + (kmsg_lock): Use `decl_simple_lock_data'. + (kmsgread, kmsg_read_done): Add two typecasts. + + * device/buf.h (minphys): Add return type. + * device/device_types_kernel.h: We're not in the eighties anymore... + * device/io_req.h: Likewise. + +2007-05-05 Thomas Schwinge + + * i386/i386at/model_dep.c (halt_cpu, halt_all_cpus): Call + `machine_idle' to avoid busy-looping. + + * i386/intel/read_fault.c (intel_read_fault): Remove the last parameter + from the calls of `vm_map_lookup'. + + 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. + * vm/memory_object.c: Do as described. + * vm/memory_object.h: Likewise. + * vm/pmap.h: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_external.h: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_fault.h: Likewise. + * vm/vm_kern.h: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_map.h: Likewise. + * vm/vm_pageout.h: Likewise. + * vm/vm_user.h: Likewise. + * vm/memory_object.h: Include . + * vm/pmap.h: Include . + * vm/vm_fault.h: Include , and + . + * vm/vm_map.h: Include and . + (vm_map_t, VM_MAP_NULL): Remove type and definition. + * vm/vm_object.h (vm_object_t, VM_OBJECT_NULL): Remove type and + definition. + * vm/vm_page.h: Include . + (vm_page_t, VM_PAGE_NULL): Remove type and definition. + * vm/vm_user.h: Include . + * kern/task.h: Include instead of . + * vm/vm_types.h: New file: the above-removed types and definitions. + +2007-05-02 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. + +2007-05-01 Thomas Schwinge + + * assigns: Remove file. See `copyright.list' on the GNU server instead. + +2007-04-30 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 . + * device/dev_hdr.h: Include . + * device/net_io.h: Include and . + * ipc/ipc_entry.h: Include and . + * ipc/ipc_kmsg.h: Include , and + . + * ipc/ipc_marequest.h: Include and + . + * ipc/ipc_object.h: Include . + * ipc/ipc_right.h: Include . + * ipc/ipc_space.h: Include and . + * kern/ipc_tt.h: Include . + * kern/sched.h: Include . + * kern/syscall_subr.h: Include . + * ipc/ipc_hash.c (ipc_hash_index_t): Move type definition... + * ipc/ipc_hash.h: ... into here. + +2007-04-25 Thomas Schwinge + + * DEVELOPMENT: Add url. + + [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. + + * linux/dev/glue/kmem.c (vmalloc_list_remove): Cast the first argument + in the `kfree' call to what is expected. + + * linux/pcmcia-cs/glue/ds.c (kmalloc, kfree): Call `linux_kmalloc', + respective `linux_kfree' instead. + + * kern/kalloc.h (kalloc, kget, kfree, kalloc_init): List the arguments. + +2007-04-24 Michael Casadevall + + * linux/src/drivers/net/ne.c (bad_clone_list): Add the RealTek 8029 PCI + card's signature. + + +2007-04-24 Thomas Schwinge + + * ipc/ipc_port.h: Include . + +2007-04-11 Thomas Schwinge + + * config.status.dep.patch: Update to match more files. This fixes + building GNU Mach with ``make -j2'' and higher. The problem was + reported by Michael Casadevall . + +2007-04-02 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 . + (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. + +2007-03-30 Thomas Schwinge + + * Makefile.am (gnumach_o_LINK): Remove ``--start-group''. + +2007-03-27 Thomas Schwinge + + Unconditionally use the device driver multiplexing. Suggested by + Gianluca Guida . + * 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 , but instead + include and . + * linux/dev/glue/net.c: Don't include , but instead + include . + * linux/pcmcia-cs/glue/ds.c: Likewise. + + * kern/pcsample.h: Remove the automatic cvs log appending machinery. + * linux/dev/drivers/scsi/g_NCR5380.c: Likewise. + * linux/src/drivers/net/sk_g16.h: Likewise. + * linux/src/drivers/scsi/AM53C974.c: Likewise. + * linux/src/drivers/scsi/AM53C974.h: Likewise. + * linux/src/drivers/scsi/NCR5380.c: Likewise. + * linux/src/drivers/scsi/NCR5380.h: Likewise. + * linux/src/drivers/scsi/aha152x.c: Likewise. + * linux/src/drivers/scsi/aha1542.h: Likewise. + * linux/src/drivers/scsi/g_NCR5380.c: Likewise. + * linux/src/drivers/scsi/g_NCR5380.h: Likewise. + * linux/src/drivers/scsi/gdth.c: Likewise. + * linux/src/drivers/scsi/qlogicisp.c: Likewise. + * linux/src/drivers/scsi/qlogicisp.h: Likewise. + * linux/src/drivers/scsi/t128.c: Likewise. + * linux/src/drivers/scsi/t128.h: Likewise. + +2007-03-24 Thomas Schwinge + + * i386/i386at/conf.c (block_io_mmap): Remove declaration. + + * doc/mach.texi: Fix a typo and the url for GNU GRUB. + + * device/kmsg.h: Include , and + . + + * Makefrag.am (libkernel_a_SOURCES): Move `device/kmsg.h' into + [enable_kmsg]. + +2007-03-23 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. + +2007-03-19 Tim Retout + + * i386/ldscript: Correct 'LINKFLAGS_gnumach' in comment. + +2007-03-06 Samuel Thibault + + * i386/i386/user_ldt.c (i386_set_gdt): Call switch_ktss() if target is + current thread. + +2007-03-05 Samuel Thibault + + [bug #18349 -- ``General Protection Trap'' in `ipc_kmsg_enqueue'] + * linux/dev/glue/net.c (device_write): Call net_packet() with splimp + held. + +2007-03-04 Thomas Schwinge + + * tests/configfrag.ac (MBCHK): Remove check. + * tests/test-mbchk.in: Fail correctly if `mbchk' is not available. + +2007-03-01 Thomas Schwinge + + * linux/dev/glue/block.c (free_buffer): Use `VM_PAGE_FREE'. + * vm/vm_object.c (vm_object_collapse, vm_object_page_remove) + (vm_object_page_map): Likewise. + +2007-02-20 Samuel Thibault + + * linux/dev/glue/block.c (free_buffer): Fix + vm_page_lock_queues/vm_page_unlock_queues pair. + + 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. + +2007-02-19 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'. + + 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. + +2007-02-05 Thomas Schwinge + + * kern/mach_clock.c: Don't include . + + * i386/i386/hardclock.c: Include instead of + . + * 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 . + (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. + + * kern/time_out.h: Remove file after having installed the missing bits + in... + * kern/mach_clock.h: ... here. + + * configfrag.ac: Enhance comments. + + * vm/vm_debug.c (MACH_VM_DEBUG): Correctly place conditional. + +2007-02-04 Thomas Schwinge + + * doc/mach.texi (thread_switch): Enhance a bit. + + * doc/Makefrag.am ($(web)): Use ``mkdir -p''. + + * doc/mach.texi: Fix unusual hyphens. + + * i386/i386/hardclock.c: Don't check for the `SYMMETRY' platform. + + * kern/timer.h: Add some comments from... + * i386/i386/timer.h: ... here and remove this file. + +2007-01-26 Thomas Schwinge + + * doc/mach.texi: Fix the last change. + +2007-01-22 Thomas Schwinge + + * COPYING: Update via GNU automake 1.10. + * doc/fdl.texi: Update from . + * doc/gpl.texi: Update from . + * doc/mach.texi: Use the GFDL 1.2. + +2007-01-21 Ralf Wildenhues + + * doc/mach.texi: Many typos fixed. + +2007-01-11 Thomas Schwinge + + * DEVELOPMENT (LAYOUT OF THE SOURCE TREE): New section. + + These following files are regenerated by running ``autoreconf -i'' and + ``make info''. + * INSTALL: Remove file. + * Makefile.in: Likewise. + * aclocal.m4: Likewise. + * build-aux/compile: Likewise. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/mdate-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + * config.h.in: Likewise. + * configure: Likewise. + * doc/mach.info: Likewise. + * doc/mach.info-1: Likewise. + * doc/mach.info-2: Likewise. + * doc/stamp-vti: Likewise. + * doc/version.texi: Likewise. + +2007-01-06 Thomas Schwinge + + * ddb/db_break.c (db_delete_thread_breakpoint): Don't declare + `db_cond_free'. + * ddb/db_run.c: Include . + (db_stop_at_pc): Don't declare `db_cond_check'. + * ddb/db_input.c: Include . + * ddb/db_macro.c: Include . + * ddb/db_trap.c: Include . + * i386/i386/db_interface.h: Include . + * i386/i386/db_interface.c: Include . + * i386/i386/db_machdep.h: Include . + (db_check_access, db_phys_eq, db_task_name): Remove declarations. + +2007-01-06 Barry deFreese + + * ddb/db_aout.c: Include . + * ddb/db_break.c: Include , and + . + (db_delete_cmd, db_breakpoint_cmd): Explicitly define untyped variables + as `int'. + * ddb/db_command.c: Include , and + . + * ddb/db_command.h (db_exec_cmd_nest): New declaration. + * ddb/db_cond.c: Include , and + . + (db_cond_cmd): Explicitly define untyped variable as `int'. + * ddb/db_cond.h: New file. + * ddb/db_examine.c: Include , + and . + (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 , , + and . + * ddb/db_input.c: Include . + * ddb/db_input.h: New file. + * ddb/db_lex.c: Include , , + and . + (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 , and + . + (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_output.h (db_putchar): New declaration. + * ddb/db_print.c: Include , + and . + (db_show_regs): Explicitly define untyped variables as `int'. + * ddb/db_run.c: Include , , + and . + * ddb/db_run.h: Include and . + (db_single_step, db_single_step_cmd, db_in_single_step): New + declarations. + * ddb/db_sym.c: Include and . + (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 , , + and . + (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 and . + * ddb/db_trap.h: New file. + * ddb/db_variables.c: Include , , + and . + (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 , , + and . + * ddb/db_write_cmd.c: Include and . + * i386/i386/db_interface.c: Include , , + , , and + . + (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 and + . + * ipc/ipc_kmsg.c [MACH_KDB]: Include . + * kern/lock.c [MACH_KDB]: Include . + +2007-01-06 Thomas Schwinge + + * configure.ac (AM_INIT_AUTOMAKE): Add ``-Wall -Wno-portability''. + +2007-01-05 Richard Braun + + 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. + +2007-01-02 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. + + Fix loop indexing. + * i386/intel/pmap.c (pmap_change_wiring): Increment pte in the + unwiring loop. + + Drop old and broken support for Olivetti XP7 & XP9 + * i386/intel/pmap.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. + +2006-12-19 Samuel Thibault + + Add support for global pages. + * i386/i386at/model_dep.c: Include . + (i386at_init): Set CR4_PGE if available. + (c_boot_entry): Call discover_x86_cpu_type() before i386at_init(). + * i386/intel/pmap.c: Include . + (pmap_map_bd): Use INTEL_PTE_GLOBAL if available. + (pmap_bootstrap): Likewise. + + Add support for cr3/cr4 flags. + * i386/i386/proc_reg.h (CR3_PCD, CR3_PWT, CR4_VME, CR4_PVI, CR4_TSD) + (CR4_DE, CR4_PSE, CR4_PAE, CR4_MCE, CR4_PGE, CR4_PCE, CR4_OSFXSR) + (CR4_OSXMMEXCPT, get_cr4, set_cr4): New macros. + * i386/intel/pmap.h (INTEL_PTE_GLOBAL): New macro. + + Add support for querying 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. + +2006-12-13 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. + +2006-12-03 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 + + [patch #5019 -- Remove checks for continuations] + * ipc/mach_msg.c: Adapt 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. + +2006-12-03 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 + + [patch #5017 -- Remove obsolete IPC interfaces] + * kern/act.c [MIGRATING_THREADS]: Don't include . + * 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. + +2006-12-03 Thomas Schwinge + + [bug #17120 -- GNU Mach debian dir] + * debian/README.Debian: Remove file. + * debian/changelog: Likewise. + * debian/control: Likewise. + * debian/copyright: Likewise. + * debian/postinst: Likewise. + * debian/prerm: Likewise. + * debian/rules: Likewise. + + [bug #18015 -- GNU Mach: `make dist' and friends] + * Makefile.am (DISTCLEANFILES): New variable. + +2006-11-30 Thomas Schwinge + + * Makefile.in: Regenerate. + * configure: Likewise. + +2006-11-30 Barry deFreese + Thomas Schwinge + + [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. + +2006-11-29 Thomas Schwinge + + * configure: Regenerate. + * Makefile.in: Likewise. + + * configure.ac (disable_smashing_stack_protector): New conditional, set + depending on the compiler accepting `-fstack-protector' or not. + * Makefile.am (CFLAGS): Add `-fno-stack-protector' if + `disable_smashing_stack_protector' is set. + +2006-11-28 Thomas Schwinge + + * doc/Makefrag.am ($(srcdir)/doc/version.texi): Oppress a potential + error message from grep. + +2006-11-26 Samuel Thibault + + [bug #17346 -- GNU mach can't handle 4GB memory] + * i386/i386at/model_dep.c (mem_size_init): Truncate memory size to + 4GiB. + +2006-11-21 Thomas Schwinge + + * doc/Makefrag.am (doc/web, html-local, ps-local, pdf-local) + ($(srcdir)/doc/version.texi): New targets to faciliate keeping the web + pages of the GNU Mach Reference Manual updated. + +2006-11-20 Samuel Thibault + + [patch #5328 -- GNU Mach asm statements 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'. + + [patch #5375 -- Fix de4x5 probe] + * linux/src/drivers/net/de4x5.c (pci_probe): Make probe loop stop on + any error, not only device not found. + +2006-11-17 Constantine Kousoulos + Thomas Schwinge + + [bug #18010 -- GNU Mach: update i386/README-Drivers and doc/mach.texi] + * i386/README-Drivers: Move most of the text into... + * doc/mach.texi: ... here and update a number of things. + (UPDATED): Don't override. + +2006-11-13 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. + * util/putchar.c (putchar): Return printed char. + +2006-11-13 Barry deFreese + + * 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. + +2006-11-13 Barry deFreese + + * 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'. + +2006-11-11 Thomas Schwinge + + * Makefile.am (gnumach-undef-bad): Depend on the Makefile. + +2006-11-11 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. + + [task #5726 -- GCC built-in functions] + * kern/machine.c: Include `string.h'. + + Fix ``assignment used as truth value'' warnings. + * device/cons.c (cninit): Add parenthesis. + * kern/bootstrap.c (copy_bootstrap): Likewise. + * kern/printf.c (_doprnt): Likewise. + * vm/vm_map.c (vm_map_lookup): Likewise. + + 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. + (SPLVM, SPLX): Artificially use parameter of macro. + * 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. + +2006-11-10 Samuel Thibault + + * kern/sched_prim.h (thread_syscall_return): Replace old `volatile' + function qualifier with __attribute__((__noreturn__)). + +2006-11-09 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/printf.h: Move file... + * kern/printf.h: ... here. + * kern/debug.h (panic_init, panic): Add prototypes. + * chips/busses.c: Don't include `printf.h', include `kern/printf.h' + and `kern/debug.h' for panic(). + * ddb/db_command.c: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_output.c: Likewise. + * device/cirbuf.c: Likewise. + * device/cons.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/device_init.c: Likewise. + * device/dk_label.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/debug_i386.c: Likewise. + * i386/i386/fpe_linkage.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/act.c: Likewise. + * kern/ast.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/debug.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/exception.c: Likewise. + * kern/host.c: Likewise. + * kern/ipc_host.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/kalloc.c: Likewise. + * kern/lock.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/machine.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/printf.c: Likewise. + * kern/processor.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/server_loop.ch: Likewise. + * kern/startup.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread_swap.c: Likewise. + * kern/xpr.c: Likewise. + * kern/zalloc.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_debug.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-11-08 Thomas Schwinge + + * aclocal.m4: Regenerate using GNU Autoconf 2.60 and GNU Automake 1.10. + * INSTALL: Likewise. + * Makefile.in: Likewise. + * configure: Likewise. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + + * Makefrag.am (gnumach.msgids): Remove temporary files. + +2006-11-08 Samuel Thibault + + [task #5726 -- GCC built-in functions] + * include/printf.h (iprintf): Fix prototype. + (vprintf): Add prototype. + * kern/printf.c: Include `printf.h'. + (vprintf, printf): Fix prototype and return a dumb value. + * kern/startup.c: Include `printf.h'. + +2006-11-07 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/printf.h: New file. + (printf_init, _doprnt, printnum, sprintf, printf, indent, iprint): New + declarations. + * include/string.h (strchr, strcmp, strcpy, strlen, strncmp, strncpy) + (strrchr, strsep): New extern declarations. + * kern/strings.c: Don't include `kern/strings.h', include `string.h'. + (strncmp, strncpy, strlen): Fix prototypes into using size_t. + * kern/strings.h: Removed file. + * kern/debug.c: Include `printf.h'. + (do_cnputc): New function. + (panic, log): Use do_cnputc instead of cnputc. + * chips/busses.c: Don't include `kern/strings.h', include `printf.h' and + `string.h'. + (_doprnt): Remove extern declaration. + (indent): Remove extern declaration. + * ddb/db_aout.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_sym.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/dk_label.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/db_trace.c: Likewise. + * i386/i386/debug_i386.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/printf.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/thread.c: Likewise. + * kern/zalloc.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-11-05 Samuel Thibault + + * include/string.h: Fix copyright assignment to FSF, keep author's + name. + +2006-11-05 Thomas Schwinge + + * linux/dev/README: New file. + + * config.h.in: Regenerate. + * configure: Likewise. + + [task #5956 -- Automake'ify GNU Mach's code base] + * configure.ac : Add `no-define' and `1.9'. + +2006-11-05 Barry deFreese + + [task #5878 -- Backport code from GNU Mach's trunk to + gnumach-1-branch: i386_set_gdt, i386_get_gdt''] + [sync from HEAD, 2002-10-03] + * i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt): + New routines. + * i386/i386/user_ldt.c (i386_set_gdt, i386_get_gdt): New functions. + * i386/i386/gdt.h (USER_GDT, USER_GDT_SLOTS): New macros. + (GDTSZ): Compute it from USER_GDT and USER_GDT_SLOTS. + * i386/i386/thread.h: Include `gdt.h'. + (struct i386_machine_state): New member `user_gdt'. + * i386/i386/pcb.c (switch_ktss): Copy those slots into the GDT. + * linux/src/include/linux/head.h (idt,gdt): Remove extern declaration. + +2006-11-05 Samuel Thibault + + FPU, CPU and IO stubs cleanup. + * i386/i386/fpu.h (fstcw): New macro. + * i386/i386/locore.S (_fninit, _fstcw, _fldcw, _fnstsw, _fnclex) + (_clts, _fpsave, _fprestore, set_cr3, get_cr3, flush_tlb, get_cr2) + (get_ldt, set_ldt, get_tr, set_tr, _setts, outb, inb, outw, inw, outl) + (inl, loutb, loutw, linb, linw): Remove functions. + * i386/i386/proc_reg.h (flush_tlb): New macro. + * i386/i386/db_interface.c: Include `i386/proc_reg.h'. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Likewise. + * i386/i386/fpu.c: Include `i386/pio.h'. + * i386/i386/pic.c: Likewise. + * i386/i386/pit.c: Likewise. + * i386/i386at/iopl.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/rtc.c: Likewise. + +2006-11-05 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/string.h: New file. + * include/mach/mig_support.h: Include `string.h'. + [MACH_KERNEL] (bcopy): Remove extern declaration. + [MACH_KERNEL] (memcpy): Remove macro. + * device/cirbuf.c: Include `string.h'. + (q_to_b, b_to_q): Replace bcopy() with memcpy() and bzero() with + memset(), clean memcpy() and memset() invocation. + * device/cons.c (cnputc): Likewise. + * device/dev_pager.c (device_pager_data_request_done): Likewise. + * device/ds_routines.c (device_write_get, ds_read_done): Likewise. + * device/kmsg.c: Likewise. + * device/net_io.c (net_filter, net_set_filter, net_getstat): Likewise. + * i386/i386/fpu.c (fpu_set_state, fpu_get_state, fp_load) + (fp_state_alloc): Likewise. + * i386/i386/iopb.c (io_tss_init, i386_io_port_list): Likewise. + * i386/i386/mp_desc.c (mp_desc_init): Likewise. + * i386/i386/pcb.c (pcb_init, thread_setstatus) + (thread_getstatus): Likewise. + * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys) + (copy_from_phys): Likewise. + * i386/i386/trap.c (v86_assist): Likewise. + * i386/i386/user_ldt.c (i386_set_ldt, i386_get_ldt): Likewise. + * i386/i386at/immc.c (immc_cnputc): Likewise. + * i386/i386at/kd_event.c (X_kdb_enter_init, X_kdb_exit_init): Likewise. + * i386/intel/pmap.c (pmap_init, pmap_page_table_page_alloc) + (pmap_create): Likewise. + * ipc/ipc_entry.c (ipc_entry_grow_table): Likewise. + * ipc/ipc_kmsg.c (ipc_kmsg_get_from_kernel) + (ipc_kmsg_put_to_kernel): Likewise. + * ipc/ipc_object.c (ipc_object_alloc, ipc_object_alloc_name): Likewise. + * ipc/ipc_port.c (ipc_port_dngrow): Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/mach_debug.c (mach_port_space_info) + (mach_port_space_info): Likewise. + * kern/act.c (act_create): Likewise. + * kern/boot_script.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/eventcount.c (evc_init): Likewise. + * kern/host.c (host_info, host_processor_sets): Likewise. + * kern/lock.c (lock_init): Likewise. + * kern/lock_mon.c (lock_info_clear): Likewise. + * kern/mach_clock.c (mapable_time_init): Likewise. + * kern/pc_sample.c (get_sampled_pcs): Likewise. + * kern/processor.c (processor_set_things): Likewise. + * kern/syscall_emulation.c (task_set_emulation_vector_internal) + (task_get_emulation_vector, xxx_task_get_emulation_vector): Likewise. + * kern/task.c (task_threads): Likewise. + * kern/xpr.c (xprbootstrap): Likewise. + * kern/zalloc.c (host_zone_info): Likewise. + * vm/vm_debug.c (mach_vm_object_pages): Likewise. + * vm/vm_kern.c (projected_buffer_allocate, copyinmap) + (copyoutmap): Likewise. + * vm/vm_object.c (vm_object_bootstrap): Likewise. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Likewise. + +2006-11-05 Samuel Thibault + + * DEVELOPMENT: Document the following removals. + + Drop MB1/MB2/EXL architecture support. + * i386/i386/pit.h (PITCTR0_PORT, PITCTR1_PORT, PITCTR2_PORT) + (PITCTL_PORT, CLKNUM): Remove MB1/MB2/EXL cases. + [EXL] (time_latch): Remove structure and type. + [EXL] (intr_disable, intr_restore): Remove functions. + + Drop iPSC architecture support. + * i386/i386/hardclock.c: Remove iPSC386 from #if. + * i386/i386/locore.S: Remove iPSC386 delays. + * i386/i386/pic.c: Remove iPSC386 support. + (SLAVEMASK): Rmove iPSC386 case. + * i386/i386/pic.h (ADDR_PIC_BASE, OFF_ICW, OFF_OCW, SIZE_PIC) + (PICM_VECTBASE, PICS_VECTBASE): Remove iPSC386 cases. + [iPSC386] (I_AM_A_SLAVE, I_AM_A_MASTR): Remove macros. + * i386/i386/pit.h: Remove iPSC386 from #if. + [iPSC386] (CLKNUM): Remove macro. + * kern/machine.c (host_get_boot_info): Remove iPSC386 support. + * vm/vm_map.h (VM_MAP_COPY_PAGE_LIST_MAX): Remove iPSC case. + + Drop i860 architecture support. + * i386/i386/pmap.h: Remove i860 comment. + * i386/intel/pmap.c: Remove i860 comments. + [i860]: Don't include `i860ipsc/nodehw.h'. + (INVALIDATE_TLB): Remove i860 case. + (paging_enabled): Remove variable. + (pmap_map): Remove setting INTEL_PTE_NCACHE. + (pmap_bootstrap): Remove i860 support. + (pmap_page_table_page_alloc): Remove setting INTEL_PTE_NCACHE. + (pmap_enter): Remove call to flush function. + (set_dirbase): Remove function. + * i386/intel/pmap.h: Remove i860 comments. + (INTEL_PGBYTES, INTEL_PGSHIFT, intel_btop, intel_ptob) + (intel_round_page, intel_trunc_page, trunc_intel_to_vm) + (round_intel_to_vm, vm_to_intel, INTEL_PTE_VALID, set_dirbase): Remove + i860 cases. + (INTEL_PTE_valid): Remove macro. + * i386/intel/read_fault.c: Remove i860 comment. + + Drop PS2 architecture support. + * i386/i386/fpu.c (fpintr): Remove PS2 from #if. + * i386/i386/gdt.c [PS2] (abios_int_return, abios_th_return, intstack): + Remove extern declarations. + * i386/i386/gdt.h [PS2] (ABIOS_INT_RET, ABIOS_TH_RET, ABIOS_INT_SS) + (ABIOS_TH_SS, ABIOS_FIRST_AVAIL_SEL): Remove macros. + (GDTSZ): Remove PS2 case. + * i386/i386/hardclock.c [PS2]: Don't include `i386/pic.h' and + `i386/pio.h'. + (hardclock): Remove PS2 prototype and code. + * i386/i386/locore.S (RET_OFFSET): Remove PS2 stack layout. + * i386/i386/pic.c (picinit): Remove #ifdef PS2. + * i386/i386/pic.h: Remove PS2 from #if. + * i386/i386/pit.c [PS2] (clock_int_handler): Remove extern declaration. + Don't include `sys/types.h' and `i386ps2/abios.h'. + (clock_request_block, clock_flags, cqbuf): Remove variables. + (clkstart): Remove call to abios_clock_start function. + (COUNT): Don't define. + (abios_clock_start, ackrtclock): Remove functions. + * i386/i386/pit.h: Remove PS2 from #if. + +2006-10-26 Thomas Schwinge + + * Makefile.in: Regenerate. + + [task #5956 -- Automake'ify GNU Mach's code base] + + * Makefrag.am (gnumach.msgids): Remove repetition. + * Makerules.am (%.server.msgids, %.user.msgids): Targets renamed from + `%.msgids'. Also consider MIGCOMSFLAGS respective MIGCOMUFLAGS. + Thanks to Guillem Jover and Leonardo Lopes Pereira for reporting this. + + The Automake build system wants us to have these files in the rcs, so + do that. + * doc/mach.info: New file, generated. + * doc/mach.info-1: Likewise. + * doc/mach.info-2: Likewise. + * doc/stamp-vti: Likewise. + * doc/version.texi: Likewise. + +2006-10-18 Thomas Schwinge + + * Makefile.in: Regenerate. + + Install `PREFIX/share/msgids/gnumach.msgids'. + * Makerules.am (%.msgids): Two new rules. + * Makefrag.am (MOSTLYCLEANFILES): Add `gnumach.msgids'. + (gnumach.msgids): New rule. + (exec_msgidsdir, exec_msgids_DATA): New variables. + +2006-10-16 Thomas Schwinge + + * configure: Regenerate. + + [bug #18011 -- `make install-data' will build the + ``to-be-generated files''] + * config.status.dep.patch: Do an educated guess instead of using the + `Makefile'. + * configure.ac : Update description. + +2006-10-15 Thomas Schwinge + + * configure: Regenerate. + + * configure.ac: Update texts snippets: GNU Automake 1.10 has just been + released. + + * i386/include/Makefile.in: Remove unused file. Thanks to Guillem + Jover for spotting this. + + [task #5956 -- Automake'ify GNU Mach's code base] + + * configure: Regenerate. + + * configure.ac : Point to [bug #18011 -- + `make install-data' will build the ``to-be-generated files'']. + + * Makefile.in: Regenerate. + + * Makefrag.am (include_mach_exec): Rename to `include_mach_eXec'. + + * Makefile.in: New file, generated by `autoreconf'. + * config.h.in: Likewise. + * configure: Updated file, generated by `autoreconf'. + + * INSTALL: File updated, thanks to `autoreconf'. + * aclocal.m4: Likewise. + + * build-aux/compile: New file, thanks to `autoreconf'. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/mdate-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + + * AUTHORS: New file, copy from the MIG repository. + + * kern/bootstrap.c: Don't include `bootstrap_symbols.h'. + * ddb/db_command.c: Don't include `cpus.h'. + * ddb/db_mp.c: Likewise. + * i386/i386/ast_check.c: Likewise. + * i386/i386/cswitch.S: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/fpu.h: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/mp_desc.h: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/intel/pmap.c: Likewise. + * include/mach/machine.h: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * kern/ast.c: Likewise. + * kern/ast.h: Likewise. + * kern/cpu_number.h: Likewise. + * kern/debug.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/host.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/lock.c: Likewise. + * kern/lock.h: Likewise. + * kern/lock_mon.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/mach_factor.c: Likewise. + * kern/machine.c: Likewise. + * kern/priority.c: Likewise. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread.c: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * vm/vm_resident.c: Likewise. + * kern/sched_prim.c: Don't include `fast_tas.h'. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * kern/sched_prim.c: Don't include `hw_footprint.h'. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * kern/counters.c: Don't include `mach_counters.h'. + * kern/counters.h: Likewise. + * ddb/db_ext_symtab.c: Don't include `mach_debug.h'. + * i386/i386/pcb.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/thread.c: Likewise. + * kern/zalloc.c: Likewise. + * kern/ast.c: Don't include `mach_fixpri.h'. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * kern/host.c: Don't include `mach_host.h'. + * kern/ipc_sched.c: Likewise. + * kern/machine.c: Likewise. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * include/mach/mach.defs: Don't include `mach_ipc_compat.h'. + * 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/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/ipc_tt.c: Likewise. + * kern/syscall_sw.c: Likewise. + * kern/thread.h: Likewise. + * include/mach_debug/mach_debug.defs: Don't include `mach_ipc_debug.h'. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_hash.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_marequest.h: Likewise. + * kern/ipc_kobject.c: Don't include `mach_ipc_test.h'. + * ddb/db_access.c: Don't include `mach_kdb.h'. + * ddb/db_aout.c: Likewise. + * ddb/db_break.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_command.h: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_examine.c: Likewise. + * ddb/db_expr.c: Likewise. + * ddb/db_ext_symtab.c: Likewise. + * ddb/db_input.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_mp.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_run.c: Likewise. + * ddb/db_sym.c: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_trap.c: Likewise. + * ddb/db_variables.c: Likewise. + * ddb/db_watch.c: Likewise. + * ddb/db_watch.h: Likewise. + * ddb/db_write_cmd.c: Likewise. + * i386/i386/db_disasm.c: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/db_trace.c: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * include/mach_debug/mach_debug.defs: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/debug.c: Likewise. + * kern/exception.c: Likewise. + * kern/lock.c: Likewise. + * kern/xpr.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + * kern/lock.h: Don't include `mach_ldebug.h'. + * kern/lock_mon.c: Don't include `mach_lock_mon.h'. + * kern/ipc_kobject.c: Don't include `mach_machine_routines.h'. + * kern/lock_mon.c: Don't include `mach_mp_debug.h'. + * vm/memory_object.c: Don't include `mach_pagemap.h'. + * vm/vm_fault.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + * i386/i386/trap.c: Don't include `mach_pcsample.h'. + * kern/mach4.srv: Likewise. + * kern/mach_clock.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * vm/vm_fault.c: Likewise. + * device/net_io.c: Don't include `mach_ttd.h'. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * include/mach_debug/mach_debug.defs: Don't include `mach_vm_debug.h'. + * vm/vm_debug.c: Likewise. + * vm/vm_page.h: Likewise. + * vm/vm_resident.c: Likewise. + * kern/sched_prim.c: Don't include `power_save.h'. + * kern/sched.h: Don't include `simple_clock.h'. + * kern/sched_prim.c: Likewise. + * kern/thread.c: Likewise. + * kern/mach_clock.c: Don't include `stat_time.h'. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * kern/sched.h: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * kern/startup.c: Don't include `xpr_debug.h'. + * kern/xpr.h: Likewise. + * i386/i386at/autoconf.c: Don't include `com.h'. + * i386/i386at/com.c: Likewise. + * i386/i386at/conf.c: Likewise. + * i386/i386at/cons_conf.c: Likewise. + * i386/i386/fpe_linkage.c: Don't include `fpe.h'. + * i386/i386/fpu.c: Likewise. + * i386/i386/fpu.h: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Don't include `lpr.h'. + * i386/i386at/conf.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386/cswitch.S: Don't include `platforms.h'. + * i386/i386/fpu.c: Likewise. + * i386/i386/gdt.c: Likewise. + * i386/i386/hardclock.c: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/io_emulate.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/pic.h: Likewise. + * i386/i386/pit.c: Likewise. + * i386/i386/pit.h: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/com.c: Don't include `rc.h' + * i386/i386at/cons_conf.c: Likewise. + * i386/i386at/pic_isa.c: Likewise. + * device/ds_routines.c: Don't include . + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/linux/dev/include/linux/autoconf.h: Likewise. + * linux/dev/arch/i386/kernel/setup.c: Likewise. + * linux/dev/init/main.c: Likewise. + * linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise. + * linux/pcmcia-cs/glue/wireless_glue.h: Likewise. + * kern/lock_mon.c: Don't include . + * device/cons.c: Include instead of . + * i386/i386at/com.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/cons_conf.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Include + instead of "device_interface.h". + * device/chario.c: Include instead of + "device_reply.h". + * device/ds_routines.c: Likewise. + * linux/dev/glue/block.c: Likewise. + * linux/dev/glue/net.c: Likewise. + * linux/pcmcia-cs/glue/ds.c: Likewise. + * device/cons.c: Include instead of . + * device/kmsg.c: Likewise. + * i386/i386/cswitch.S: Include instead of + "cpu_number.h". + * i386/i386/locore.S: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * i386/i386/i386asm.sym: Include instead of "gdt.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/int_init.c: Likewise. + * i386/i386/cswitch.S: Include instead of "i386asm.h". + * i386/i386/locore.S: Likewise. + * i386/i386at/boothdr.S: Likewise. + * i386/i386at/interrupt.S: Likewise. + * i386/i386at/idt.h: Include instead of "idt-gen.h". + * i386/i386at/interrupt.S: Include instead of "ipl.h". + * i386/i386/i386asm.sym: Include instead of "ldt.h". + * i386/i386/locore.S: Likewise. + * i386/i386/i386asm.sym: Include instead of + "mp_desc.h". + * i386/i386at/interrupt.S: Include instead of "pic.h". + * i386/i386/cswitch.S: Include instead of + "proc_reg.h". + * i386/i386/locore.S: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386/i386asm.sym: Include instead of "seg.h". + * i386/i386/idt.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/locore.S: Include instead of "trap.h". + * i386/i386/i386asm.sym: Include instead of "tss.h". + * i386/i386/i386asm.sym: Include instead of + "vm_param.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/i386/i386asm.sym: Include instead of "idt.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/int_init.c: Likewise. + * ipc/ipc_target.c: Include instead of + "sched_prim.h". + * vm/memory_object.c: Include instead + of "memory_object_default.h". + * vm/vm_object.c: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/memory_object.c: Include instead of + "memory_object_user.h". + * vm/vm_fault.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_pageout.c: Likewise. + + * Makefile.am: New file. + * Makerules.am + : Remove + sections. + : Rewrite: + (%.server.defs.c, %.user.defs.c, %.server.h %.server.c) + (%.user.h %.user.c, %.server.defs, %.user.defs): New targets. + (%.h %_user.c %.cli.d, %_interface.h %_server.c %.srv.d): Remove + targets. + (echo-%): New target. + * Makefrag.am + : Remove + sections. + (enable_kdb, enable_kmsg): Adapt. + +
: Rewrite to adapt to how things + are to be done now. + : New section. + (i386/Makefrag.am): Include file if appropriate. + * i386/Makefrag.am + : Remove sections. + (enable_lpr): Adapt. + : Rewrite to adapt to how things are + to be done now. + * i386/linux/Makefrag.am: New file. + * linux/Makefrag.am: Likewise. + + * Makefile.in: Move file... + * Makefrag.am: ... here. + * i386/Makefile.in: Move file... + * i386/Makefrag.am: ... here. + * i386/linux/Makefile.in: Remove file. + + * doc/Makefile.in: Remove file. + * doc/Makefrag.am: New file. + * tests/Makefrag.am: Likewise. + * tests/test-mbchk.in: Likewise. + + * configfrag.ac: New file. + * tests/configfrag.ac: Likewise. + * Makerules.am (DEFINES): Convert those into... + * configfrag.ac: ... AC_DEFINE instantiations. + * i386/Makerules.in (DEFINES): Convert those into... + * i386/configfrag.ac: ... AC_DEFINE instantiations. + * i386/Makerules.in: Remove file. + * i386/configfrag.ac (AC_PREREQ, AC_INIT, AC_CONFIG_SRCDIR) + (AC_CONFIG_SUBDIRS, AC_CONFIG_FILES, AC_OUTPUT): Don't invoke. + (../version.m4): Don't include. + (--disable-lpr): Rework configuration option. + (--disable-default-device-drivers): Move configuration option to... + * configfrag.ac: ... here. + * configure.ac (AC_CONFIG_AUX_DIR, AM_INIT_AUTOMAKE): Instantiate. + (AC_PREFIX_DEFAULT, AC_CONFIG_SUBDIRS): Don't invoke. + : Rework the whole section. + (--enable-kdb, --disable-kmsg): Move into `configfrag.ac' and + adapt. + (AM_PROG_AS, AM_PROG_CC_C_O): Instantiate. + (AC_CHECK_PROG): Move instantiation searching for a `mbchk' program + into `tests/configfrag.ac'. + (AC_CHECK_PROG): Instantiate to search for a `patch' program. + (tests/configfrag.ac, configfrag.ac) + (linux/configfrag.ac): Include files. + (i386/configfrag.ac): Include file if appropriate. + (AC_CONFIG_HEADER): Instantiate for `config.h'. + (AC_CONFIG_FILES): Remove `Makerules' and `doc/Makefile'. + (AC_CONFIG_COMMANDS_POST): Instantiate for `config.status.dep.patch'. + (AC_CONFIG_COMMANDS): Instantiate for + `Makefile.correct_output_files_for_.S_files.patch' and (the + nonexistent) `Makefile.dependency_tracking_for_.S_files.patch'. + * Makefile.dependency_tracking_for_.S_files.patch: New file. + * config.status.dep.patch: Likewise. + * bogus/bootstrap_symbols.h: Remove file. + * configfrag.ac: AC_DEFINE `BOOTSTRAP_SYMBOLS' to `0'. + * bogus/cpus.h: Remove file. + * configfrag.ac: AC_DEFINE `NCPUS' to `1'. AH_TEMPLATE + `MULTIPROCESSOR'. + * bogus/fast_tas.h: Remove file. + * configfrag.ac: AC_DEFINE `FAST_TAS' to `0'. + * bogus/hw_footprint.h: Remove file. + * configfrag.ac: AC_DEFINE `HW_FOOTPRINT' to `0'. + * bogus/mach_counters.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_COUNTERS' to `0'. + * bogus/mach_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_DEBUG' to `1'. + * bogus/mach_fixpri.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_FIXPRI' to `1'. + * bogus/mach_host.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_HOST' to `0'. + * bogus/mach_ipc_compat.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_COMPAT' to `1'. + * bogus/mach_ipc_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_DEBUG' to `1'. + * bogus/mach_ipc_test.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_TEST' to `0'. + * bogus/mach_kdb.h: Remove file. + * configfrag.ac (--disable-kdb): AC_DEFINE `MACH_KDB' to `0'. + * bogus/mach_ldebug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_LDEBUG' to `0'. + * bogus/mach_lock_mon.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_LOCK_MON' to `0'. + * bogus/mach_machine_routines.h: Remove file. + * configfrag.ac: Add comment about not AC_DEFINEing + `MACH_MACHINE_ROUTINES' to `0'. + * bogus/mach_mp_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_MP_DEBUG' to `0'. + * bogus/mach_pagemap.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_PAGEMAP' to `1'. + * bogus/mach_pcsample.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_PCSAMPLE' to `1'. + * bogus/mach_ttd.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_TTD' to `0'. + * bogus/mach_vm_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_VM_DEBUG' to `1'. + * bogus/power_save.h: Remove file. + * configfrag.ac: AC_DEFINE `POWER_SAVE' to `1'. + * bogus/simple_clock.h: Remove file. + * configfrag.ac: AC_DEFINE `SIMPLE_CLOCK' to `0'. + * bogus/stat_time.h: Remove file. + * configfrag.ac: AC_DEFINE `STAT_TIME' to `1'. + * bogus/xpr_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `XPR_DEBUG' to `1'. + * i386/bogus/com.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `NCOM' to `4'. + * i386/bogus/fpe.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `FPE' to `0'. + * i386/bogus/lpr.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `NLPR' to `1'. + * i386/bogus/mach_machine_routines.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `MACH_MACHINE_ROUTINES' to `1'. + * i386/bogus/platforms.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `AT386' to `1'. + * i386/bogus/rc.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `RCLINE' to `-1' and `RCADDR' to `0x3f8'. + + * Makerules.in: Move file... + * Makerules.am: ... here. + + * linux/configfrag.ac (AC_PREREQ, AC_INIT, AC_CONFIG_SRCDIR) + (AC_CONFIG_HEADER, AC_CANONICAL_HOST, hurd_SYSTYPE, AC_CONFIG_FILES) + (AC_OUTPUT): Don't invoke. + (../../version.m4, ../../Drivers.macros, ../../aclocal.m4): Don't + include. + : Only evaluate for i386. + (--disable-default-device-drivers): Remove configuraion option. + (LINUX_DEV, __KERNEL__): AC_DEFINE these. + (scsi, net, pcmcia, wireless): Remove AC_DRIVER_CLASS instantiations. + (device_driver_group): New shell function. + (AC_OPTION, AC_OPTION_nodef): New functions. + (linux_DRIVER): Rename function to AC_Linux_DRIVER and adapt. + (linux_DRIVER_nodef): Likewise to AC_Linux_DRIVER_nodef. + : Adapt to the new functions introduced above + and re-position parts. + : Adapt to the changes related to device + driver groups. + * linux/configure.in : Move to... + * linux/configfrag.ac: ... here. + * linux/configure.in: Remove file. + * linux/configure: Likewise. + * i386/linux/Makerules.in: Likewise. + * Drivers.macros: Likewise. + + * i386/linux/configure.ac: Move file... + * linux/configfrag.ac: ... here. + * i386/linux/configure: Remove file. + * i386/linux/device-drivers.h.in: Likewise. + + * i386/configure.in: Move file... + * i386/configfrag.ac: ... here. + * i386/configure: Remove file. + + * config.guess: Remove file. + * config.sub: Likewise. + * install-sh: Likewise. + + * i386/Files: Remove file. + * i386/Subdirs: Likewise. + * linux/Files: Likewise. + * linux/Subdirs: Likewise. + +2006-10-13 Thomas Schwinge + + * configure.in: Move file... + * configure.ac: ... here. + + * Makerules.in (ASFLAGS): Don't define `ASSEMBLER'. + * i386/i386/cpu_number.h: Check for `__ASSEMBLER__' instead of + `ASSEMBLER'. + * i386/i386/debug.h: Likewise. + * i386/i386/ipl.h: Likewise. + * i386/i386/ldt.h: Likewise. + * i386/i386/proc_reg.h: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386/trap.h: Likewise. + * i386/include/mach/i386/kern_return.h: Likewise. + * i386/include/mach/i386/vm_types.h: Likewise. + * i386/intel/pmap.h: Likewise. + * include/mach/boolean.h: Likewise. + * include/mach/boot.h: Likewise. + * include/mach/error.h: Likewise. + * kern/syscall_emulation.h: Likewise. + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * linux/configure: Likewise. + +2006-10-12 Thomas Schwinge + + * version.m4 (AC_PACKAGE_VERSION): Let's name it `1.3.99'. + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * linux/configure: Likewise. + + * version.m4: Rewrite. + * configure.in: Adapt to the above. + * i386/configure.in: Likewise. + * i386/linux/configure.ac: Likewise. + * linux/configure.in: Likewise. + +2006-10-09 Thomas Schwinge + + * ddb/tr.h: Insert the content of `bogus/mach_assert.h' instead of + including it. + * i386/i386/loose_ends.c: Likewise. + * bogus/mach_assert.h: Remove file. + + * bogus/panic.c: Remove file. + + * linux/src/drivers/scsi/in2000.c (in2000_proc_info) [PROC_INTERFACE]: + Don't consider `__DATE__' and `__TIME__'. + +2006-10-08 Thomas Schwinge + + * linux/dev/drivers/scsi/scsi.h: Move file... + * linux/src/drivers/scsi/scsi.h: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/seagate.c: Move file... + * linux/src/drivers/scsi/seagate.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/aha152x.c: Move file... + * linux/src/drivers/scsi/aha152x.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sr.c: Move file... + * linux/src/drivers/scsi/sr.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sd_ioctl.c: Move file... + * linux/src/drivers/scsi/sd_ioctl.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sd.c: Move file... + * linux/src/drivers/scsi/sd.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/hosts.c: Remove file. + * linux/dev/drivers/scsi/scsi.c: Likewise. + + * linux/dev/drivers/block/ide.c: Move file... + * linux/src/drivers/block/ide.c: ... here, overwriting the old file. + + * linux/dev/drivers/block/ide-cd.c: Remove file. + * linux/src/drivers/block/ide-cd.c (cdrom_sleep): Don't define function + `#ifndef MACH'. + +2006-10-07 Thomas Schwinge + + * i386/linux/configure: Regernerate. + * i386/linux/device-drivers.h.in: Likewise. + + * Drivers.macros (AC_DRIVER, AC_DRIVER_nodef): Rewrite to allow options + with dashes in them, make it usable more universally and enhance the + generated comments in header files. + * i386/linux/configure.ac (linux_DRIVER, linux_DRIVER_nodef): Enhance + DESCRIPTION. + (u1434f): Rename to `u14-34f'. + (smcultra): Rename to `smc-ultra'. + (smcultra32): Rename to `smc-ultra32'. + (hpplus): Rename to `hp-plus'. + (ne2kpci): Rename to `ne2k-pci'. + (viarhine): Rename to `via-rhine'. + (intelgige): Rename to `intel-gige'. + (winbond840): Rename to `winbond-840'. + (AC_PCMCIA_OPTION): Remove function. + (pcmcia-isa): Use `AC_DRIVER' instead of `AC_PCMCIA_OPTION'. + * i386/README-Drivers: Update accordingly. + +2006-10-03 Thomas Schwinge + + [task #5941 -- Linker script for GNU Mach] + + * Makefile.in (kernel.o): Remove `$(systype)-objfiles-prepend' hackery. + * i386/Makefile.in (sysdep.a): Likewise. + * i386/Makerules.in: Likewise. + (LDFLAGS-kernel): Point to the linker script. + * i386/i386at/boothdr.S (_start): Don't put into `.text', but into + `.text.start' instead. + * i386/ldscript: Change to put `.text' at 0x100000 and put + `.text.start' first into `.text'. + + * i386/ldscript: New file, copied from `/lib/ldscripts/elf_i386.x' of a + GNU Binutils 2.16.1 installation. + +2006-09-25 Stefan Siegl + + * linux/dev/glue/net.c (device_get_status): Reworked to not read + from STATUS. Fill `struct iw_point' correctly if necessary. + +2006-09-23 Stefan Siegl + + * i386/linux/configure: Regenerate. + * i386/linux/device-drivers.h.in: Likewise. + + * i386/linux/configure.ac (AC_PCMCIA_OPTION): New function. + (--disable-pcmcia-isa): New configuration option to disable ISA-bus + support in the pcmcia core, which is otherwise enabled now by default. + * doc/mach.texi (Configuration): Briefly document the new configuration + option. + * i386/README-Drivers: Likewise. + +2006-09-20 Thomas Schwinge + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * i386/linux/device-drivers.h.in: Likewise. + + * Drivers.macros (AC_DRIVER_ALIAS): Remove definition. + (AC_DRIVER): Extend to take a `description' parameter and consider + `$enable_default_device_drivers'. + (AC_DRIVER_nodef): New definition. + * configure.in (options kdb, kmsg): Remove redundancy. + * i386/configure.in (option default-device-drivers): New option. + (option lpr): Consider `$enable_default_device_drivers'. + * i386/linux/configure.ac: Rework substantially. Remove all aliases. + Rename some of the device driver options. + (option default-device-drivers): New option. + (linux_DRIVER): Take care about a `description' parameter and don't + invoke AC_DRIVER_ALIAS. + (linux_DRIVER_nodef): New definition. + Adapt all usages of AC_DRIVER and linux_DRIVER to provide a + `description' parameter. + (g_NCR5380, NCR53c406a, eata_dma, wavelan, atp): Change from AC_DRIVER + to AC_DRIVER_nodef to have these device drivers disabled by default. + * doc/mach.texi: Add a note about the outdatedness to the configuration + option table. + * i386/README-Drivers: Update. + +2006-09-19 Samuel Thibault + + [bug #17338 -- GNU Mach vs. GCC 4.1] + * i386/i386/seg.h (struct pseudo_descriptor): Pack structure and + move the padding field to the end. + (lgdt): Pass the whole structure to the lgdt assembly command. + (lidt): Likewise. + +2006-08-06 Thomas Schwinge + + * DEVELOPMENT: Update. + +2006-07-31 Stefan Siegl + + * doc/mach.texi (Configuration): Document the new PCMCIA drivers a bit + more. + * i386/README-Drivers: Likewise. + +2006-07-27 Thomas Schwinge + + * i386/linux/configure: Regenerate. + + * i386/linux/configure.ac: Pull in the pcmcia code only if really + needed. + + * doc/mach.texi (Configuration): Very briefly document the new drivers. + * i386/README-Drivers: Likewise. + + * linux/dev/include/linux/types.h (_MACH_SA_SYS_TYPES_H_): Define. + + * i386/linux/configure: Regenerate. + * i386/linux/device-drivers.h.in: Likewise. + +2006-07-27 Stefan Siegl + + * i386/linux/configure.ac (pcmcia, wireless): New driver classes. + (i82365, 3c574_cs, 3c589_cs, axnet_cs, fmvj18x_cs, nmclan_cs, pcnet_cs) + (smc91c92_cs, xirc2ps_cs, orinoco_cs): New drivers. + * i386/linux/Makefile.in (linux-pcmcia-cs-modules-files) + (linux-pcmcia-cs-clients-files, linux-pcmcia-cs-wireless-files): New + variables. Add `vpath's to the files locations. + (all-linux-files): Add the three new variables. + (linux-pcmcia-cs-modules-flags, linux-pcmcia-cs-clients-flags) + (linux-pcmcia-cs-wireless-flags): New variables. + (linux-flags): Add code to handle the above files and flags. + + * i386/i386at/i386at_ds_routines.c (emulation_list) + [LINUX_DEV && CONFIG_INET && CONFIG_PCMCIA]: Add the Linux pcmcia + emulation structure. + * linux/dev/glue/net.c: Include . + (device_get_status): Rewrite function. + (device_set_status): New function. + (linux_net_emulation_ops): Add `device_set_status' at the appropriate + position. + * linux/dev/init/main.c (linux_init) [CONFIG_PCMCIA]: Call pcmcia_init. + + * linux/pcmcia-cs/glue/ds.c: New file. + * linux/pcmcia-cs/glue/pcmcia.c: Likewise. + * linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise. + * linux/pcmcia-cs/glue/wireless_glue.h: Likewise. + + * linux/pcmcia-cs/clients/xirc2ps_cs.c (busy_loop): Replace the code by + a call to __udelay. + * linux/pcmcia-cs/include/linux/init.h: Adapt to our Linux environment. + * linux/pcmcia-cs/include/linux/slab.h: Use `#include', not + `#include_next'. + * linux/pcmcia-cs/include/pcmcia/mem_op.h: Adapt to our Linux + environment and fix GCC 4.0 complaints. + * linux/pcmcia-cs/include/pcmcia/version.h: Always assume that + CONFIG_PCMCIA is not defined. + * linux/pcmcia-cs/modules/cs.c (init_pcmcia_cs): Don't make it static. + * linux/pcmcia-cs/modules/ds.c: Use some magic to avoid duplicate + definition `io_req_t'. + (ds_open, ds_release, ds_read, ds_write, ds_select, ds_poll, ds_fops): + Hide functions if MACH is defined. + Likewise for the module handling code. + (ds_ioctl): Use plain `memcpy' if MACH is defined. + (init_pcmcia_ds): Don't register charcater devices if MACH is defined. + Include "../glue/ds.c". + * linux/pcmcia-cs/modules/i82365.c (test_irq): Adapt to GNU Mach. + (init_i82365): Don't make it static. + * linux/pcmcia-cs/modules/pci_fixup.c (pci_devices): Don't define if + MACH is defined. + * linux/pcmcia-cs/wireless/orinoco.c: Adapt to our Linux environment. + +2006-07-27 Thomas Schwinge + + Import a number of files from the pcmcia-cs package, version 3.2.8, + available from . + + * linux/pcmcia-cs/clients/3c574_cs.c: Import file. + * linux/pcmcia-cs/clients/3c589_cs.c: Likewise. + * linux/pcmcia-cs/clients/ax8390.h: Likewise. + * linux/pcmcia-cs/clients/axnet_cs.c: Likewise. + * linux/pcmcia-cs/clients/fmvj18x_cs.c: Likewise. + * linux/pcmcia-cs/clients/nmclan_cs.c: Likewise. + * linux/pcmcia-cs/clients/ositech.h: Likewise. + * linux/pcmcia-cs/clients/pcnet_cs.c: Likewise. + * linux/pcmcia-cs/clients/smc91c92_cs.c: Likewise. + * linux/pcmcia-cs/clients/xirc2ps_cs.c: Likewise. + * linux/pcmcia-cs/include/linux/crc32.h: Likewise. + * linux/pcmcia-cs/include/linux/init.h: Likewise. + * linux/pcmcia-cs/include/linux/slab.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/bulkmem.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/bus_ops.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ciscode.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cisreg.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cistpl.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cs.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cs_types.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/driver_ops.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ds.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/mem_op.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ss.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/version.h: Likewise. + * linux/pcmcia-cs/modules/bulkmem.c: Likewise. + * linux/pcmcia-cs/modules/cirrus.h: Likewise. + * linux/pcmcia-cs/modules/cistpl.c: Likewise. + * linux/pcmcia-cs/modules/cs.c: Likewise. + * linux/pcmcia-cs/modules/cs_internal.h: Likewise. + * linux/pcmcia-cs/modules/ds.c: Likewise. + * linux/pcmcia-cs/modules/ene.h: Likewise. + * linux/pcmcia-cs/modules/i82365.c: Likewise. + * linux/pcmcia-cs/modules/i82365.h: Likewise. + * linux/pcmcia-cs/modules/o2micro.h: Likewise. + * linux/pcmcia-cs/modules/pci_fixup.c: Likewise. + * linux/pcmcia-cs/modules/ricoh.h: Likewise. + * linux/pcmcia-cs/modules/rsrc_mgr.c: Likewise. + * linux/pcmcia-cs/modules/smc34c90.h: Likewise. + * linux/pcmcia-cs/modules/ti113x.h: Likewise. + * linux/pcmcia-cs/modules/topic.h: Likewise. + * linux/pcmcia-cs/modules/vg468.h: Likewise. + * linux/pcmcia-cs/modules/yenta.h: Likewise. + * linux/pcmcia-cs/wireless/hermes.c: Likewise. + * linux/pcmcia-cs/wireless/hermes.h: Likewise. + * linux/pcmcia-cs/wireless/hermes_rid.h: Likewise. + * linux/pcmcia-cs/wireless/ieee802_11.h: Likewise. + * linux/pcmcia-cs/wireless/orinoco.c: Likewise. + * linux/pcmcia-cs/wireless/orinoco.h: Likewise. + * linux/pcmcia-cs/wireless/orinoco_cs.c: Likewise. + +2006-07-24 Thomas Schwinge + + * Makerules.in (%.h %_user.c): Add `%.cli.d' to the target list. + Create these files by specifying `-MD' as a flag for mig and rename the + resulting files as needed. + Include these `*.cli.d' files instead of `*.migu.d' files. + (%_interface.h %_server.c): Likewise for `%.srv.d' / `*.migs.d'. + (%.migs.d, %.migu.d): Remove targets. + * Makefile.in (clean): Adapt to the above. + * i386/Makefile.in (clean): Likewise. + +2006-06-30 Samuel Thibault + + * i386/i386at/kd_mouse.c (mouse_char_in, mouse_char) Remove variables. + (mouse_char_index) New variable. + (mouse_handle_byte, kd_mouse_read): Use MOUSEBUF instead of MOUSE_CHAR + for storing incoming command characters. + (kd_mouse_read_reset): New function. + (ibm_ps2_mouse_open, ibm_ps2_mouse_close): Call new kd_mouse_read_reset + function. + +2006-06-09 Stefan Siegl + + * linux/dev/include/asm-i386/uaccess.h: New dummy file. + * linux/dev/include/linux/pm.h: Likewise. + * linux/dev/include/linux/threads.h: Likewise. + * linux/src/include/linux/symtab_begin.h: New file from Linux 2.0.40. + * linux/src/include/linux/symtab_end.h: Likewise. + * linux/src/include/linux/module.h: Update from Linux 2.0.40 with minor + changes. + * linux/src/include/linux/list.h: New file from Linux 2.2.26. + * linux/src/include/linux/kcomp.h: Likewise with minor changes. + * linux/src/include/linux/wait.h: Update from Linux 2.2.26. + * linux/src/include/linux/wireless.h: Likewise. + * linux/src/include/asm-i386/bitops.h [__KERNEL__] (ffs, hweight32) + (hweight16, hweight8): Copy from Linux 2.2.26. + + * kern/printf.c (_doprnt): Support printing of pointer addresses. + +2006-05-14 Roland McGrath + + [sync from HEAD, 2002-06-17] + * device/if_hdr.h: Replace ancient UCB copyright terms with current + approved UCB terms. + * include/sys/reboot.h: Likewise. + * include/device/disk_status.h: Likewise. + * include/device/tape_status.h: Likewise. + * device/net_io.c: Remove advertising clause from UCB copyright terms. + * include/device/audio_status.h: Likewise. + * include/device/bpf.h: Likewise. + +2006-05-14 Thomas Schwinge + + * i386/i386at/autoconf.c (bus_device_init) [! LINUX_DEV]: Depend + on `MACH_LPR' instead. + * i386/i386at/lpr.c: Fix obsolescent `#else' / `#endif' syntax. + +2006-05-12 Stefan Siegl + + * linux/dev/glue/kmem.c (vfree): Panic if `vmalloc_list_lookup' did + NOT succeed. + +2006-05-08 Thomas Schwinge + + * DEVELOPMENT: Document Samuel's patch. + +2006-05-08 Samuel Thibault + + [bug #7118 -- GNU Mach can't handle 1G memory] + * i386/i386at/model_dep.c (mem_size_init): Limit memory to what can + actually be used (minus a little extra for virtual mappings). + * i386/intel/pmap.c (pmap_bootstrap): Extend the virtual mapping area + according to memory size for at least being able to manage it. But + look out for wrap and limit it to kernel adresses. Remove duplicate + computing. + +2006-04-27 Richard Braun + Manuel Menal + + * device/if_hdr.h (struct ifnet): Added new members `if_snd_port_list' + and `if_snd_port_list_lock'. + * device/net_io.c: Reworked to improve BPF support. Filters can be + applied to ingress packets, egress packets, or both. + * device/subrs.c: Initialize the `if_snd_port_list' and + `if_snd_port_list_lock'. + * include/device/bpf.h [0]: Enable unconditionally. + Include . + (BPF_IN, BPF_OUT): New macros. + * include/device/net_status.h (NETF_TYPE_MASK, NETF_IN, NETF_OUT): New + macros. + (struct net_rcv_msg): New member `sent'. + * linux/dev/glue/net.c: Mark ingress packets as received and inject + egress packets into the packet filters. + +2006-04-26 Thomas Schwinge + + * Makefile.in: Replace `make' with `$(MAKE)'. + * i386/Makefile.in: Likewise. + Reported by Leonardo Lopes Pereira . + +2006-04-08 Thomas Schwinge + + * i386/Makefile.in (INCLUDES): Don't add `$(srcdir)/bogus'. + * i386/Makerules.in (INCLUDES): Add + `$(abs_top_srcdir)/$(systype)/bogus'. + Reported by Samuel Thibault . + +2006-04-02 Thomas Schwinge + + * Makerules.in (%_user.c, %_server.c): Those are `.PRECIOUS'. + (%.migs.d, %.migu.d): New targets. + (%.migs_d, %.migu_d, %.migsh_d, %.miguh_d): Remove targets. + Adapt the `include's to the renamed targets. + * Makefile.in (clean): Adapt to the renamed targets. + * i386/Makefile.in (clean): Likewise. + + * i386/Makefile.in (boothdr.o): New target. + +2006-03-21 Thomas Schwinge + + * Makefile.in (clean): Also remove `kernel.gz', `kernel.stripped' and + `kernel.stripped.gz'. + + * Makefile.in (kernel.o): Handle `$(systype)-objfiles-prepend'. + * i386/Makefile.in (sysdep.a): Likewise. + * i386/Makerules.in (kernel-objfiles-prepend): Transform variable into + `$(systype)-objfiles-prepend'. + (kernel.o): Remove target. + +2006-03-20 Thomas Schwinge + + * DEVELOPMENT: Document the NORMA removal. + +2006-03-20 Leonardo Lopes Pereira + + Remove unused and unsupported code. Consult the file `DEVELOPMENT' + for details. + + [patch #4982 -- remove of unused / unsuported functions of + gnumach-1-branch] + * bogus/norma_device.h: Remove file. + * bogus/norma_ether.h: Likewise. + * bogus/norma_ipc.h: Likewise. + * bogus/norma_task.h: Likewise. + * bogus/norma_vm.h: Likewise. + * include/mach/mach_norma.defs: Likewise. + * include/mach/norma_task.defs: Likewise. + * include/mach/norma_special_ports.h: Likewise. + * Makefile.in (bogus-files): Remove `norma_device.h', `norma_ether.h', + `norma_ipc.h', `norma_task.h' and `norma_vm.h'. + (mach-headers): Remove `mach_norma.defs', `norma_task.defs' and + `norma_special_ports.h'. + * device/ds_routines.c: Don't include anymore and + adapt all users of NORMA_DEVICE as if it were always defined to `0'. + * device/net_io.c: Likewise for , NORMA_ETHER. + * kern/machine.c: Likewise. + * ddb/db_command.c: Likevise for , NORMA_IPC. + * ipc/ipc_init.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/mach_msg.c: Likewise. + * kern/ast.c: Likewise. + * kern/debug.c: Likewise. + * kern/exception.c: Likewise. + * kern/startup.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_map.c: Likewise. + * kern/ipc_kobject.c: Likewise for , NORMA_TASK. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * ddb/db_command.c: Likewise for , NORMA_VM. + * device/dev_pager.c: Likewise. + * include/mach/mach_types.defs: Likewise. + * include/mach/mach_types.h: Likewise. + * include/mach/memory_object_default.defs: Likewise. + * include/mach/memory_object.defs: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/startup.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + +2006-03-19 Thomas Schwinge + + * DEVELOPMENT: Document the FIPC removal. + +2006-03-19 Leonardo Lopes Pereira + + Remove unused and unsupported code. Consult the file `DEVELOPMENT' + for details. + + [patch #4982 -- remove of unused / unsuported functions of + gnumach-1-branch] + * ipc/fipc.c: Remove file. + * ipc/fipc.h: Likewise. + * Makefile.in (ipc-cfiles): Remove `fipc.c'. + (ipc-files): Remove `fipc.h'. + * device/device_init.c [FIPC]: Remove code. + * device/net_io.c [FIPC]: Likewise. + * include/mach/syscall_sw.h [FIPC]: Likewise. + * kern/syscall_sw.c [FIPC]: Likewise. + +2006-03-15 Thomas Schwinge + + * configure.in: Check for strip and gzip. + * configure: Regenerated. + * Makerules.in (GZIP, STRIP): New variables. + (%.gz, %.stripped): New targets. + +2006-03-04 Roland McGrath + + * Makefile.in (DEFS): Substitute once and use the variable elsewhere. + +2006-03-04 Samuel Thibault + + [patch #4737 -- User TSS fixup] + * i386/i386/iopb.c: Include "vm_param.h". + (io_tss_init): Fix address and limit of user TSS. + +2006-03-04 Thomas Schwinge + + Remove unused and unsupported code. Consult the file + `DEVELOPMENT' for details. Partly based on suggestions by + Gianluca Guida . + + * i386/bogus/par.h: Remove file. + * i386/i386at/if_par.c: Likewise. + * i386/i386at/if_par.h: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all users + of NPAR as if it were always defined to `0'. + * i386/i386at/lpr.c: Likewise. + + * i386/bogus/de6c.h: Remove file. + * i386/i386at/if_de6c.c: Likewise. + * i386/i386at/if_de6c.h: Likewise. + * i386/i386at/if_de6s.S: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all + users of NDE6C as if it were always defined to `0'. + * i386/i386at/lpr.c: Likewise. + +2006-02-20 Thomas Schwinge + + Remove unused and unsupported code. Consult the file + `DEVELOPMENT' for details. Partly based on suggestions by + Gianluca Guida . + + * i386/bogus/blit.h: Remove file. + * i386/i386at/blit.c: Likewise. + * i386/i386at/blitreg.h: Likewise. + * i386/i386at/blituser.h: Likewise. + * i386/i386at/blitvar.h: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all + users of NBLIT as if it were always defined to `0'. + * i386/i386at/kd.c: Likewise. + (blit_init): Remove definition. + (blit_present): Likewise and adapt all users as if it were always + defined to `FALSE'. + * i386/Makefile.in (i386at-files): Remove `blit.c'. + + * bogus/net_atm.h: Remove file. + * Makefile.in (bogus-files): Remove `net_atm.h'. + * kern/syscall_sw.c: Don't include anymore and adapt all + users of NET_ATM as if it were always defined to `0'. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + + * util/about_to_die.c: Remove file. + * util/config.h: Likewise. + * util/cpu.c: Likewise. + * util/cpu.h: Likewise. + * util/cpu_init.c: Likewise. + * util/cpu_subs.h: Likewise. + * util/debug.h: Likewise. + * util/die.c: Likewise. + * util/phys_mem.h: Likewise. + * util/ref_count.h: Likewise. + * util/cpus.h: Move from here... + * bogus/cpus.h: ... to here. + * Makefile.in (bogus-files): Add `cpus.h'. + (util-cfiles): Only contain `putchar.c' and `puts.c'. + (util-files): Only contain `$(util-cfiles)'. + + * i386/util/NOTES: Remove file. + * i386/util/anno.c: Likewise. + * i386/util/anno.h: Likewise. + * i386/util/cpu.h: Likewise. + * i386/util/cpu_subs.h: Likewise. + * i386/util/cpu_tables_init.c: Likewise. + * i386/util/cpu_tables_load.c: Likewise. + * i386/util/crtn.S: Likewise. + * i386/util/debug.h: Likewise. + * i386/util/gdt.c: Likewise. + * i386/util/gdt.h: Likewise. + * i386/util/gdt_sels.h: Likewise. + * i386/util/i16/debug.h: Likewise. + * i386/util/i16/i16.h: Likewise. + * i386/util/i16/i16_die.c: Likewise. + * i386/util/i16/i16_gdt_init_temp.c: Likewise. + * i386/util/i16/i16_nanodelay.c: Likewise. + * i386/util/i16/i16_puts.c: Likewise. + * i386/util/i16/i16_writehex.c: Likewise. + * i386/util/i386_asm.sym: Likewise. + * i386/util/idt.c: Likewise. + * i386/util/idt.h: Likewise. + * i386/util/idt_inittab.S: Likewise. + * i386/util/idt_inittab.h: Likewise. + * i386/util/ldt.h: Likewise. + * i386/util/trap.h: Likewise. + * i386/util/trap_asm.sym: Likewise. + * i386/util/trap_dump.c: Likewise. + * i386/util/trap_dump_die.c: Likewise. + * i386/util/trap_handler.S: Likewise. + * i386/util/trap_return.S: Likewise. + * i386/util/tss.c: Likewise. + * i386/util/tss.h: Likewise. + * i386/util/tss_dump.c: Likewise. + * i386/util/vm_param.h: Likewise. + + * i386/pc/NOTES: Remove file. + * i386/pc/debug.h: Likewise. + * i386/pc/exit.c: Likewise. + * i386/pc/gdt.h: Likewise. + * i386/pc/gdt_sels.h: Likewise. + * i386/pc/i16/i16_a20.c: Likewise. + * i386/pc/i16/i16_a20.h: Likewise. + * i386/pc/i16/i16_bios.h: Likewise. + * i386/pc/i16/i16_exit.c: Likewise. + * i386/pc/i16/i16_ext_mem.c: Likewise. + * i386/pc/i16/i16_init.c: Likewise. + * i386/pc/i16/i16_main.c: Likewise. + * i386/pc/i16/i16_pic.c: Likewise. + * i386/pc/i16/i16_putchar.c: Likewise. + * i386/pc/i16/i16_raw.c: Likewise. + * i386/pc/i16/i16_raw_test_a20.S: Likewise. + * i386/pc/i16/i16_real_int.S: Likewise. + * i386/pc/i16/i16_switch.h: Likewise. + * i386/pc/i16/phys_mem_collect.c: Likewise. + * i386/pc/i16/phys_mem_sources.h: Likewise. + * i386/pc/i16/raw_exit.c: Likewise. + * i386/pc/i16/raw_real_int.c: Likewise. + * i386/pc/ipl.h: Likewise. + * i386/pc/irq.h: Likewise. + * i386/pc/irq_list.h: Likewise. + * i386/pc/pc_asm.sym: Likewise. + * i386/pc/phys_mem.h: Likewise. + * i386/pc/phys_mem_add.c: Likewise. + * i386/pc/pic.c: Likewise. + * i386/pc/pic.h: Likewise. + * i386/pc/putchar.c: Likewise. + * i386/pc/real.h: Likewise. + * i386/pc/real_tss.c: Likewise. + * i386/pc/real_tss.h: Likewise. + * i386/pc/real_tss_def.S: Likewise. + * i386/pc/rv86/config.h: Likewise. + * i386/pc/rv86/gdt_sels.h: Likewise. + * i386/pc/rv86/idt_irq_init.c: Likewise. + * i386/pc/rv86/rv86_real_int.c: Likewise. + * i386/pc/rv86/rv86_real_int_asm.S: Likewise. + * i386/pc/rv86/rv86_reflect_irq.S: Likewise. + * i386/pc/rv86/rv86_trap_handler.S: Likewise. + * i386/pc/rv86/trap_handler.S: Likewise. + + * i386/imps/Makefile.in: Remove file. + * i386/imps/apic.h: Likewise. + * i386/imps/cpu_number.h: Likewise. + * i386/imps/cpus.h: Likewise. + * i386/imps/imps.c: Likewise. + * i386/imps/impsasm.sym: Likewise. + + * i386/dos/dos_buf.c: Remove file. + * i386/dos/dos_check_err.c: Likewise. + * i386/dos/dos_close.c: Likewise. + * i386/dos/dos_fstat.c: Likewise. + * i386/dos/dos_gettimeofday.c: Likewise. + * i386/dos/dos_io.h: Likewise. + * i386/dos/dos_open.c: Likewise. + * i386/dos/dos_read.c: Likewise. + * i386/dos/dos_rename.c: Likewise. + * i386/dos/dos_seek.c: Likewise. + * i386/dos/dos_tcgetattr.c: Likewise. + * i386/dos/dos_unlink.c: Likewise. + * i386/dos/dos_write.c: Likewise. + * i386/dos/i16/gdt.h: Likewise. + * i386/dos/i16/gdt_sels.h: Likewise. + * i386/dos/i16/i16_crt0.S: Likewise. + * i386/dos/i16/i16_crt0.h: Likewise. + * i386/dos/i16/i16_dos.h: Likewise. + * i386/dos/i16/i16_dos_mem.c: Likewise. + * i386/dos/i16/i16_exit.c: Likewise. + * i386/dos/i16/i16_main.c: Likewise. + * i386/dos/i16/i16_putchar.c: Likewise. + * i386/dos/i16/i16_vcpi.c: Likewise. + * i386/dos/i16/i16_xms.c: Likewise. + * i386/dos/i16/idt.h: Likewise. + * i386/dos/i16/phys_mem_sources.h: Likewise. + * i386/dos/putchar.c: Likewise. + + * chips/atm.c: Remove file. + * chips/atmreg.h: Likewise. + * chips/audio.c: Likewise. + * chips/audio_config.h: Likewise. + * chips/audio_defs.h: Likewise. + * chips/bt431.c: Likewise. + * chips/bt431.h: Likewise. + * chips/bt455.c: Likewise. + * chips/bt455.h: Likewise. + * chips/bt459.c: Likewise. + * chips/bt459.h: Likewise. + * chips/bt478.c: Likewise. + * chips/bt478.h: Likewise. + * chips/build_font.c: Likewise. + * chips/cfb_hdw.c: Likewise. + * chips/cfb_misc.c: Likewise. + * chips/dc503.c: Likewise. + * chips/dc503.h: Likewise. + * chips/dtop.h: Likewise. + * chips/dtop_handlers.c: Likewise. + * chips/dtop_hdw.c: Likewise. + * chips/dz_7085.h: Likewise. + * chips/dz_defs.h: Likewise. + * chips/dz_hdw.c: Likewise. + * chips/eccreg.h: Likewise. + * chips/fb_hdw.c: Likewise. + * chips/fb_misc.c: Likewise. + * chips/fdc_82077.h: Likewise. + * chips/fdc_82077_hdw.c: Likewise. + * chips/frc.c: Likewise. + * chips/ims332.c: Likewise. + * chips/ims332.h: Likewise. + * chips/isdn_79c30.h: Likewise. + * chips/isdn_79c30_hdw.c: Likewise. + * chips/kernel_font.c: Likewise. + * chips/kernel_font.data: Likewise. + * chips/lance.c: Likewise. + * chips/lance.h: Likewise. + * chips/lance_mapped.c: Likewise. + * chips/lk201.c: Likewise. + * chips/lk201.h: Likewise. + * chips/mc_clock.c: Likewise. + * chips/mc_clock.h: Likewise. + * chips/mouse.c: Likewise. + * chips/nc.c: Likewise. + * chips/nc.h: Likewise. + * chips/nw.h: Likewise. + * chips/nw_mk.c: Likewise. + * chips/nw_mk.h: Likewise. + * chips/pm_defs.h: Likewise. + * chips/pm_hdw.c: Likewise. + * chips/pm_misc.c: Likewise. + * chips/scc_8530.h: Likewise. + * chips/scc_8530_hdw.c: Likewise. + * chips/screen.c: Likewise. + * chips/screen.h: Likewise. + * chips/screen_defs.h: Likewise. + * chips/screen_switch.c: Likewise. + * chips/screen_switch.h: Likewise. + * chips/serial_console.c: Likewise. + * chips/serial_defs.h: Likewise. + * chips/sfb_hdw.c: Likewise. + * chips/sfb_misc.c: Likewise. + * chips/spans.c: Likewise. + * chips/spans.h: Likewise. + * chips/tca100.c: Likewise. + * chips/tca100.h: Likewise. + * chips/tca100_if.c: Likewise. + * chips/tca100_if.h: Likewise. + * chips/vs42x_rb.h: Likewise. + * chips/xcfb_hdw.c: Likewise. + * chips/xcfb_misc.c: Likewise. + * chips/xcfb_monitor.h: Likewise. + * Makefile.in (chips-files): Only contain `busses.c' and `busses.h'. + * kern/syscall_sw.c: Don't include anymore. + + * i386/i386at/asm_startup.h: Remove file. + * i386/i386at/phys_mem_grab_page.c: Likewise. + * i386/Makefile.in (i386at-files): Remove `phys_mem_grab_page.c'. + + * i386/bogus/evc.h: Remove file. + * i386/i386at/kd.c: Don't include anymore and adapt all users + of NEVC as if it were always defined to `0'. + (evc1init): Remove definition and adapt all users as if it were always + defined to `FALSE'. + + * i386/bogus/nscsi.h: Remove file. + * i386/i386at/model_dep.c: Don't include anymore and adapt + all users of NSCSI as if it were always defined to `0'. + (use_all_mem): Don't define anymore and adapt all users as if it were + always defined to `1'. + (NBBY, NBPW, DMA_MAX): Remove macros. + (alloc_dma_mem): Remove function. + + * i386/bogus/asc.h: Remove file. + * i386/bogus/aha.h: Likewise. + * i386/bogus/eaha.h: Likewise. + * i386/bogus/sbic.h: Likewise. + * i386/bogus/sci.h: Likewise. + * i386/bogus/sii.h: Likewise. + * i386/bogus/siop.h: Likewise. + * i386/i386at/eisa.h: Likewise. + * scsi/adapters/README: Likewise. + * scsi/adapters/scsi_33C93.h: Likewise. + * scsi/adapters/scsi_33C93_hdw.c: Likewise. + * scsi/adapters/scsi_5380.h: Likewise. + * scsi/adapters/scsi_5380_hdw.c: Likewise. + * scsi/adapters/scsi_53C700.h: Likewise. + * scsi/adapters/scsi_53C700_hdw.c: Likewise. + * scsi/adapters/scsi_53C94.h: Likewise. + * scsi/adapters/scsi_53C94_hdw.c: Likewise. + * scsi/adapters/scsi_7061.h: Likewise. + * scsi/adapters/scsi_7061_hdw.c: Likewise. + * scsi/adapters/scsi_89352.h: Likewise. + * scsi/adapters/scsi_89352_hdw.c: Likewise. + * scsi/adapters/scsi_aha15.h: Likewise. + * scsi/adapters/scsi_aha15_hdw.c: Likewise. + * scsi/adapters/scsi_aha17_hdw.c: Likewise. + * scsi/adapters/scsi_dma.h: Likewise. + * scsi/adapters/scsi_user_dma.c: Likewise. + * scsi/adapters/scsi_user_dma.h: Likewise. + * scsi/compat_30.h: Likewise. + * scsi/disk_label.c: Likewise. + * scsi/mapped_scsi.c: Likewise. + * scsi/mapped_scsi.h: Likewise. + * scsi/pc_scsi_label.c: Likewise. + * scsi/rz.c: Likewise. + * scsi/rz.h: Likewise. + * scsi/rz_audio.c: Likewise. + * scsi/rz_cpu.c: Likewise. + * scsi/rz_disk.c: Likewise. + * scsi/rz_disk_bbr.c: Likewise. + * scsi/rz_host.c: Likewise. + * scsi/rz_labels.h: Likewise. + * scsi/rz_tape.c: Likewise. + * scsi/scsi.c: Likewise. + * scsi/scsi.h: Likewise. + * scsi/scsi2.h: Likewise. + * scsi/scsi_alldevs.c: Likewise. + * scsi/scsi_comm.c: Likewise. + * scsi/scsi_cpu.c: Likewise. + * scsi/scsi_defs.h: Likewise. + * scsi/scsi_disk.c: Likewise. + * scsi/scsi_endian.h: Likewise. + * scsi/scsi_jukebox.c: Likewise. + * scsi/scsi_optical.c: Likewise. + * scsi/scsi_printer.c: Likewise. + * scsi/scsi_rom.c: Likewise. + * scsi/scsi_scanner.c: Likewise. + * scsi/scsi_tape.c: Likewise. + * scsi/scsi_worm.c: Likewise. + * i386/i386at/autoconf.c: Don't include and anymore + and adapt all users of NAHA and NEAHA as if it were always defined to + `0'. + * i386/i386at/conf.c: Likewise. + * Makefile.in (scsi-files): Remove variable and all users of it. + + * i386/bogus/wt.h: Remove file. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NWT as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/hpp.h: Remove file. + * i386/bogus/ul.h: Likewise. + * i386/bogus/wd.h: Likewise. + * i386/i386at/gpl/if_hpp.c: Likewise. + * i386/i386at/gpl/if_ns.c: Likewise. + * i386/i386at/gpl/if_nsreg.h: Likewise. + * i386/i386at/gpl/if_ul.c: Likewise. + * i386/i386at/gpl/if_wd.c: Likewise. + * i386/i386at/autoconf.c: Don't include , and + anymore and adapt all users of NHPP, NUL and NWD as if they were always + defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/at3c501.h: Remove file. + * i386/i386at/if_3c501.c: Likewise. + * i386/i386at/if_3c501.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt + all users of NAT3C501 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/ns8390.h: Remove file. + * i386/i386at/ds8390.h: Likewise. + * i386/i386at/if_3c503.h: Likewise. + * i386/i386at/if_ns8390.c: Likewise. + * i386/i386at/if_ns8390.h: Likewise. + * i386/i386at/if_wd8003.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt + all users of NNS8390 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/ne.h: Remove file. + * i386/i386at/if_ne.c: Likewise. + * i386/i386at/if_nereg.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NNE as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/pc586.h: Remove file. + * i386/i386at/i82586.h: Likewise. + * i386/i386at/if_pc586.c: Likewise. + * i386/i386at/if_pc586.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NPC586 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/fd.h: Remove file. + * i386/i386at/fd.c: Likewise. + * i386/i386at/fdreg.h: Likewise. + * i386/i386at/nfd.c: Likewise. + * i386/i386at/nfdreg.h: Likewise. + * i386/Makefile.in (i386at-files): Remove `fd.c'. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NFD as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/hd.h: Remove file. + * i386/i386at/nhd.c: Likewise. + * i386/i386at/nhdreg.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NHD as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * DEVELOPMENT: New file. + +2006-02-05 Thomas Schwinge + + * Makerules.in: Don't set no_deps to true if MAKECMDGOALS is empty. + +2006-02-03 Thomas Schwinge + + * Makerules.in: Set no_deps to true if we don't need the dependency + files. + * i386/linux/Makefile.in: Do care about linux-flags if no_deps is true; + reverting the change from 2006-01-31. + + * Makefile.in: Include Makerules through top_builddir, so that it will + automatically be rebuilt if needed. + + * Makerules.in (CFLAGS): Added -fno-strict-aliasing. + * i386/linux/Makefile.in (linux-gen-flags): Likewise. + +2006-02-02 Sergio Lopez + + * linux/src/drivers/scsi/eata_pio.c (eata_pio_detect): Fix a + off-by-one error when probing. + * linux/src/drivers/scsi/eata_dma.c (eata_detect): Likewise. + * linux/dev/drivers/scsi/eata_dma.c (eata_detect): Likewise. + + * linux/src/drivers/net/apricot.c (apricot_probe): Increase eth_addr + size to 8 so we do not trash the stack when reading from the io ports. + +2006-02-02 Thomas Schwinge + + * Makerules.in: Move a comment ... + * Makefile.in: ... here. + +2006-02-01 Thomas Schwinge + + * linux/dev/drivers/block/genhd.c (add_bsd_partition): Only define if + both MACH and CONFIG_BSD_DISKLABEL are defined. + Reported by Matheus Morais . + +2006-01-31 Thomas Schwinge + + Cleanup of GNU Mach's build system. The system dependent parts are now + handled by the respective Makefile and no longer by the top-level one. + + * configure, i386/configure, i386/linux/configure, linux/configure: + Regenerated. + + * Makefile.in: Various cleanups. + (mach/machine, mach_machine): Targets removed. + (AWK, CC, CFLAGS, CPPFLAGS, DEFINES, INCLUDES, INSTALL, INSTALL_DATA) + (INSTALL_PROGRAM, LD, MIG, MIGFLAGS, NM): Variables moved into + Makerules.in. + Do not include $(sysdep)/Makefrag anymore. + (all, check, clean, distclean, mostlyclean, maintainer-clean, install) + (install-headers, install-kernel): Recurse into the system dependent + subdirectory. + (check): Add a basic test using mbchk. + (clean, distclean): Be more explicit in what to delete. + ($(systype)/%): New target. + (kernel.o): Incorporate the system dependent archive. + (installed-sysdep-headers-names, $(installed-sysdep-headers-names)): + Variable and target moved into the system dependent Makefile.in. + (install-headers, mkheaderdirs): Don't care for the system dependent + header files. + (%.symc, %.symc.o, %.h, %_user.c, %_interface.h, %_server.c): Targets + moved into Makerules.in. + Inclusion of dependency files: Likewise. + (%.migs_d, %.migu_d, %.migsh_d, %.miguh_d, make-deps, %.d): Likewise. + Include Makerules. + * Makerules.in: New file, mainly based on Makefile.in. + * configure.in: Do not substitute cross_compiling and not explicitly + substitute LDFLAGS. + Check for cpp, ranlib, ar and mbchk. + Care for the mach/machine symbolic link. + Add Makerules as a config file. + * i386/Makefile.in: Various cleanups. + Merge i386/Makefrag and the system dependent stuff from Makefile.in + into this file. + (all, check, install, install-headers, install-kernel): Recurse into + the system dependent subdirectory. + (sysdep.o): transformed to the new target sysdep.a. + (linux/linux.o): Target removed. + (clean, distclean): Be more explicit in what to delete. + (linux/%): New target. + (install-headers): Install the system dependent header files. + (mkheaderdirs): New target. + Include the top-level Makerules. + * i386/Makefrag: File removed. + * i386/Makerules.in: New file. + * i386/configure.in: Synchronize AC_INIT to the top-level definition. + Do not check for ld and make. + Add Makerules as a config file. + * i386/linux/Makefile.in: Various cleanups. + Replace linux-objs with objfiles. + (check, install, install-headers, install-kernel): New empty targets. + Don't care about linux-flags if no_deps is true. + Inclusion of dependency files removed and instead... + Include the top-level Makerules. + * i386/linux/Makerules.in: New file. + * i386/linux/configure.ac: Synchronize AC_INIT to the top-level + definition. + Do not check for gcc and ld. + Do not explicitly substitute LDFLAGS. + Add Makerules as a config file. + * linux/configure.in: Synchronize AC_INIT to the top-level definition. + Do not create directories using a dummy file. + * linux/dummy.in: File removed. + + * ddb/db_access.h: Include instead of + "vm_param.h". + * kern/bootstrap.c: Likewise. + * kern/thread.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-01-26 Thomas Schwinge + + * config.guess: Updated from the canonical source. + * config.sub: Likewise. + +2006-01-26 Jeroen Dekkers + + * i386/i386/locore.S (trap_push_segs): Switch fs and gs to kernel + data segment too. + (syscall_entry_2): Likewise. + * i386/i386/user_ldt.c (i386_set_ldt): Always copy the master LDT + when there is no old user LDT. + +2006-01-26 Samuel Thibault + + * linux/dev/arch/i386/kernel/irq.c (linux_intr): Disable interrupts + if the driver requested it through request_irq(). + + * linux/dev/drivers/block/ide.c (read_intr): Set the IRQ handler before + issuing a request. + (write_intr): Likewise. + (multwrite_intr): Likewise. + +2006-01-26 Thomas Schwinge + + * i386/linux/Makefile.in: Automatically recreate the `Makefile'. + +2006-01-23 Thomas Schwinge + + * i386/linux/configure: Regenerated. + + * i386/linux/configure.ac: Only add a AC_DRIVER_ALIAS if it really is a + alias. + +2006-01-22 Thomas Schwinge + + * doc/mach.texi (Configuration): Document the recently added drivers. + * i386/README-Drivers: Likewise. + + * configure, i386/configure, i386/linux/configure, linux/configure, + i386/linux/device-drivers.h.in: Regenerated. + + * linux/src/drivers/net/ne2k-pci.c: Resolve conflicts. + +2006-01-22 Guillem Jover + + * i386/linux/configure.ac: Renamed winbond-840 driver to winbond_840. + Enable the starfire, intel_gige and natsemi network drivers. Remove + "CONFIG_" from cb_chim, starfire, sundance, winbond840, hamachi, + natsemi, myson803 and ns820 driver declarations. Replace INTER_GIGE + with INTEL_GIGE. + * linux/dev/drivers/net/Space.c: Add conditional probes for natsemi, + ns820, winbond840, hamachi, sundance, starfire, myson803 and intel-gige + drivers. + + * linux/src/include/asm-i386/cache.h: New file from linux 2.2.26. + * linux/dev/include/linux/malloc.h: Include . + + * linux/src/drivers/net/ns820.c (netsami_drv_id): Renamed to ... + (ns820_drv_id): ... this. Fix all callers. + * linux/src/drivers/net/intel-gige.c + (skel_netdev_probe): Renamed to ... + (igige_probe): ... this. + * linux/dev/drivers/net/eepro100.c: Remove obsoleted file. + * linux/src/drivers/net/eepro100.c (pci_id_tbl): Add PCI ID's from + linux-2.6.14-rc4. + +2006-01-22 Alfred M. Szmidt + + * i386/linux/configure.ac: Added `pci-scan.o' to the network driver + class. (ns820, myson803, sundance, winbond-840, hamachi): New drivers. + * i386/linux/Makefile.in (linux-net-files): Added `cb_shim.c', + `hamachi.c', `intel-gige.c', `myson803.c', `natsemi.c', `ns820.c', + `starfire.c', `sundance.c', `winbond-840.c' and `pci-scan.c'. + + * linux/dev/include/linux/modversions.h: New file. + + * linux/src/drivers/net/cb_shim.c, linux/src/drivers/net/hamachi.c, + linux/src/drivers/net/intel-gige.c, linux/src/drivers/net/myson803.c, + linux/src/drivers/net/natsemi.c, linux/src/drivers/net/ns820.c, + linux/src/drivers/net/starfire.c, linux/src/drivers/net/sundance.c, + linux/src/drivers/net/winbond-840.c, + linux/src/drivers/net/kern_compat.h, linux/src/drivers/net/pci-scan.c, + linux/src/drivers/net/pci-scan.h: New files from netdrivers 3.5 package + (http://www.scyld.com/network). + + * linux/src/drivers/net/3c59x.c, linux/src/drivers/net/eepro100.c, + linux/src/drivers/net/epic100.c, linux/src/drivers/net/ne2k-pci.c, + linux/src/drivers/net/rtl8139.c, linux/src/drivers/net/tulip.c, + linux/src/drivers/net/via-rhine.c, linux/src/drivers/net/yellowfin.c: + Updated files from netdrivers 3.5 (http://www.scyld.com/network). + +2006-01-22 Thomas Schwinge + + * linux/src/drivers/net/ne2k-pci.c (ne_block_input, ne_block_output): + Fix previous patch. + +2005-07-12 Guillem Jover + + * configure: Regenerated. + * i386/configure: Regenerated. + + * Drivers.macros (AC_DRIVER_CLASS): Use AH_TEMPLATE. + (AC_DRIVER): Set the value for the AC_DEFINE and AC_DEFINE_UNQUOTED + to 1. + + * aclocal.m4 (AC_PROG_CC_LOCAL, AC_PROG_CC_WORKS_LOCAL): Removed. + * version.m4: New file. + * Makefile.in: Use PACKAGE_VERSION, not VERSION. + * doc/Makefile.in: Likewise. + * version.c.in: Likewise. Use PACKAGE_NAME, not "GNUmach". + * i386/linux/Makefile.in (configure): Change its source to + configure.ac. + + * aclocal.m4: Add missing quotations. + * Drivers.macros: Likewise. + * configure.in: Likewise. Include version.m4 and use PACKAGE and + VERSION m4 macros from it. + * i386/configure.in: Likewise. + (AC_INIT): Use new syntax and move source check to AC_CONFIG_SRCDIR. + * i386/linux/configure.ac: Likewise. Use m4_sinclude, not sinclude. + * linux/configure.in: Likewise. + + * i386/configure.in: Update AC_DEFINE to the new three argument form. + * i386/linux/configure.ac: Move AC_DEFINE inside AC_ARG_ENABLE. + + * configure.in: Use AC_CONFIG_LINKS, not AC_LINK_FILES. + * linux/configure.in: Likewise. + + * i386/configure.in: Call AC_CONFIG_FILES and use the new form of + AC_OUTPUT. + * i386/linux/configure.ac: Likewise. + * linux/configure.in: Likewise + + * configure.in: Use AS_HELP_STRING in AC_ARG_ENABLE help strings. + * Drivers.macros: Likewise. + * i386/configure.in: Likewise. + * i386/linux/configure.ac: Likewise. + +2005-07-12 Neal H. Walfield + + * configure.in: Update to use autoconf 2.57. + Do not error out if host_os is not GNU. + Update AC_DEFINEs to the required three argument form. + Don't call AC_CHECK_TOOL(CC, gcc) and AC_PROG_CC_LOCAL, just use + AC_PROG_CC. + AC_SUBST(LDFLAGS). + Refactor AC_CONFIG_SUBDIRS to not do variable substitution. + Call AC_CONFIG_FILES and use the new form of AC_OUTPUT. + * i386/configure.in: Require autoconf 2.57. + * linux/configure.in: Likewise. + * i386/linux/Drivers.in: Move from here... + * i386/linux/configure.ac: ... to here to conform to the + environment autoreconf expects. + (hurd_host_CPU): New macro. + Call AC_PROG_CC, not AC_PROG_CC_LOCAL. + AC_SUBST(LD_FLAGS). + (flashpoint): Update AC_DEFINE to the new three argument form. + * Drivers.macros (AC_DRIVER): Update AC_DEFINE to the new three + argument form. + +2005-05-24 Alfred M. Szmidt + + * i386/include/mach/i386/asm.h (END): New macro. + + * i386/include/mach/i386/syscall_sw.h (kernel_trap): Call END. + +2005-05-28 Alfred M. Szmidt + + * linux/src/drivers/scsi/u14-34f.c (ihdlr): Silence gcc 4.x + errors. + * linux/src/drivers/scsi/qlogicisp.h: Likewise. + * linux/src/drivers/scsi/advansys.c: Likewise. + (advansys_reset, advansys_interrupt, asc_scsi_done_list, + (asc_enqueue, asc_dequeue, asc_dequeue_list, asc_rmqueue, + (asc_isqueued): Likewise. + * linux/src/drivers/scsi/53c78xx.c (NCR53c7xx_queue_command): + Likewise. + * linux/src/drivers/net/ne2k-pci.c (ne_block_input) + (ne_block_output): Likewise. + * linux/src/drivers/net/hp100.c (__initfunc): Likewise. + * linux/src/drivers/net/3c507.c (el16_interrupt): Likewise. + * linux/dev/drivers/scsi/seagate.c (seagate_st0x_queue_command): + Likewise. + +2005-05-26 Alfred M. Szmidt + + * device/cons.h (cn_tab) [KERNEL]: Removed extern declaration. + + * linux/dev/include/linux/fs.h (super_blocks): Declare as an + pointer. + +2005-02-10 Guillem Jover + + * linux/dev/glue/block.c (rdwr_partial): Remove leftover assert. + +2005-01-22 Guillem Jover + + * linux/dev/include/linux/skbuff.h (skb_put, skb_push): Fix errors + for deprecated use of labels at end of compound statements. + * i386/i386/fpe_linkage.c (enable_fpe): Declare prototype. + +2005-01-22 Guillem Jover + + * linux/src/drivers/scsi/qlogicisp_asm.c: Remove file with binary + only firmware. + * linux/src/drivers/scsi/qlogicisp.c: Do not include "qlogicisp_asm.c". + (RELOAD_FIRMWARE): Set to 0. + (risc_code_addr01): New variable from qlogicisp_asm.c. + * linux/Files: Remove linux/src/drivers/scsi/qlogicisp_asm.c. + +2004-09-08 Neal H. Walfield + + * linux/dev/kernel/printk.c: Include . + (printk): Use vsnprintf, not linux_vsprintf to avoid buffer + overruns. + + * kern/printf.c (struct vsnprintf_cookie): New structure. + (snputc): New function. + (vsnprintf): Likewise. + +2004-11-22 Guillem Jover + + * bogus/mach_assert.h: Change #ifdef DEBUG to #ifndef NDEBUG + for assert et al. + * kern/assert.h: Likewise. + * kern/debug.h: Likewise. + * util/debug.h: Likewise. + + * i386/i386/debug.h: Move dump_ss definition out of [DEBUG]. + * linux/dev/glue/block.c (rdwr_full): Remove invalid assert. + +2004-09-07 Neal H. Walfield + + * linux/dev/glue/block.c (__brelse): Unconditionally kfree BH. + (getblk): Unconditionally kalloc BH. + + * kern/kalloc.c [!NDEBUG] (kalloc_init_called): New static + variable. + (kalloc_init): Assert that kalloc_init_called is zero. + [! NDEBUG] Set kalloc_init_called to 1 on success. + (kalloc): Assert that kalloc_init_called is non-zero. + (kget): Likewise. + (kfree): Likewise. + +2004-11-22 Guillem Jover + + * i386/i386/locore.S (discover_x86_cpu_type): Enable function. + Enable ID flag for Cyrix CPU. Use %ebp to save the stack pointer. + Restore EFLAGS just after its last usage. + * i386/i386at/model_dep.c (c_boot_entry): Enable use of + discover_x86_cpu_type. Remove hardcoded cpu_type assignment. + * i386/include/mach/i386/eflags.h + (EFL_VI, EFL_VIP): New bits. + (EFL_AC, EFL_ID): Bits finally added. + +2004-10-26 Guillem Jover + + * i386/i386/fpe.b: Remove binary without source. + * i386/i386/fpe.b_elf: Likewise. + * i386/i386/fpe_linkage.c: Disable the code if [! FPE]. + * i386/bogus/fpe.h: Add comment about not having an fpe implementation. + * i386/Makefrag (objfiles): Do not add fpe.o. + Remove targets to generate fpe.o. + +2004-02-29 Marcus Brinkmann + + * NEWS: Add things that changed so far since 1.3. + +2004-02-02 Marco Gerards + + * i386/i386at/kd.c (kdinit): Initialize the input buffer. + + * i386/i386at/kd.h (KDSETLEDS): New macro. + * i386/i386at/kd_event.c (kbdsetstat): Handle KDSETLEDS here to + set the keyboard LEDs state. + +2004-01-19 Marco Gerards + + * linux/dev/glue/block.c (init_partition): Don't check for BSD + partitions if the DOS partition is too small. + +2004-01-16 Marco Gerards + + * linux/dev/glue/block.c (device_get_status): Correctly calculate + the number of blocks. + +2004-01-15 Alfred M. Szmidt + + * linux/dev/include/asm-i386/string.h (memscan): Don't use + multi-line string literals for asm(). + * linux/dev/include/asm-i386/segment.h (__generic_memcpy_tofs) + (__generic_memcpy_fromfs): Likewise. + * linux/src/include/asm-i386/floppy.h (floppy_hardint): Likewise. + * i386/i386/proc_reg.h (flush_instr_queue): Likewise. + * i386/i386/gdt.c (gdt_init): Likewise. + + * linux/src/drivers/scsi/aic7xxx.c: Updated from Linux 2.0.39 + * linux/src/drivers/scsi/aic7xxx.h: Likewise. + * linux/src/drivers/scsi/aic7xxx_proc.c: Likewise. + * linux/src/drivers/scsi/scsicam.c: Likewise. + * linux/src/include/linux/pci.h: Likewise. + + * linux/src/drivers/scsi/53c7,8xx.h (patch_dsa_32): Don't use + token paste operator (##). + + * Makefile.in (kernel-undef): Match new output format from + nm (binutils) 2.14.x. + +2002-05-27 Roland McGrath + + * Version 1.3 released. + +2002-05-23 Marcus Brinkmann + + * i386/i386at/model_dep.c: Include and + . + (machine_idle): New function. + * bogus/power_save.h (POWER_SAVE): Define to 1. + +2002-05-22 Roland McGrath + + * configure.in (VERSION): New substituted variable: set to 1.3 now. + (version.c): Add it to AC_OUTPUT. + * configure: Regenerated. + * Makefile.in (version): New variable, set from that. + Remove vpath directive for version.c, not found in build dir. + (topfiles): version.c -> version.c.in + * doc/Makefile.in (mach-version): Substituted instead of constant. + * version.c: File removed, replaced with ... + * version.c.in: ... this new file. + (version): Make it const. Use @VERSION@ for the number. + + * Makefile.in (debian-files): Add postinst and prerm. + (dist): Use gzip -9 instead of tar z. + + * linux/Files: Add missing files to the list: + linux/dev/drivers/net/eepro100.c + linux/src/include/asm-i386/hardirq.h + linux/src/include/asm-i386/spinlock.h + linux/src/include/linux/compatmac.h + linux/src/include/linux/spinlock.h + + * linux/src/drivers/net/eth16i.c (eth16i_check_signature): Fix syntax: + #ifdef 0 -> #if 0 + + * Makefile.in (%.migs_d, %.migu_d): Fix sed substitution to match + whatever target file name gcc comes up with. + (%.migs_d, %.migu_d, %.symc.o, %_user.c, %_server.c): + Depend on $(before-compile). + +2002-04-24 Marcus Brinkmann + + * debian/rules (DOCDIR): Move to + $(PREFIX)/share/doc/$(package-dev). + +2002-04-23 Roland McGrath + + * i386/i386/ldt.c (ldt_init): Fix fencepost error in segment limits. + +2002-04-19 Roland McGrath + + * gensym.awk: Emit \n\ at the end of lines inside strings. + * Makefile.in (%.symc: %.sym): Depend on gensym.awk. + +2002-03-29 Marcus Brinkmann + + * doc/mach.texi: End index entry with full stop. + +2002-03-05 Roland McGrath + + * kern/bootstrap.c: Include . + +2002-03-04 Roland McGrath + + * Makefile.in (%_interface.h %_server.c: %.srv): Pass -sheader switch + to mig, not -header. + +2001-11-23 Roland McGrath + + * i386/i386at/i386at_ds_routines.c (device_deallocate): Do nothing if + argument is DEVICE_NULL. + +2001-10-21 Marcus Brinkmann + + * linux/src/arch/i386/lib/delay.c: Convert HTML entities. + Reported by John Tobey . + +2001-10-13 Marcus Brinkmann + + * debian/changelog: Update for next release. + +2001-10-07 Roland McGrath + + * ddb/db_access.c: Fix obsolescent #else/#endif syntax. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/ds_routines.c: Likewise. + * i386/i386/i386asm.sym: Likewise. + * include/device/device_reply.defs: Likewise. + * include/mach/memory_object.defs: Likewise. + * include/mach/memory_object_default.defs: Likewise. + + * i386/i386/locore.S: Fix sloppy asm syntax to avoid warnings from + newer assembler (%ecx -> %cl in byte insns). + + * kern/bootstrap.c (bootstrap_create): Fix inverted test logic for + compatibility case. Ignore trailing newlines after space for + compatibility detection. + Reported by Neal H Walfield . + +2001-10-06 Marcus Brinkmann + + * README: Replace `GNU mach' by `GNU Mach', and remove + obsolete paragraph about kmsg device. + +2001-10-06 Marcus Brinkmann + + * doc/mach.texi: Fix direntry. + +2001-10-05 Marcus Brinkmann + + * doc/mach.texi: Replace `path name' by `file name' in one place. + Replace `illegal' by `invalid' and `to to' by `to' everwhere. + + * debian/changelog: Prepare for next release. + +2001-10-04 Marcus Brinkmann + + * doc: New directory. + * doc/Makefile.in: New file. + * doc/gpl.texi: Likewise. + * doc/fdl.texi: Likewise. + * doc/mach.texi: Likewise. + * configure.in: Add doc/Makefile to AC_OUTPUT call. + * configure: Regenerated. + + * Makefile.in (dist): Create directories doc and debian. + (doc-files): New variable with documentation files. + (debian-files): New variable with Debian packaging files. + + * debian/rules (stamp-build): Build documentation. + (build-gnumach): Install the documentation into the gnumach + package. + * debian/postrm: New file to install info document. + * debian/prerm: New file to install info document. + +2001-10-01 Marcus Brinkmann + + * i386/i386/locore.S (tenmicrosec): Remove subroutine. + * i386/i386/pit.c (delaycount): Remove global variable. + (microdata): Likewise. + (clkstart): Do not call findspeed() and microfind(). + (findspeed): Remove function. + (spinwait): Likewise. + (microfind): Likewise. This function triggers a division by zero + trap on AMD K6 350Mhz+ and Athlon 1.1GHz+ machines (and in general + leads to bad results on fast cpus), and nothing uses this code anymore. + +2001-09-30 Roland McGrath + + * kern/bootstrap.c (bootstrap_create): Ignore trailing spaces when + checking boot module string for containing none. + +2001-09-18 Marcus Brinkmann + + * linux/dev/glue/misc.c: Do not include and + . + Remove global variable ___strtok. + Remove implementation of strspn, strpbrk, strtok and strstr. + * Makefile.in: Add strpbrk and strtok. + +2001-08-24 Roland McGrath + + * kern/bootstrap.c (bootstrap_create): Make setting of boot-args and + root-device no longer conditional on [! OSKIT_MACH]. + (bootstrap_create) [! OSKIT_MACH]: Parse FOO=BAR words out of the + multiboot command line and turn those into boot script variables. + + * Makefile.in (clib-routines): Add strsep. + * kern/strings.h (strsep, strchr): Declare them. + +2001-08-23 Roland McGrath + + * kern/bootstrap.c (bootstrap_create, user_bootstrap, + boot_script_exec_cmd, boot_script_task_resume): Add printfs at + various stages of startup. + +2001-08-21 Roland McGrath + + * i386/i386at/model_dep.c (use_all_mem): Turn variable into macro. + (init_alloc_aligned): Make this function static. + Initially skip memory < 16MB and then wrap around to get it last. + +2001-08-20 Roland McGrath + + Support "boot script" functionality in multiboot module strings. + * kern/bootstrap.c: Rewrite merged from oskit-branch. + * kern/boot_script.c, kern/boot_script.h: New files, + copied from boot/ directory in Hurd sources. + * Makefile.in (kern-cfiles): Add boot_script.c here. + (kern-files): Add boot_script.h here. + * NEWS: Mention the new feature. + +2001-08-18 Roland McGrath + + * i386/i386at/model_dep.c (boot_info): Define a struct, not a pointer. + (c_boot_entry): Copy the contents into it rather than setting the ptr. + (c_boot_entry, init_alloc_aligned, pmap_valid_page, mem_size_init): + Update uses. + (init_alloc_aligned): Don't need to skip the boot_info memory. + * kern/bootstrap.c (boot_info): Update decl. + (bootstrap_create): Update uses. + +2001-08-18 Marcus Brinkmann + + * linux/src/drivers/net/eepro100.c: File updated to version in + Linux 2.2.19. This time for real. + +2001-08-18 Marcus Brinkmann + + * debian/changelog: Update for next package upload. + * debian/control: Add gnumach-dbg package. + * debian/rules: New targets to build gnumach-dbg package. + Fix various bugs. + +2001-08-18 Marcus Brinkmann + + * i386/i386at/kd.c (kdintr): In event mode, make it so that + 0xE0 scancodes are received. + From Kalle Olavi Niemitalo . + + * i386/i386at/kd.h: New constants KAX_REVERSE, KAX_UNDERLINE, + KAX_BLINK, KAX_BOLD, KAX_DIM, KAX_INVISIBLE, KAX_COL_UNDERLINE, + KAX_COL_DIM. + * i386/i386at/kd.c: Increase K_MAXESC to 32. + New global variable color_table to map color values. + New globals kd_color and kd_attrflags. + (kdinit): Initialize these variables. + (kd_update_kd_attr): New function. + (kd_parserest): Redone to support more terminal attributes, + including colors. + +2001-08-18 Marcus Brinkmann + + * linux/src/drivers/net/eepro100.c: File updated to version in + Linux 2.2.19. + * linux/src/include/asm-i386/spinlock.h: New file from Linux 2.2.19. + * linux/src/include/asm-i386/hardirq.h: Likewise. + * linux/src/include/linux/spinlock.h: Likewise. + * linux/src/include/linux/compatmac.h: Likewise. + * linux/dev/drivers/net/eepro100.c: New file, modified version from + the above to glue it in gnumach. + Submitted by Kapil H. Paranjape . + +2001-08-17 Roland McGrath + + * Makefile.in (clib-routines): Add strchr. + (kernel-undef-bad): Depend on Makefile. + + * Makefile.in ($(srcdir)/configure, $(srcdir)/config.h.in): + Use $(srcdir) in deps. + (Makefile, config.h, config.status): Likewise. + +2001-07-29 Marcus Brinkmann + + * NEWS: Add items for this and other changes. + * configure.in: Define MACH_KMSG by default and document this in + the help output. + * configure: Regenerated. + * debian/rules: Do not enable kmsg explicitely. + +2001-07-18 Marcus Brinkmann + + * debian/rules: Add -isp to dpkg-gencontrol invocation. + Move documentation to /share/doc. + * debian/changelog: Update. + +2001-06-28 Marcus Brinkmann + + * linux/dev/drivers/block/ide.c (lba_capacity_is_ok): Do not + attempt to correct id->cyls, it is a short and for large disks the + number of cylinders necessary would not fit. Subsequent checks + for lba support would fail. + (current_capacity): Likewise for drive->cyl. + (do_identify): Store value returned by current_capacity in + CAPACITY. The check which corrects the number of bios cylinders + is not aggressive enough. Update it with the check in linux + kernel-2.2.19. + +2001-06-25 Marcus Brinkmann + + * i386/bogus/fpe.h (FPE): Define FPE to 0, as the floating point + emulation is broken anyway and blows up plex86. + +2001-06-17 Marcus Brinkmann + + * debian/rules: Update to current version. + +2001-06-13 Roland McGrath + + * linux/dev/glue/block.c (device_get_status: DEV_GET_RECORDS): + Always return 512 for DEV_GET_SIZE_RECORD_SIZE as DEV_GET_SIZE does. + +2001-05-27 Marcus Brinkmann + + * debian/rules: Add --enable-ncr53c8xx to configure. + +1999-10-06 OKUJI Yoshinori + + * linux/src/drivers/scsi/tmscsiw.c: Removed. + * linux/src/drivers/scsi/tmscsiw.h: Likewise. + * linux/src/drivers/scsi/dc390w.h: Likewise. + * i386/linux/device-drivers.h.in (CONFIG_SCSI_DC390W): Deleted. + * i386/linux/Drivers.in: Remove linux_DRIVER(dc390w, ...). Now + dc390w, dc390u, and dc390f are aliases to ncr53c8xx. + * i386/linux/configure: Regenerated. + * linux/Files: Likewise. + * i386/linux/Makefile.in (linux-scsi-files): Delete tmscsiw.c. + * linux/dev/drivers/scsi/hosts.c: Do not include dc390w.h. + Reported by Andreas Voegele . + +2001-05-20 Roland McGrath + + * kern/sched_prim.c (state_panic): New function, panic with some + info when a thread's state is bogus. + (thread_wakeup_prim): Use that instead of uninformative panic. + (thread_invoke): Likewise. + (thread_dispatch): Likewise. + +2001-05-12 Marcus Brinkmann + + * ipc/ipc_object.c (ipc_object_alloc): Remove initialization of + *namep, which was without effect. + +2001-04-29 Marcus Brinkmann + + * debian/changelog: New entries for past Debian uploads. + * debian/rules: Disable eatdma driver (breaks AMD K7), do + not enable com, lpr (com is redundant, lpr doesn't work), + move enabling of kmsg in its own line. + * debian/control: Add build dependency on mig and sharutils. + +2001-04-29 Marcus Brinkmann + + * device/chario.c: Set number of elements of tthiwat and ttlowat + to NSPEEDS rather than 16. Initialize the two new elements. + (chario_init): Initialize pdma_timeouts and pdma_water_mark for + B57600 and B115200. + +2001-04-27 Marcus Brinkmann + + * include/device/tty_status.h: New macros B57600 and B115200, + increase NSPEED accordingly. + * i386/i386at/com.c (divisorreg): New divisor 1. + +2001-04-04 Roland McGrath + + * ddb/db_access.h: Fix obsolescent #else/#endif syntax. + * ddb/db_aout.c: Likewise. + * ddb/db_break.c: Likewise. + * ddb/db_break.h: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_command.h: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_examine.c: Likewise. + * ddb/db_expr.c: Likewise. + * ddb/db_ext_symtab.c: Likewise. + * ddb/db_input.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_mp.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_run.c: Likewise. + * ddb/db_sym.c: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_task_thread.h: Likewise. + * ddb/db_trap.c: Likewise. + * ddb/db_variables.c: Likewise. + * ddb/db_watch.c: Likewise. + * ddb/db_watch.h: Likewise. + * ddb/db_write_cmd.c: Likewise. + * device/dev_pager.c: Likewise. + * device/device_port.h: Likewise. + * device/device_types_kernel.h: Likewise. + * device/ds_routines.h: Likewise. + * device/errno.h: Likewise. + * device/if_ether.h: Likewise. + * device/if_hdr.h: Likewise. + * device/io_req.h: Likewise. + * device/net_io.c: Likewise. + * device/net_io.h: Likewise. + * i386/i386/ast_check.c: Likewise. + * i386/i386/cswitch.S: Likewise. + * i386/i386/db_disasm.c: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/db_trace.c: Likewise. + * i386/i386/debug.h: Likewise. + * i386/i386/debug_i386.c: Likewise. + * i386/i386/debug_trace.S: Likewise. + * i386/i386/eflags.h: Likewise. + * i386/i386/gdt.h: Likewise. + * i386/i386/hardclock.c: Likewise. + * i386/i386/idt-gen.h: Likewise. + * i386/i386/ipl.h: Likewise. + * i386/i386/ktss.h: Likewise. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/ldt.h: Likewise. + * i386/i386/lock.h: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/mp_desc.h: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/pic.h: Likewise. + * i386/i386/pio.h: Likewise. + * i386/i386/pit.h: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386/thread.h: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386/trap.h: Likewise. + * i386/i386/vm_param.h: Likewise. + * i386/i386/vm_tuning.h: Likewise. + * i386/i386at/autoconf.c: Likewise. + * i386/i386at/blit.c: Likewise. + * i386/i386at/conf.c: Likewise. + * i386/i386at/fd.c: Likewise. + * i386/i386at/idt.h: Likewise. + * i386/i386at/immc.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/rtc.c: Likewise. + * i386/include/mach/i386/asm.h: Likewise. + * i386/include/mach/i386/eflags.h: Likewise. + * i386/include/mach/i386/mach_i386.defs: Likewise. + * i386/include/mach/i386/multiboot.h: Likewise. + * i386/include/mach/i386/trap.h: Likewise. + * i386/include/mach/i386/vm_types.h: Likewise. + * i386/include/mach/sa/stdarg.h: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Likewise. + * include/alloca.h: Likewise. + * include/device/device_types.defs: Likewise. + * include/device/device_types.h: Likewise. + * include/device/disk_status.h: Likewise. + * include/device/net_status.h: Likewise. + * include/mach/mach.defs: Likewise. + * include/mach/memory_object.defs: Likewise. + * include/mach/std_types.defs: Likewise. + * include/mach_debug/hash_info.h: Likewise. + * include/mach_debug/ipc_info.h: Likewise. + * include/mach_debug/mach_debug.defs: Likewise. + * include/mach_debug/mach_debug_types.defs: Likewise. + * include/mach_debug/mach_debug_types.h: Likewise. + * include/mach_debug/vm_info.h: Likewise. + * include/mach_debug/zone_info.h: Likewise. + * include/sys/ioctl.h: Likewise. + * include/sys/time.h: Likewise. + * ipc/ipc_entry.h: Likewise. + * ipc/ipc_hash.h: Likewise. + * ipc/ipc_init.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_marequest.h: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_mqueue.h: 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_pset.c: Likewise. + * ipc/ipc_pset.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/assert.h: Likewise. + * kern/ast.c: Likewise. + * kern/ast.h: Likewise. + * kern/bootstrap.c: Likewise. + * kern/counters.c: Likewise. + * kern/counters.h: Likewise. + * kern/debug.h: Likewise. + * kern/exception.c: Likewise. + * kern/host.h: Likewise. + * kern/ipc_host.c: Likewise. + * kern/ipc_host.h: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/ipc_tt.h: Likewise. + * kern/kalloc.h: Likewise. + * kern/lock_mon.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/mach_factor.c: Likewise. + * kern/mach_param.h: Likewise. + * kern/machine.c: Likewise. + * kern/processor.c: Likewise. + * kern/profile.c: Likewise. + * kern/queue.h: Likewise. + * kern/sched.h: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_emulation.h: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/syscall_subr.h: Likewise. + * kern/syscall_sw.c: Likewise. + * kern/syscall_sw.h: Likewise. + * kern/task.h: Likewise. + * kern/thread_swap.h: Likewise. + * kern/time_out.h: Likewise. + * kern/time_stamp.c: Likewise. + * kern/time_stamp.h: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * kern/xpr.c: Likewise. + * kern/xpr.h: Likewise. + * kern/zalloc.c: Likewise. + * kern/zalloc.h: Likewise. + * linux/dev/drivers/block/ide.c: Likewise. + * linux/dev/include/linux/blk.h: Likewise. + * linux/src/include/linux/cdrom.h: Likewise. + * linux/src/include/linux/md.h: Likewise. + * util/cpu.h: Likewise. + * vm/memory_object.c: Likewise. + * vm/memory_object.h: Likewise. + * vm/pmap.h: Likewise. + * vm/vm_debug.c: Likewise. + * vm/vm_external.h: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_fault.h: Likewise. + * vm/vm_kern.h: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_map.h: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_pageout.h: Likewise. + * vm/vm_user.h: Likewise. + +2001-01-28 Roland McGrath + + * kern/zalloc.c (zalloc): Change panics for exhausted zone to include + the zone name. + +2001-01-09 Marcus Brinkmann + + * include/device/device_types.h: New get_status call + DEV_GET_RECORDS to get the number of records of a device (rather + than the number of bytes). Accordingly define + DEV_GET_RECORDS_DEVICE_RECORDS, DEV_GET_RECORDS_RECORD_SIZE and + DEV_GET_RECORDS_COUNT. + + * linux/dev/glue/block.c (device_get_status): Handle + DEV_GET_RECORDS. + +2000-11-26 David Welch + + * i386/Makefrag (i386-installed-headers): Removed dead files + from the list of headers to be installed + +2000-11-26 Marcus Brinkmann + + * linux/src/drivers/net/tulip.c: Updated to version + from Linux 2.2.17 (I am amazed that 2.2.x drivers work). + Suggested by Jason Henry Parker . + +2000-10-29 Roland McGrath + + Remove numerous dead header files. + Suggested by Igor Khavkine . + * i386/include/mach/i386/bios.h: Dead file removed. + * i386/include/mach/i386/code16.h: Dead file removed. + * i386/include/mach/i386/debug_reg.h: Dead file removed. + * i386/include/mach/i386/dpmi.h: Dead file removed. + * i386/include/mach/i386/far_ptr.h: Dead file removed. + * i386/include/mach/i386/paging.h: Dead file removed. + * i386/include/mach/i386/pio.h: Dead file removed. + * i386/include/mach/i386/pmode.h: Dead file removed. + * i386/include/mach/i386/proc_reg.h: Dead file removed. + * i386/include/mach/i386/seg.h: Dead file removed. + * i386/include/mach/i386/time_stamp.h: Dead file removed. + * i386/include/mach/i386/tss.h: Dead file removed. + * i386/include/mach/i386/vcpi.h: Dead file removed. + * i386/include/mach/proc_ops.h: Dead file removed. + * i386/include/mach/sa/sys/varargs.h: Dead file removed. + * i386/include/mach/setjmp.h: Dead file removed. + * include/mach/proc_ops.h: Dead file removed. + * Makefile.in (mach-headers): Remove proc_ops.h. + * i386/Makefrag (i386-installed-headers): Likewise. + (installed-headers): Don't touch this any more. + * i386/Files: Update for removed files. + +2000-09-29 Marcus Brinkmann + + * i386/i386at/conf.c (dev_name_list): Don't use MACH_COM to check + if com support is enabled, but NCOM, as it used to be. + +2000-09-24 OKUJI Yoshinori + + * linux/dev/glue/block.c: Reverted the changes at 2000-08-17. + Reported by Brent Fulgham . + +2000-09-19 Marcus Brinkmann + + * linux/dev/glue/block.c (init_partition): Move initialization + of MASK until it is asserted that gd is non-NULL. + +2000-08-17 OKUJI Yoshinori + + * linux/dev/glue/block.c (rdwr_partial): Mask the minor device + number with MINOR_SHIFT bits, when indexing the array of + partitions. Reported by Marius Vollmer . + (init_partition): Likewise. + (check_limit): Likewise. + (device_get_status): Likewise. + +2000-07-27 Marcus Brinkmann + + * Fix omissions in last change: + * linux/src/arch/i386/lib/delay.S: Now really delete the file. + * linux/src/arch/i386/lib/delay.c: Now really add the file. + +2000-07-04 Marcus Brinkmann + + * debian/changelog: Add entry for new Debian upload. + * linux/dev/drivers/scsi/seagate.c (WRITE_CONTROL, WRITE_DATA): + Added from linux 2.2.15. + (__asm__ constructs): Replace with equivalent C code from linux 2.2.15 + to support gcc-2.95. + * linux/src/drivers/scsi/in2000.h: Update asm code to linux 2.2.15. + * linux/src/drivers/scsi/ppa.c: Replace asm code with equivalent + C code from linux 2.2.15. + +2000-02-06 Stefan Weil + + * device/subrs.c: Fixed compiler warning. + * ddb/db_output.c, kern/bootstrap.c, kern/debug.c, kern/printf.c: + Replaced varargs.h by stdarg.h. Fixed prototypes (const char *fmt). + * ddb/db_output.h: Use prototype for db_printf. + * i386/Files: removed varargs.h. + * i386/i386/pit.h: Fixed compiler warning. + * i386/i386at/model_dep.c: Tried to fix compiler warning. + * i386/include/mach/sa/sys/varargs.h: Removed. + * i386/linux/Makefile.in: Removed delay.S, added delay.c. + * linux/dev/include/asm-i386/segment.h: Support gcc-2.95. + * linux/dev/include/asm-i386/string.h, + linux/src/include/asm-i386/string.h: Update from linux-2.2.14. + * linux/dev/lib/vsprintf.c: Fixed compiler warning. + * linux/src/include/asm-i386/delay.h: Update from linux-2.2.14. + * linux/src/arch/i386/lib/delay.c: Copy from linux-2.2.14. + * linux/src/include/asm-i386/string.h: Update from linux-2.2.14. + +1999-10-08 Thomas Bushnell, BSG + + * linux/src/drivers/net/3c59x.c: Updated to version 0.99L of the + driver from ftp://cesdis.gsfc.nasa.gov/linux/drivers/3c59x.c, in + order to support the 3c509c card, as requested by Jeff Bailey + . + +1999-09-17 Thomas Bushnell, BSG + + * linux/dev/drivers/block/ide.c (do_request) [MACH]: In "bad + access" printf, actually print the number of sectors of the + partition. + +1999-10-05 Roland McGrath + + * i386/intel/pmap.c (pmap_bootstrap): Use _start instead of start. + * i386/i386/trap.c (kernel_trap): Likewise. + +1999-10-04 Roland McGrath + + * configure.in: Remove AC_CHECK_TOOL(MAKE,...) check. + * Makefile.in (MAKE): Variable removed. We require GNU make anyway, + and it always sets MAKE. + * configure: Regenerated. + + * Makefile.in (clib-routines.o, check-clib-routines, clib-routines.d): + Remove these rules, replace with: + (kernel.o): New target, relocatable object linked from kernel objects. + (kernel-undef, kernel-undef-bad): New targets, glean undefined symbols + from kernel.o. + (clib-routines.o): New target, use those to select symbols from libc. + (clib-routines): Add some symbols; move defn to kernel linking page. + This variable is now a list of symbols allowed to be undefined, + rather than a prescriptive list of symbols always grabbed from libc. + (kernel): Rewrite this rules to just link kernel.o and clib-routines.o + together to make the kernel image. + +1999-09-15 Mark Kettenis + + * i386/i386/user_ldt.c: Fix user LDT management. + (i386_set_ldt): Prevent thrashing the LDT for the current thread. + Correctly calculate size of new LDT. Set base adress of the LDT + descriptor to the linear address of the LDT instead of the kernel + virtual address. Copy descriptors from the default LDT if there + is no old LDT for the current thread. Call switch_ktss if we are + setting a new LDT for the current thread. + (i386_get_ldt): Fix bug in copying out the descriptors. + +1999-09-09 Thomas Bushnell, BSG + + * linux/src/drivers/net/rtl8139.c (RX_BUF_LEN_IDX): Reduce from 3 + to 2. (64K exceeds the limits in linux/dev/glue/kmem.c:kmalloc.) + (rtl8129_open): If we fail to get the memory we need, then free + the IRQ before returning. + Reported by Daniel Kobras . + +1999-09-07 Thomas Bushnell, BSG + + * linux/src/drivers/net/yellowfin.c (yellowfin_probe): Return + correct value. Reported by Marcus Brinkmann + . + + * linux/dev/drivers/net/Space.c: Declare tc515_probe. Reported by + Marcus Brinkmann . + +1999-09-04 Thomas Bushnell, BSG + + * vm/vm_resident.c (vm_page_grab): Only block unprivileged + allocations over vm_page_external_limit if they are actually + external allocations. Reported by Mark Kettenis + (kettenis@wins.uva.nl>. + +1999-08-10 Thomas Bushnell, BSG + + * i386/i386at/model_dep.c (init_alloc_aligned): Revert previous + change except for the one to AVAIL_NEXT. All the rest of the + previous code was correct. Correction from Momchil Velikov + (velco@fadata.bg). + +1999-07-23 Roland McGrath + + * Drivers.macros (AC_DRIVER): Use `test' instead of `[ ... ]'. + Reported by "Momchil 'Velco' Velikov" . + +1999-07-20 Roland McGrath + + * linux/dev/drivers/block/genhd.c (check_partition): Change message + to say these are only the DOS partitions. + * i386/linux/dev/include/linux/autoconf.h (CONFIG_BSD_DISKLABEL, + CONFIG_SMD_DISKLABEL): #undef these. The dev/glue/block.c code + deals with BSD disklabels and expects the Linux genhd.c code to + handle only the DOS partitions; having genhd.c do BSD disklabels + too just confuses things. + + Force subdirectory targets so they get recompiled properly. + * i386/Makefile.in (linux/linux.o): Depend on FORCE instead of linux. + (FORCE): New target. + * i386/Makefrag (i386/sysdep.o, FORCE): Likewise. + +1999-07-11 Thomas Bushnell, BSG + + * i386/i386at/model_dep.c (init_alloc_aligned): Make the checks + correctly for addresses falling into skip regions. Reported by + Momchil Velikov (velco@fadata.bg). + +1999-07-01 Thomas Bushnell, BSG + + * i386/linux/Makefile.in: For each .o file in $(linux-objs) + include a corresponding .d file, unless `no_deps' is `t'. + (make-deps): New function. + (%.d): New pattern rules for building %.d from %.c and %.S. + +1999-06-29 Thomas Bushnell, BSG + + * vm/vm_resident.c (vm_page_grab): Don't bounce requests when + vm_page_external_count == vm_page_external_limit, so that before + initialization is complete we can still allocate memory without + relying on current_thread. + (vm_page_wait): Also block if we are over the external page + limit. + * vm/vm_pageout.c (vm_pageout_scan): Rewrite the + scan-for-pages-to-pageout loop to not crash when we hit the end of + the inactive queue; instead jump back to the + pause-for-a-little-while code. + +1999-06-27 Thomas Bushnell, BSG + + * vm/vm_resident.c (vm_page_external_count): Define variable. + (vm_page_grab): New argument `external'. All callers changed. + Keep track of number of externally managed pages. Don't let + non-privileged threads exceed the externally-managed page limit. + (vm_page_grab_contiguous_pages): New argument `external'. All + callers changed. Keep track of number of externally managed + pages. Don't let non-privileged threads exceed the + externally-managed page limit. + (vm_page_convert): New argument `external', handed off to + vm_page_grab. All callers changed. + (vm_page_release): New argument `external'. All callers + changed. Keep track of number of externally managed pages. + (vm_page_bootstrap): Initialize M->external. + (vm_page_external_limit): Define new variable. + (vm_page_grab_phys_addr, vm_page_alloc): Add new arg for + vm_page_grab. + (vm_page_free): Provide new arg to vm_page_release. + * vm/vm_page.h (vm_page_external_limit, vm_page_external_count): + New variables. + (struct vm_page): New members `external' and `extcounted'. + (vm_page_grab, vm_page_release, vm_page_convert): Specify new + argument. + * vm/vm_pageout.c (vm_pageout): Initialize vm_page_external_limit + and vm_page_external_target. + (VM_PAGE_EXTERNAL_LIMIT, VM_PAGE_EXTERNAL_TARGET): New macro. + (vm_page_external_target): New variable. + (vm_pageout_scan): Regard "too many externally managed pages" as a + reason to keep doing work, but if that's the only reason we're + doing work, then the only thing we do is schedule cleaning of + pages. Help keep track of the number of externally managed pages + that we care about. + * i386/intel/pmap.c (pmap_page_table_page_alloc): Add new arg for + vm_page_grab. + * linux/dev/glue/block.c (alloc_buffer, device_read): Likewise. + * vm/vm_map.c (vm_map_copy_steal_pages): Likewise. + * vm/vm_fault.c (vm_fault_page): Add new args for vm_page_grab and + vm_page_convert. + + * vm/vm_pageout.c (VM_PAGEOUT_BURST_WAIT): Reduce to 10ms/page. + (VM_PAGEOUT_EMPTY_WAIT): Reduce to 75 ms. + (VM_PAGE_FREE_RESERVED): Increase to 50 pages. + (VM_PAGEOUT_RESERVED_INTERNAL): Adjust to `(reserve) - 25'. + (VM_PAGEOUT_RESERVED_REALLY): Adjust to `(reserve) - 40'. + +1999-06-21 Thomas Bushnell, BSG + + * i386/Files: Don't mention i386/pc/Makerules, + i386/include/Makerules, or i386/util/Makerules. + + * Makefile.in (all-real-archs): Delete variable. + (dist): No longer make `machine' symlink. + + * Makefile.in (dist): Sanify file permissions before building tar + file. + + * i386/Subdirs: Remove i386/i386at/boot. + +Sun Jun 20 18:33:59 1999 Thomas Bushnell, BSG + + * version.c (version): Updated to version 1.2. + + * i386/Files: Regenerated. + * i386/Subdirs: Regenerated. + + * linux/Files: New file. + * linux/Subdirs: New file. + * Makefile.in (all-archs): Add `linux'. + (all-real-archs): New variable. + (dist): Create `machine' symlink only on + $(all-real-archs). + + * Makefile.in (dist): Use `cp' instead of `ln'. + + * config.guess: Updated from autoconf 2.13. + * config.sub: Likewise. + +1999-06-16 Thomas Bushnell, BSG + + * linux/dev/drivers/net/Space.c (ethif_probe): Probe tc59x_probe + (CONFIG_VORTEX) after el3_probe (CONFIG_EL3), because the latter + card matches the former probe, but the driver doesn't work with + it. Reported by Marcus Brinkmann . + + * Drivers.macros (AC_DRIVER): Only turn on driver if $enableval is + not `no'. Reported by Kalle Olavi Niemitalo . + +1999-06-15 Thomas Bushnell, BSG + + * ipc/ipc_init.c (ipc_bootstrap): Don't make the IOT_PORT zone + exhaustible, because allocation of ports for internal objects + panics if zalloc fails. + +1999-06-07 OKUJI Yoshinori + + * linux/dev/drivers/block/genhd.c [MACH] (mach_minor): New variable. + (add_bsd_partition): New function. + (bsd_disklabel_partition) [MACH]: Call add_bsd_partition. + (msdos_partition) [MACH]: Set mach_minor to MINOR before + calling bsd_disklabel_partition. + * linux/dev/drivers/block/ide.c (do_request) [MACH]: Fix "bad access" + message. + +1999-06-02 Roland McGrath + + * kern/bootstrap.c (build_args_and_stack): If kernel_cmdline is + nonempty, give the bootstrap task an environment variable of + "MULTIBOOT_CMDLINE=kernel command line" on its stack. + +1999-05-29 Roland McGrath + + * kern/startup.c (start_kernel_threads): Call record_time_stamp to + reset the kernel task's creation_time field, so it's not zero. + +1999-05-24 Mark Kettenis + + * i386/i386/fpu.c (fp_free): Clear task switch flag before calling + fwait. + (fpu_get_state): Only save FPU state info if the live FPU state + belongs to our target, i.e. if THREAD is the current thread. + (fp_load): Print warning if we try to load an invalid FPU state, + and reset the FPU to some sane state instead. + +1999-05-23 Roland McGrath + + * kern/task.c (task_info): Allow count for TASK_BASIC_INFO to be less + two words, not just one. The new member creation_time is two words. + +1999-05-22 Roland McGrath + + * linux/configure: Regenerated. + +1999-05-21 Roland McGrath + + * linux/configure.in: Fix names dummy -> dummy.in in AC_OUTPUT call. + +1999-05-14 Roland McGrath + + * i386/linux/Drivers.in (linux_DRIVER): New macro, does AC_DRIVER and + defines alias for Linux module name. Use that for all single-module + Linux drivers, so we don't forget to define any of the aliases for the + Linux module names. + * i386/linux/configure: Regenerated. + +1999-04-28 OKUJI Yoshinori + + * linux/dev/drivers/block/genhd.c (bsd_disklabel_partition) [MACH]: + Print BSD slices, using Mach device syntax instead of Linux extented + partition syntax. + +1999-05-01 Mark Kettenis + + * linux/dev/glue/block.c (device_get_status): Always set + status_count to DEV_GET_STATUS_COUNT if flavor is DEV_GET_SIZE. + +1999-04-30 Roland McGrath + + * i386/linux/Drivers.in: Don't create asm-${systype} symlinks here. + * linux/configure.in: New file. Create them here instead. + * linux/dummy.in: New file, used by configure. + * linux/configure: New file (generated by autoconf). + * configure.in: Configure in linux subdir. + * configure: Regenerated. + + * i386/configure.in: Require only autoconf 2.12, not 2.13. + * i386/configure: Regenerated. + + * aclocal.m4 (hurd_SYSTYPE): New macro. + * i386/linux/Drivers.in: Use it. + * i386/linux/configure: Regenerated. + +Wed Apr 28 02:17:51 1999 Thomas Bushnell, BSG + + * linux/src/drivers/net/3c59x.c: Upgrade to Linux 2.2.1 version. + (vortex_start_xmit): Don't frob VP->stat.tx_bytes. + (boomerang_start_xmit): Likewise. + (vortex_rx): Don't frob VP->stats.rx_bytes. + (boomerang_rx): Likewise. + Requested by Jeff Bailey (jbailey@nisa.net). + +Mon Apr 26 02:13:02 1999 Thomas Bushnell, BSG + + * Makefile.in (objfiles): Don't add $(systype)/sysdep.o here. + ($(systype)/sysdep.o): Delete rule. + (clean, distclean, mostlyclean, maintainerclean, install-headers, + install-kernel): Don't do recursive make here. + * i386/Makefrag (objfiles): Add i386/sysdep.o to the list. + (i386/sysdep.o): New rule. + (clean): Depend on i386-clean. + (distclean): Depend on i386-distclean. + (mostlyclean): Depend on i386-mostlyclean. + (maintainerclean): Depend on i386-maintainerclean. + (install-headers): Depend on i386-install-headers. + (install-kernel): Depend on i386-install-kernel. + (i386-clean, i386-distclean, i386-mostlyclean, + i386-maintainerclean, i386-install-kernel, i386-install-headers): + New rules. + +1999-04-14 OKUJI Yoshinori + + * version.c (version): Update to 1.1.92. + +Sun Mar 14 18:53:01 1999 Thomas Bushnell, BSG + + * device/ds_routines.c (ds_read_done): When touching memory to + mark it dirty, make sure we say "volatile" so the compiler doesn't + optimize it out. + +1999-04-12 OKUJI Yoshinori + + * i386/linux/Drivers.in: Fix the source paths for `asm' symbolic + links. Reported by KONISHI Toru . + + * linux/dev/drivers/block/ide.c (init_hwif_data) [MACH]: Print Mach + device name instead of Linux one. + * linux/dev/drivers/block/genhd.c (disk_name): Likewise. + * linux/dev/drivers/scsi/sd.c (sd_init_onedisk): Likewise. + (sd_detect): Likewise. + * linux/dev/drivers/sr.c (sr_detect): Likewise. + (get_sectorsize): Likewise. + +1999-03-01 OKUJI Yoshinori + + Version 1.1.91. + + * version.c (version): Update to 1.1.91. + +1999-03-01 OKUJI Yoshinori + + * i386/linux/Drivers.in: Fix linking paths. + * i386/linux/Makefile.in: Corrent include paths and fix + Drivers.macros location. + +1999-02-28 OKUJI Yoshinori + + * Makefile.in (clean): Don't move device-drivers.h, because it is + not in the top directory any longer. + (distclean): Remove config.cache and config.log. + * i386/Makefile.in (distclean): Remove config.status, config.log + and Makefile. + * i386/linux/Makefile.in (distclean): Remove config.status, + config.log, Makefile and device-drivers.h. + +1999-02-27 OKUJI Yoshinori + + * i386/linux/Drivers.in: Don't link dev/include/asm-i386 to + dev/include/asm. Check if directories already exist before + mkdir_p's. Link directories manually, because AC_LINK_FILES + is weak in linking files from non-current directories. + + * i386/i386at/i386at_ds_routines.c: Include + instead of . + * device/ds_routines.c [LINUX_DEV]: Likewise. + * i386/linux/Makefile.in (linux-gen-flags): Fix an extra slash. + (distclean): Remove asm links. + * linux/src/COPYING: Copied from linux-2.0.36. + +1999-02-27 OKUJI Yoshinori + + * Makefile.in: Omit to detect if com or lpr is used, and don't use + linux.o. + (objfiles): Add $(systype)/sysdep.o. + (clean): Chain the target to $(systype). + (distclean): Likewise. + (mostlyclean): Likewise. + (maintainer-clean): Likewise. + (install-headers): Likewise. + (install-kernel): Likewise. + * configure.in: AC_CONFIG_SUBDIRS ${systype} instead of linux. + (--disable-linuxdev): Deleted. + (--disable-com): Likewise. + (--enable-lpr): Likewise. + * i386/Makefile.in: New file. + * i386/configure.in: Likewise. + * i386/Makefrag (DEFINES): Add -DLINUX_DEV. + (objfiles): Always add com.o. If MACH_LPR is defined, then add lpr.o. + * linux/Drivers.in: Moved to ... + * i386/linux/Drivers.in: ... here. Include ../../aclocal.m4. + (mkdir_p): New function to create the linux include dirs. + * linux/Makefile.in: Moved to ... + * i386/linux/Makefile.in: ... here, and modify so that paths + are valid. + (clean): New target. + (distclean): Likewise. + (mostlyclean): Likewise. + (maintainer-clean): Likewise. + * linux/src/include/linux/autoconf.h: Removed. + * linux/dev/include/linux/autoconf.h: Moved to ... + * i386/linux/dev/include/linux/autoconf.h: ... here. + * linux/dev/arch/i386/linux_emul.h: Moved to ... + * i386/linux/dev/include/linux_emul.h: ... here. + * linux/device-drivers.h.in: Moved to ... + * i386/linux/device-drivers.h.in: ... here. + * linux/aclocal.m4: Removed. + * linux/configure: Likewise. + +1999-02-14 Gordon Matzigkeit + + * Makefile.in (install-kernel): Be sure that $(bootdir) is + created before installing the kernel. + +1999-02-06 OKUJI Yoshinori + + * configure.in: Enable com by default, because current kbd and + mouse can't be linked without com. Reported by M. Meiarashi + . + +1999-02-05 OKUJI Yoshinori + + Version 1.1.90. + + * version.c (version): Update to 1.1.90. + +1999-02-04 OKUJI Yoshinori + + * device/kmsg.c (kmsginit): Add a missing semicolon. + (kmsggetstat): Fix typos, + DEV_GET_DEVICE_SIZE -> DEV_GET_SIZE_DEVICE_SIZE and + DEV_GET_RECORD_SIZE -> DEV_GET_SIZE_RECORD_SIZE. + (kmsg_putchar): Fix a typo kmsg_done_init -> kmsg_init_done. + * linux/dev/glue/block.c (device_get_status): Allocate a hd_geometry + on the stack. + * linux/dev/drivers/block/ide.c: New file. + * linux/dev/drivers/scsi/sd_ioctl.c: New file. + +1999-02-02 OKUJI Yoshinori + + * i386/i386at/kd_event.c (kbdgetstat): Fix a typo + DEV_GET_SIZES -> DEV_GET_SIZE. + * i386/i386at/kd_mouse.c (mousegetstat): Likewise. + * device/kmsg.c (kmsggetstat): Likewise. + +1999-02-01 OKUJI Yoshinori + + * linux/dev/glue/block.c (dev_getstat): Fix a missing `struct'. + * device/cons.c (cninit): Don't call kmsginit. + * kmsg.c (kmsg_buffer): Defined as static. + (kmsg_write_offset): Likewise. + (kmsg_read_offset): Likewise. + (kmsg_read_queue): Likewise. + (kmsg_in_use): Likewise. + (kmsg_lock): Likewise. + (kmsginit): Likewise, and call queue_init instead of setting + PREV and NEXT manually. + (kmsg_done_init): New variable. + (kmsg_putchar): Call kmsginit if not initialized yet. + (kmsggetstat): New function. + * kmsg.h (kmsggetstat): Add the prototype. + * i386/i386at/kd_event.c (kbdgetstat): Handle DEV_GET_SIZE. + (kbdread): Check if the amount a user specify is a multiple + of sizeof(kd_event). + * i386/i386at/kd_mouse.c (mousegetstat): New function. + (mouseread): Check if the amount a user specify is a multiple + of sizeof(kd_event). + * i386/i386at/conf.c (dev_name_list): Set the mouse getstat entry + to mousegetstat and the kmsg getstat entry to kmsggetstat. + Use MACH_COM instead of NCOM to determine if com is used. + Use MACH_LPR instead of NLPR to determine if lpr is used. + * configure.in (--enable-com): New option. + (--enable-lpr): Likewise. + * Makefile.in (enable_com): New variable. + (enable_lpr): Likewise. + * i386/Makefrag (i386at-files): Remove com.c. + (objfiles): Add com.o if enable_com is yes, and lpr.o if enable_lpr + is yes. + +Tue Jan 26 21:36:10 1999 Thomas Bushnell, BSG + + * kern/exception.c (exception_no_server): Correctly comment out + the suspend code. (This should have happened on 17 April 1997, + but apparently I did it backwards.) + +1999-01-26 OKUJI Yoshinori + + * device/kmsg.c (kmsgopen): Added simple_lock and simple_unlock. + (ksmgclose): Likewise. + +1999-01-25 OKUJI Yoshinori + + * Makefile.in (install-headers): New target for installing only + the headers. + (install-kernel): New target for installing only the kernel. + (mkheaderdirs): New target for making the headers + installation directories. + (mkkerneldirs): New target for making the kernel + installation directory. + (install): Do nothing by itself, but depend on install-kernel + and install-headers. + +1999-01-24 OKUJI Yoshinori + + * device/kmsg.h (KMSGBUFSIZE): Deleted. + * device/kmsg.c: Rewritten completely to provide stream interface. + * linux/dev/glue/block.c (device_getstat): Added V_GETPARMS support. + * config.guess: New version from automake-1.4. + * config.sub: Likewise. + * install-sh: Likewise. + + Some changes were merged from gnumach-m68k by + Aymeric Vincent . + + * Makefile.in (clean): Don't hang if device-drivers.h doesn't exist. + * linux/Makefile.in (CPPFLAGS): Fix a typo. + +1999-01-16 OKUJI Yoshinori + + * device/kmsg.c: Fixed the copyright notice. + (MACH_KMSG): Removed. + * Makefile.in (enable_kmsg): New variable. + (objfiles): Add kmsg.o, if and only if enable_kmsg is yes. + +1999-01-10 OKUJI Yoshinori + + * i386/i386at/kd.c: Applied a keymap patch. Reported by + Marcus Brinkmann . + * i386/i386at/kd.h: Likewise. + +1998-12-30 OKUJI Yoshinori + + * linux/dev/glue/net.c (dev_alloc_skb): Change the skb arragement. + (dev_kfree_skb): Free only skb. + (device_write): Keep skb elements up-to-date. + +1998-12-18 OKUJI Yoshinori + + * Makefile.in (objfiles): Add kmsg.o. + * device/cons.c: Include . + * device/kmsg.c: Rewritten almost entirely. + +1998-12-06 OKUJI Yoshinori + + Add kmsg device. + + * Makefile.in (device-files): Add kmsg.c and kmsg.h. + * configure.in (--enable-kmsg): New option. + * device/cons.c: Include kmsg.h. + (cninit): Call kmsginit if MACH_KMSG is defined. + (cnputc): Call kmsg_putchar if MACH_KMSG is defined. + * device/kmsg.c: New file. + * device/kmsg.h: Likewise. + * i386/i386at/conf.c (dev_name_list): Add kmsg entry. + +1998-12-02 OKUJI Yoshinori + + * configure.in: Fix linuxdev option handling. + * linux/Drivers.in: Remove linuxdev option and fix linking files. + * linux/Makefile.in: Replace @DEFS@ with -DLINUX_DEV. + * linux/dev/arch/i386/kernel/irq.c: Include missing header files. + * linux/dev/arch/i386/kernel/setup.c: Include . + * linux/dev/glue/kmem.c: Add printf declaration. + * linux/dev/glue/misc.c: Include . + * linux/dev/init/main.c: Call linux_sched_init instead of sched_init. + * linux/dev/kernel/sched.c: Add timer_bh declaration. + (tqueue_bh): Fix the argument. + (linux_sched_init): Renamed from sched_init. + +1998-12-01 OKUJI Yoshinori + + * i386/i386at/i386at_ds_routines.c: Include + only if LINUX_DEV is defined. Reported by UCHIYAMA Yasushi + . + * device/ds_routines.c: Likewise. + * configure.in: AC_CONFIG_SUBDIRS(linux) instead of linuxdev. + (--disable-linuxdev): New option. + * linux/Makefile.in (CPPFLAGS): Remove -DLINUX_DEV, and add @DEFS@. + (objfiles): Add linux.o only if LINUX_DEV is defined. + * linux/Drivers.in (--disable-linuxdev): New option. + * i386/Makefrag (DEFINES): Remove -DLINUX_DEV. + +1998-11-30 OKUJI Yoshinori + + Clean up linux emulation code to make it architecture-independent + as much as possible. + + * linux: Renamed from linuxdev. + * Makefile.in (objfiles): Add linux.o instead of linuxdev.o. + (MAKE): New variable. Used for the linux.o target. + * configure.in: Add AC_CHECK_TOOL(MAKE, make). + * i386/i386/spl.h: Include , for compatibility with + OSF Mach 3.0. Suggested by Elgin Lee . + * linux/src: Renamed from linux/linux. + * linux/dev: Renamed from linux/mach. + * linux/Drivers.in (AC_INIT): Use dev/include/linux/autoconf.h, + instead of mach/include/linux/autoconf.h. + * Makefile.in (all): Target ../linux.o instead of ../linuxdev.o. + * linux/dev/drivers/block/genhd.c: Include instead + of . + * linux/dev/drivers/net/auto_irq.c: Remove unneeded header files, + and . + * linux/dev/init/main.c: Many i386-dependent codes moved to ... + * linux/dev/arch/i386/irq.c: ... here. + * linux/dev/arch/i386/setup.c: New file. + * linux/dev/arch/i386/linux_emul.h: Likewise. + * linux/dev/arch/i386/glue/timer.c: Merged into sched.c. + * linux/dev/arch/i386/glue/sched.c: Include instead + of , and moved to ... + * linux/dev/kernel/sched.c: ... here. + * linux/dev/arch/i386/glue/block.c: Include and + , instead of i386-dependent header files, and + moved to ... + * linux/dev/glue/blocl.c: ... here. + * linux/dev/arch/i386/glue/net.c: Include and + , instead of i386-dependent header files, and + moved to ... + * linux/dev/glue/net.c: ... here. + * linux/dev/arch/i386/glue/misc.c: Remove `x86' and moved to ... + * linux/dev/glue/misc.c: ... here. + * linux/dev/arch/i386/glue/kmem.c: Moved to ... + * linux/dev/glue/kmem.c: ... here. + +1998-11-25 OKUJI Yoshinori + + * linuxdev/mach/init/main.c (linux_init): Call reserve_mach_irqs. + * linuxdev/mach/arch/i386/kernel/irq.c (probe_irq_on): Fix ivect + mishandling. + (probe_irq_off): Disable unnecessary IRQs. Reported by + UCHIYAMA Yasushi . + (reserve_mach_irqs): New function. + +1998-11-24 OKUJI Yoshinori + + * linuxdev/arch/i386/linux_init.c (linux_init): Check ivect + before set linux_bad_intr. + * linuxdev/arch/i386/linux_irq.c (probe_irq_on): Allocate only + if ivect is null, and set linux_intr_pri to intpri. + + * linuxdev: Heavily changed. It becomes more Linux-like file + hierarchy as suggested by Roland McGrath . + * linuxdev/linux: Contain original Linux source files. + * linuxdev/mach: Contain modified source files for Mach. + * linuxdev/mach/arch/i386/glue: XXX Contain files that are + not easy to segregate. + * Makefile.in: Call `make -C linuxdev all', instead of include + linuxdev/Makefrag. + +1998-11-23 OKUJI Yoshinori + + * linuxdev/arch/i386/linux_irq.c (linux_bad_intr): New function. + (free_irq): Set linux_bad_intr into ivect[irq]. + * linuxdev/arch/i386/linux_init.c (linux_init): + Set linux_bad_intr as the default interrupt handler. + + * linuxdev/include/asm-i386/string.h (strstr): Fix the + egcs/gcc 2.8.x bug and a linkage problem. Reported by + Roland McGrath . + +1998-11-18 OKUJI Yoshinori + + * linuxdev/Drivers.in: Fix a typo. + * linuxdev/Makefrag: Likewise. + * linuxdev/arch/i386/linux_block.c (set_blocksize): Likewise. + + * linuxdev/arch/i386/linux_kmem.c (vfree): Cast void * to + vm_offset_t. + * linuxdev/drivers/net/wavelan.p.h: Include + , instead of . + * linuxdev/drivers/scsi/aha152x.c: Define AUTOCONF. + * linuxdev/configure: Regenerate. + +1998-11-17 OKUJI Yoshinori + + * linuxdev/arch/i386/linux_misc.c (strstr): New function. + Because inline version strstr is not used when use + egcs/gcc 2.8.x. Reported by UCHIYAMA Yasushi . + + * linuxdev/arch/i386/linux_irq.c (unmask_irq): Fix a typo. + +1998-11-17 OKUJI Yoshinori + + * i386/README-Drivers: Update to Linux 2.0.36 device drivers. + * linuxdev/Drivers.in: Likewise. + * linuxdev/Makefrag: Likewise. + * linuxdev/arch/i386/linux_lib.S: Likewise. + * linuxdev/device-drivers.h.in: Likewise. + * linuxdev/drivers/block/floppy.c: Likewise. + * linuxdev/drivers/block/ide.c: Likewise. + * linuxdev/drivers/block/ide.h: Likewise. + * linuxdev/drivers/net/3c505.h: Likewise. + * linuxdev/drivers/net/3c509.c: Likewise. + * linuxdev/drivers/net/3c515.c: Likewise. + * linuxdev/drivers/net/3c59x.c: Likewise. + * linuxdev/drivers/net/Space.c: Likewise. + * linuxdev/drivers/net/apricot.c: Likewise. + * linuxdev/drivers/net/de4x5.c: Likewise. + * linuxdev/drivers/net/eepro.c: Likewise. + * linuxdev/drivers/net/eepro100.c: Likewise. + * linuxdev/drivers/net/eexpress.c: Likewise. + * linuxdev/drivers/net/epic100.c: Likewise. + * linuxdev/drivers/net/eth16i.c: Likewise. + * linuxdev/drivers/net/hp100.c: Likewise. + * linuxdev/drivers/net/lance.c: Likewise. + * linuxdev/drivers/net/ne2k-pci.c: Likewise. + * linuxdev/drivers/net/pcnet32.c: Likewise. + * linuxdev/drivers/net/rtl8139.c: Likewise. + * linuxdev/drivers/net/tlan.c: Likewise. + * linuxdev/drivers/net/tulip.c: Likewise. + * linuxdev/drivers/net/wavelan.c: Likewise. + * linuxdev/drivers/pci/pci.c: Likewise. + * linuxdev/drivers/scsi/BusLogic.c: Likewise. + * linuxdev/drivers/scsi/FlashPoint.c: Likewise. + * linuxdev/drivers/scsi/aha152x.c: Likewise. + * linuxdev/drivers/scsi/aha1542.c: Likewise. + * linuxdev/drivers/scsi/aic7xxx/sequencer.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx.c: Likewise. + * linuxdev/drivers/scsi/aic7xxx_proc.c: Likewise. + * linuxdev/drivers/scsi/aic7xxx_reg.h: Likewise. + * linuxdev/drivers/scsi/dtc.c: Likewise. + * linuxdev/drivers/scsi/eata.c: Likewise. + * linuxdev/drivers/scsi/eata.h: Likewise. + * linuxdev/drivers/scsi/eata_dma.c: Likewise. + * linuxdev/drivers/scsi/gdth.c: Likewise. + * linuxdev/drivers/scsi/gdth.h: Likewise. + * linuxdev/drivers/scsi/gdth_proc.c: Likewise. + * linuxdev/drivers/scsi/gdth_proc.h: Likewise. + * linuxdev/drivers/scsi/hosts.c: Likewise. + * linuxdev/drivers/scsi/in2000.c: Likewise. + * linuxdev/drivers/scsi/in2000.h: Likewise. + * linuxdev/drivers/scsi/ncr53c8xx.c: Likewise. + * linuxdev/drivers/scsi/ppa.h: Likewise. + * linuxdev/drivers/scsi/scsi.c: Likewise. + * linuxdev/drivers/scsi/scsicam.c: Likewise. + * linuxdev/drivers/scsi/sd.c: Likewise. + * linuxdev/drivers/scsi/seagate.c: Likewise. + * linuxdev/drivers/scsi/u14-34f.c: Likewise. + * linuxdev/drivers/scsi/u14-34f.h: Likewise. + * linuxdev/drivers/scsi/wd7000.c: Likewise. + * linuxdev/drivers/scsi/wd7000.h: Likewise. + * linuxdev/include/asm-i386/irq.h: Likewise. + * linuxdev/include/asm-i386/processor.h: Likewise. + * linuxdev/include/asm-i386/ptrace.h: Likewise. + * linuxdev/include/asm-i386/system.h: Likewise. + * linuxdev/include/asm-i386/unistd.h: Likewise. + * linuxdev/include/linux/fs.h: Likewise. + * linuxdev/include/linux/genhd.h: Likewise. + * linuxdev/include/linux/interrupt.h: Likewise. + * linuxdev/include/linux/ip.h: Likewise. + * linuxdev/include/linux/pci.h: Likewise. + * linuxdev/include/linux/version.h: Likewise. + * linuxdev/include/linux/wireless.h: Likewise. + + * linuxdev/drivers/net/via-rhine.c: New file. + * linuxdev/drivers/scsi/aic7xxx_seq.c: Likewise. + * linuxdev/include/linux/rose.h: Likewise. + + * linuxdev/drivers/scsi/aic7xxx_seq.h: Removed. + * linuxdev/configure: Regenerate. + * linuxdev/include/asm-i386/string.h: Fix the egcs/gcc 2.8.x problem, + according to http://www.suse.de/~florian/kernel+egcs.html. + +1998-11-14 OKUJI Yoshinori + + * Makefile.in (clib-routines.o): Add -L option to search libc.a. + Reported by TAKEUCHI Yoji . + + * linuxdev/drivers/pci/bios32.c: Moved to ... + * linuxdev/arch/i386/linux_bios32.c: ... here. Because it is + i386-specific code. + * linuxdev/include/asm: Moved to ... + * linuxdev/include/asm-i386: ... here. + + * i386/README-Drivers: Update to Linux 2.0.35 device drivers. + * linuxdev/Drivers.in: Likewise. + * linuxdev/configure: Likewise. + * linuxdev/device-drivers.h.in: Likewise. + * linuxdev/Makefrag: Likewise. + * linuxdev/arch/i386/linux_autoirq.c: Likewise. + * linuxdev/arch/i386/linux_block.c: Likewise. + * linuxdev/arch/i386/linux_dma.c: Likewise. + * linuxdev/arch/i386/linux_init.c: Likewise. + * linuxdev/arch/i386/linux_irq.c: Likewise. + * linuxdev/arch/i386/linux_kmem.c: Likewise. + * linuxdev/arch/i386/linux_misc.c: Likewise. + * linuxdev/arch/i386/linux_net.c: Likewise. + * linuxdev/arch/i386/linux_port.c: Likewise. + * linuxdev/arch/i386/linux_printk.c: Likewise. + * linuxdev/arch/i386/linux_sched.c: Likewise. + * linuxdev/arch/i386/linux_timer.c: Likewise. + * linuxdev/arch/i386/linux_version.c: Likewise. + * linuxdev/arch/i386/linux_vsprintf.c: Likewise. + * linuxdev/drivers/block/cmd640.c: Likewise. + * linuxdev/drivers/block/floppy.c: Likewise. + * linuxdev/drivers/block/genhd.c: Likewise. + * linuxdev/drivers/block/ide-cd.c: Likewise. + * linuxdev/drivers/block/ide.c: Likewise. + * linuxdev/drivers/block/ide.h: Likewise. + * linuxdev/drivers/block/ide_modes.h: Likewise. + * linuxdev/drivers/block/rz1000.c: Likewise. + * linuxdev/drivers/block/triton.c: Likewise. + * linuxdev/drivers/net/3c501.c: Likewise. + * linuxdev/drivers/net/3c503.c: Likewise. + * linuxdev/drivers/net/3c505.c: Likewise. + * linuxdev/drivers/net/3c507.c: Likewise. + * linuxdev/drivers/net/3c509.c: Likewise. + * linuxdev/drivers/net/3c59x.c: Likewise. + * linuxdev/drivers/net/8390.c: Likewise. + * linuxdev/drivers/net/8390.h: Likewise. + * linuxdev/drivers/net/Space.c: Likewise. + * linuxdev/drivers/net/ac3200.c: Likewise. + * linuxdev/drivers/net/apricot.c: Likewise. + * linuxdev/drivers/net/at1700.c: Likewise. + * linuxdev/drivers/net/atp.c: Likewise. + * linuxdev/drivers/net/atp.h: Likewise. + * linuxdev/drivers/net/de4x5.c: Likewise. + * linuxdev/drivers/net/de4x5.h: Likewise. + * linuxdev/drivers/net/de600.c: Likewise. + * linuxdev/drivers/net/de620.c: Likewise. + * linuxdev/drivers/net/depca.c: Likewise. + * linuxdev/drivers/net/dev.c: Likewise. + * linuxdev/drivers/net/e2100.c: Likewise. + * linuxdev/drivers/net/eepro.c: Likewise. + * linuxdev/drivers/net/eepro100.c: Likewise. + * linuxdev/drivers/net/eexpress.c: Likewise. + * linuxdev/drivers/net/eth16i.c: Likewise. + * linuxdev/drivers/net/ewrk3.c: Likewise. + * linuxdev/drivers/net/ewrk3.h: Likewise. + * linuxdev/drivers/net/hp-plus.c: Likewise. + * linuxdev/drivers/net/hp.c: Likewise. + * linuxdev/drivers/net/hp100.c: Likewise. + * linuxdev/drivers/net/hp100.h: Likewise. + * linuxdev/drivers/net/i82586.h: Likewise. + * linuxdev/drivers/net/lance.c: Likewise. + * linuxdev/drivers/net/ne.c: Likewise. + * linuxdev/drivers/net/net_init.c: Likewise. + * linuxdev/drivers/net/ni52.c: Likewise. + * linuxdev/drivers/net/ni52.h: Likewise. + * linuxdev/drivers/net/ni65.c: Likewise. + * linuxdev/drivers/net/ni65.h: Likewise. + * linuxdev/drivers/net/seeq8005.c: Likewise. + * linuxdev/drivers/net/seeq8005.h: Likewise. + * linuxdev/drivers/net/sk_g16.c: Likewise. + * linuxdev/drivers/net/sk_g16.h: Likewise. + * linuxdev/drivers/net/smc-ultra.c: Likewise. + * linuxdev/drivers/net/tulip.c: Likewise. + * linuxdev/drivers/net/wavelan.c: Likewise. + * linuxdev/drivers/net/wavelan.h: Likewise. + * linuxdev/drivers/net/wd.c: Likewise. + * linuxdev/drivers/net/znet.c: Likewise. + * linuxdev/drivers/pci/pci.c: Likewise. + * linuxdev/drivers/scsi/53c7,8xx.h: Likewise. + * linuxdev/drivers/scsi/53c78xx.c: Likewise. + * linuxdev/drivers/scsi/53c8xx_d.h: Likewise. + * linuxdev/drivers/scsi/AM53C974.c: Likewise. + * linuxdev/drivers/scsi/AM53C974.h: Likewise. + * linuxdev/drivers/scsi/BusLogic.c: Likewise. + * linuxdev/drivers/scsi/BusLogic.h: Likewise. + * linuxdev/drivers/scsi/NCR53c406a.c: Likewise. + * linuxdev/drivers/scsi/NCR53c406a.h: Likewise. + * linuxdev/drivers/scsi/advansys.c: Likewise. + * linuxdev/drivers/scsi/advansys.h: Likewise. + * linuxdev/drivers/scsi/aha152x.c: Likewise. + * linuxdev/drivers/scsi/aha152x.h: Likewise. + * linuxdev/drivers/scsi/aha1542.c: Likewise. + * linuxdev/drivers/scsi/aha1542.h: Likewise. + * linuxdev/drivers/scsi/aha1740.c: Likewise. + * linuxdev/drivers/scsi/aha1740.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx.c: Likewise. + * linuxdev/drivers/scsi/aic7xxx.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx_seq.h: Likewise. + * linuxdev/drivers/scsi/constants.h: Likewise. + * linuxdev/drivers/scsi/eata.c: Likewise. + * linuxdev/drivers/scsi/eata.h: Likewise. + * linuxdev/drivers/scsi/eata_dma.c: Likewise. + * linuxdev/drivers/scsi/eata_dma.h: Likewise. + * linuxdev/drivers/scsi/eata_generic.h: Likewise. + * linuxdev/drivers/scsi/eata_pio.c: Likewise. + * linuxdev/drivers/scsi/eata_pio.h: Likewise. + * linuxdev/drivers/scsi/fdomain.c: Likewise. + * linuxdev/drivers/scsi/fdomain.h: Likewise. + * linuxdev/drivers/scsi/g_NCR5380.c: Likewise. + * linuxdev/drivers/scsi/g_NCR5380.h: Likewise. + * linuxdev/drivers/scsi/hosts.c: Likewise. + * linuxdev/drivers/scsi/hosts.h: Likewise. + * linuxdev/drivers/scsi/in2000.c: Likewise. + * linuxdev/drivers/scsi/in2000.h: Likewise. + * linuxdev/drivers/scsi/pas16.c: Likewise. + * linuxdev/drivers/scsi/pas16.h: Likewise. + * linuxdev/drivers/scsi/scsi.c: Likewise. + * linuxdev/drivers/scsi/scsi.h: Likewise. + * linuxdev/drivers/scsi/scsi_ioctl.c: Likewise. + * linuxdev/drivers/scsi/scsi_proc.c: Likewise. + * linuxdev/drivers/scsi/scsicam.c: Likewise. + * linuxdev/drivers/scsi/sd.c: Likewise. + * linuxdev/drivers/scsi/sd.h: Likewise. + * linuxdev/drivers/scsi/sd_ioctl.c: Likewise. + * linuxdev/drivers/scsi/seagate.c: Likewise. + * linuxdev/drivers/scsi/seagate.h: Likewise. + * linuxdev/drivers/scsi/sr.c: Likewise. + * linuxdev/drivers/scsi/sr_ioctl.c: Likewise. + * linuxdev/drivers/scsi/t128.c: Likewise. + * linuxdev/drivers/scsi/t128.h: Likewise. + * linuxdev/drivers/scsi/u14-34f.c: Likewise. + * linuxdev/drivers/scsi/u14-34f.h: Likewise. + * linuxdev/drivers/scsi/ultrastor.c: Likewise. + * linuxdev/drivers/scsi/ultrastor.h: Likewise. + * linuxdev/drivers/scsi/wd7000.c: Likewise. + * linuxdev/drivers/scsi/wd7000.h: Likewise. + * linuxdev/include/asm-i386/bitops.h: Likewise. + * linuxdev/include/asm-i386/delay.h: Likewise. + * linuxdev/include/asm-i386/dma.h: Likewise. + * linuxdev/include/asm-i386/errno.h: Likewise. + * linuxdev/include/asm-i386/fcntl.h: Likewise. + * linuxdev/include/asm-i386/floppy.h: Likewise. + * linuxdev/include/asm-i386/ioctl.h: Likewise. + * linuxdev/include/asm-i386/floppy.h: Likewise. + * linuxdev/include/asm-i386/irq.h: Likewise. + * linuxdev/include/asm-i386/processor.h: Likewise. + * linuxdev/include/asm-i386/ptrace.h: Likewise. + * linuxdev/include/asm-i386/resource.h: Likewise. + * linuxdev/include/asm-i386/segment.h: Likewise. + * linuxdev/include/asm-i386/sigcontext.h: Likewise. + * linuxdev/include/asm-i386/signal.h: Likewise. + * linuxdev/include/asm-i386/socket.h: Likewise. + * linuxdev/include/asm-i386/statfs.h: Likewise. + * linuxdev/include/asm-i386/string.h: Likewise. + * linuxdev/include/asm-i386/system.h: Likewise. + * linuxdev/include/asm-i386/termios.h: Likewise. + * linuxdev/include/asm-i386/types.h: Likewise. + * linuxdev/include/asm-i386/unistd.h: Likewise. + * linuxdev/include/linux/autoconf.h: Likewise. + * linuxdev/include/linux/binfmts.h: Likewise. + * linuxdev/include/linux/bios32.h: Likewise. + * linuxdev/include/linux/blk.h: Likewise. + * linuxdev/include/linux/blkdev.h: Likewise. + * linuxdev/include/linux/cdrom.h: Likewise. + * linuxdev/include/linux/config.h: Likewise. + * linuxdev/include/linux/etherdevice.h: Likewise. + * linuxdev/include/linux/fd.h: Likewise. + * linuxdev/include/linux/fdreg.h: Likewise. + * linuxdev/include/linux/fs.h: Likewise. + * linuxdev/include/linux/genhd.h: Likewise. + * linuxdev/include/linux/hdreg.h: Likewise. + * linuxdev/include/linux/if.h: Likewise. + * linuxdev/include/linux/if_arp.h: Likewise. + * linuxdev/include/linux/if_ether.h: Likewise. + * linuxdev/include/linux/if_tr.h: Likewise. + * linuxdev/include/linux/igmp.h: Likewise. + * linuxdev/include/linux/in.h: Likewise. + * linuxdev/include/linux/inet.h: Likewise. + * linuxdev/include/linux/interrupt.h: Likewise. + * linuxdev/include/linux/ioport.h: Likewise. + * linuxdev/include/linux/ip.h: Likewise. + * linuxdev/include/linux/kernel.h: Likewise. + * linuxdev/include/linux/locks.h: Likewise. + * linuxdev/include/linux/major.h: Likewise. + * linuxdev/include/linux/malloc.h: Likewise. + * linuxdev/include/linux/mc146818rtc.h: Likewise. + * linuxdev/include/linux/mm.h: Likewise. + * linuxdev/include/linux/module.h: Likewise. + * linuxdev/include/linux/mount.h: Likewise. + * linuxdev/include/linux/net.h: Likewise. + * linuxdev/include/linux/netdevice.h: Likewise. + * linuxdev/include/linux/nfs.h: Likewise. + * linuxdev/include/linux/notifier.h: Likewise. + * linuxdev/include/linux/pagemap.h: Likewise. + * linuxdev/include/linux/pci.h: Likewise. + * linuxdev/include/linux/personality.h: Likewise. + * linuxdev/include/linux/proc_fs.h: Likewise. + * linuxdev/include/linux/quota.h: Likewise. + * linuxdev/include/linux/route.h: Likewise. + * linuxdev/include/linux/sched.h: Likewise. + * linuxdev/include/linux/skbuff.h: Likewise. + * linuxdev/include/linux/socket.h: Likewise. + * linuxdev/include/linux/sockios.h: Likewise. + * linuxdev/include/linux/string.h: Likewise. + * linuxdev/include/linux/time.h: Likewise. + * linuxdev/include/linux/timer.h: Likewise. + * linuxdev/include/linux/tqueue.h: Likewise. + * linuxdev/include/linux/tty.h: Likewise. + * linuxdev/include/linux/types.h: Likewise. + * linuxdev/include/linux/uio.h: Likewise. + * linuxdev/include/linux/version.h: Likewise. + * linuxdev/include/linux/wait.h: Likewise. + * linuxdev/include/net/af_unix.h: Likewise. + * linuxdev/include/net/ax25.h: Likewise. + * linuxdev/include/net/ax25call.h: Likewise. + * linuxdev/include/net/icmp.h: Likewise. + * linuxdev/include/net/ip.h: Likewise. + * linuxdev/include/net/ip_alias.h: Likewise. + * linuxdev/include/net/ip_forward.h: Likewise. + * linuxdev/include/net/ipx.h: Likewise. + * linuxdev/include/net/netlink.h: Likewise. + * linuxdev/include/net/netrom.h: Likewise. + * linuxdev/include/net/nrcall.h: Likewise. + * linuxdev/include/net/p8022.h: Likewise. + * linuxdev/include/net/protocol.h: Likewise. + * linuxdev/include/net/psnap.h: Likewise. + * linuxdev/include/net/raw.h: Likewise. + * linuxdev/include/net/route.h: Likewise. + * linuxdev/include/net/sock.h: Likewise. + * linuxdev/include/net/tcp.h: Likewise. + * linuxdev/include/net/udp.h: Likewise. + + * linuxdev/arch/i386/linux_soft.c: Removed. + * linuxdev/drivers/scsi/NCR5380.src: Likewise. + * linuxdev/drivers/scsi/aic7xxx_proc.src: Likewise. + * linuxdev/drivers/scsi/aic7xxx_reg.h: Likewise. + * linuxdev/drivers/scsi/eata_dma_proc.src: Likewise. + * linuxdev/drivers/scsi/eata_pio_proc.src: Likewise. + * linuxdev/drivers/scsi/qlogic.c: Likewise. + * linuxdev/drivers/scsi/qlogic.h: Likewise. + * linuxdev/drivers/scsi/scsi_debug.c: Likewise. + * linuxdev/drivers/scsi/scsi_debug.h: Likewise. + * linuxdev/drivers/scsi/scsi_ioctl.h: Likewise. + * linuxdev/include/linux/math_emu.h: Likewise. + * linuxdev/include/linux/minix_fs.h: Likewise. + * linuxdev/include/linux/minix_fs_sb.h: Likewise. + * linuxdev/include/linux/scsi.h: Likewise. + * linuxdev/include/linux/scsicam.h: Likewise. + * linuxdev/include/linux/vm86.h: Likewise. + + * linuxdev/arch/i386/linux_ctype.c: New file. + * linuxdev/arch/i386/linux_lib.S: Likewise. + * linuxdev/arch/i386/linux_softirq.c: Likewise. + * linuxdev/drivers/net/3c515.c: Likewise. + * linuxdev/drivers/net/epic100.c: Likewise. + * linuxdev/drivers/net/eth82586.h: Likewise. + * linuxdev/drivers/net/fmv18x.c: Likewise. + * linuxdev/drivers/net/ne2k-pci.c: Likewise. + * linuxdev/drivers/net/pcnet32.c: Likewise. + * linuxdev/drivers/net/rtl8139.c: Likewise. + * linuxdev/drivers/net/smc-ultra32.c: Likewise. + * linuxdev/drivers/net/smc9194.c: Likewise. + * linuxdev/drivers/net/smc9194.h: Likewise. + * linuxdev/drivers/net/tlan.c: Likewise. + * linuxdev/drivers/net/tlan.h: Likewise. + * linuxdev/drivers/net/wavelan.p.h: Likewise. + * linuxdev/drivers/net/yellowfin.c: Likewise. + * linuxdev/drivers/scsi/FlashPoint.c: Likewise. + * linuxdev/drivers/scsi/NCR5380.c: Likewise. + * linuxdev/drivers/scsi/NCR5380.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx/scsi_message.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx/sequencer.h: Likewise. + * linuxdev/drivers/scsi/aic7xxx_proc.c: Likewise. + * linuxdev/drivers/scsi/dc390.h: Likewise. + * linuxdev/drivers/scsi/dc390w.h: Likewise. + * linuxdev/drivers/scsi/dtc.c: Likewise. + * linuxdev/drivers/scsi/dtc.h: Likewise. + * linuxdev/drivers/scsi/eata_dma_proc.c: Likewise. + * linuxdev/drivers/scsi/eata_pio_proc.c: Likewise. + * linuxdev/drivers/scsi/gdth.c: Likewise. + * linuxdev/drivers/scsi/gdth.h: Likewise. + * linuxdev/drivers/scsi/gdth_ioctl.h: Likewise. + * linuxdev/drivers/scsi/gdth_proc.c: Likewise. + * linuxdev/drivers/scsi/gdth_proc.h: Likewise. + * linuxdev/drivers/scsi/ncr53c8xx.c: Likewise. + * linuxdev/drivers/scsi/ncr53c8xx.h: Likewise. + * linuxdev/drivers/scsi/ppa.c: Likewise. + * linuxdev/drivers/scsi/ppa.h: Likewise. + * linuxdev/drivers/scsi/qlogicfas.c: Likewise. + * linuxdev/drivers/scsi/qlogicfas.h: Likewise. + * linuxdev/drivers/scsi/qlogicisp.c: Likewise. + * linuxdev/drivers/scsi/qlogicisp.h: Likewise. + * linuxdev/drivers/scsi/qlogicisp_asm.c: Likewise. + * linuxdev/drivers/scsi/scripts.h: Likewise. + * linuxdev/drivers/scsi/scsiio.c: Likewise. + * linuxdev/drivers/scsi/scsiiom.c: Likewise. + * linuxdev/drivers/scsi/tmscsim.c: Likewise. + * linuxdev/drivers/scsi/tmscsim.h: Likewise. + * linuxdev/drivers/scsi/tmscsiw.c: Likewise. + * linuxdev/drivers/scsi/tmscsiw.h: Likewise. + * linuxdev/include/asm-i386/atomic.h: Likewise. + * linuxdev/include/asm-i386/checksum.h: Likewise. + * linuxdev/include/asm-i386/ioctls.h: Likewise. + * linuxdev/include/asm-i386/math_emu.h: Likewise. + * linuxdev/include/asm-i386/posix_types.h: Likewise. + * linuxdev/include/asm-i386/semaphore.h: Likewise. + * linuxdev/include/asm-i386/sockios.h: Likewise. + * linuxdev/include/asm-i386/string-486.h: Likewise. + * linuxdev/include/asm-i386/termbits.h: Likewise. + * linuxdev/include/asm-i386/unaligned.h: Likewise. + * linuxdev/include/asm-i386/vm86.h: Likewise. + * linuxdev/include/linux/affs_hardblocks.h: Likewise. + * linuxdev/include/linux/atalk.h: Likewise. + * linuxdev/include/linux/ax25.h: Likewise. + * linuxdev/include/linux/compile.h: Likewise. + * linuxdev/include/linux/ctype.h: Likewise. + * linuxdev/include/linux/fddidevice.h: Likewise. + * linuxdev/include/linux/icmp.h: Likewise. + * linuxdev/include/linux/if_fddi.h: Likewise. + * linuxdev/include/linux/ipx.h: Likewise. + * linuxdev/include/linux/md.h: Likewise. + * linuxdev/include/linux/netrom.h: Likewise. + * linuxdev/include/linux/posix_types.h: Likewise. + * linuxdev/include/linux/random.h: Likewise. + * linuxdev/include/linux/ucdrom.h: Likewise. + * linuxdev/include/linux/udp.h: Likewise. + * linuxdev/include/linux/wireless.h: Likewise. + * linuxdev/include/net/br.h: Likewise. + * linuxdev/include/net/gc.h: Likewise. + * linuxdev/include/net/ip_masq.h: Likewise. + * linuxdev/include/net/p8022tr.h: Likewise. + * linuxdev/include/net/p8022trcall.h: Likewise. + * linuxdev/include/net/rose.h: Likewise. + * linuxdev/include/net/rosecall.h: Likewise. + * linuxdev/include/net/slhc_vj.h: Likewise. + * linuxdev/include/net/spx.h: Likewise. + * linuxdev/include/scsi/scsi.h: Likewise. + * linuxdev/include/scsi/scsi_ioctl.h: Likewise. + * linuxdev/include/scsi/scsicam.h: Likewise. + +1998-11-06 OKUJI Yoshinori + + * i386/i386at/gpl/linux: Moved to ... + * linuxdev: ... here. + * i386/Makefrag: Linux drivers specific code moved to ... + * linuxdev/Makefrag: ... here. + * i386/Files: Recreated. + * i386/Subdirs: Likewise. + * linuxdev/drivers: New directory. + * linuxdev/arch: Likewise. + * linuxdev/arch/i386: Likewise. + * linuxdev/{block,scsi,net,pci}: Moved to ... + * linuxdev/drivers/{block,scsi,net,pci}: ... here. + * i386/{Drivers.in,device-drivers.h.in,driverlist.in}: Moved to ... + * linuxdev/{Drivers.in,device-drivers.h.in,driverlist.in}: ... here. + * linuxdev/{linux_emul.h,linux_*.c}: Moved to ... + * linuxdev/arch/i386/{linux_emul.h,linux_*.c}: ... here. + * linuxdev/arch/i386/linux_block.c: Include , instead + of . + * linuxdev/arch/i386/linux_init.c: Likewise. + * linuxdev/arch/i386/linux_kmem.c: Likewise. + * linuxdev/arch/i386/linux_misc.c: Likewise. + * linuxdev/arch/i386/linux_net.c: Likewise. + * linuxdev/arch/i386/linux_sched.c: Likewise. + * device/ds_routines.c: Include , instead + of . + * linuxdev/arch/i386/linux_init.c: Likewise. + * linuxdev/include/linux/autoconf.h: Likewise. + * Makefile.in: Include $(srcdir)/linuxdev/Makefrag. + * linuxdev/Drivers.in (AC_INIT): Use include/linux/autoconf.h, + instead of i386/i386asm.sym. + +1998-10-28 Roland McGrath + + * include/mach/multiboot.h: Contents were doubled. + +1998-10-24 Roland McGrath + + * Makefile.in (mach_machine): Don't depend on config.status, since it + is always newer than the symlink target. + + * i386/Makefrag ($(systype)/device-drivers.h): Depend on + $(systype)/driverlist, and have no commands. + + * configure.in (--enable-kdb): Fix help text; handle --disable-kdb. + Remove BUILD_CC checks and lex/yacc checks (which were for mig). + (installed_clib): Remove these checks. + (LD, NM, MIG): Use AC_CHECK_TOOL for these. + + * Makefile.in (all, clean, mostlyclean, install, dist, + %_interface.h rule, all *mig* rules): Remove all commands, deps, + and rules related to mig, which is now in a separate distribution. + + * Makefile.in (before-compile): Add mach/machine. + (mach/machine, mach_machine): New rules to make symlink so + #include works. + + * Makefile.in (NM): New variable, substituted by configure. + (check-clib-routines): Use $(NM) instead of literal "nm". + Fix awk script to grok __ defns and weak defns of desired symbols. + (clib-routines.o): Use $(CC) -r -nostartfiles -nostdlib -static + instead of $(LD) -r. Use -lc instead of $(installed-clib). + (installed-clib): Variable removed. + + * i386/Makefrag: Use -include for linux-flags, so no warning. + + * device/chario.c: Add forward decl for ttstart. + + * i386/i386/db_trace.c: Use explicit int in decl. + + * device/ds_routines.c (device_write_trap, device_writev_trap, + ds_trap_write_done): Cast arg to zfree. + + * kern/ipc_tt.c (mach_ports_lookup): Remove unnecessary cast. + +1998-10-04 Roland McGrath + + * include/mach/message.h: Use __typeof instead of typeof. + +1998-09-06 Roland McGrath + + * kern/time_out.h: Include for time_value_t defn. + +1998-07-19 Roland McGrath + + * mig: Subdirectory removed, now in separate dist. + +Fri Apr 24 14:24:15 1998 Thomas Bushnell, n/BSG + + * i386/i386/pcb.c (thread_setstatus): Set STATE before validating + segment registers. Reported by UCHIYAMA Fasushi (uch@nop.or.jp). + +Fri Apr 24 13:19:40 1998 Thomas Bushnell n/BSG + + * kern/debug.c (panic): Increase "seconds" in delay to 1000; machines + are faster now. + + * i386/i386at/gpl/linux/linux_kmem.c: Increase MEM_CHUNKS to 7. + +Wed Aug 20 16:05:19 1997 Thomas Bushnell, n/BSG + + * kern/thread.h (struct thread): New member `creation_time'. + * include/mach/thread_info.h: New member `creation_time'. + * kern/thread.c (thread_create): Set creation time stamp. + (thread_info) [THREAD_BASIC_INFO]: Fill in new creation time + field. Carefully preserve compatibility with old callers. + + * kern/task.h (struct task): New member `creation_time'. + * include/mach/task_info.h: New member `creation_time'. + * kern/task.c (task_create): Set creation time stamp. + (task_info) [TASK_BASIC_INFO]: Fill in new creation time field. + Carefully preserve compatibility with old callers. + + * kern/mach_clock.c (record_time_stamp): New function. + * kern/time_out.h (record_time_stamp): Add prototype. + +Sun Aug 3 18:25:38 1997 Shantanu Goel + + * i386/i386/thread.h (struct pcb): Added new field `data' used + by Linux driver emulation. + + * i386/i386at/gpl/linux/include/linux/blk.h (end_request): + Revamped Mach specific code. Don't use `errors' field in request. + Don't call driver's request function. + + * i386/i386at/gpl/linux/include/linux/fs.h (struct buffer_head): + Deleted old Mach-specific definition. Use original Linux defintion. + + * i386/i386at/gpl/linux/linux_block.c: Rewritten extensively. + (collect_buffer_pages): Deleted. + (alloc_buffer, free_buffer): Rewritten to use Mach page allocator. + (getblk, __brelse): Use Mach kernel allocator. + (check_for_error): Deleted. + (ll_rw_block): Allocate request structure on stack. + (rdwr_partial, rdwr_full, do_rdwr) New routines. + (block_read, block_write): Rewritten to use new routine do_rdwr. + (find_name): New routine. + (read_bsd_label, read_vtoc): New routines. + (init_partition): New routine. + (device_open): Rewritten for modularity. Allocate Linux block + variables on the stack. + (check_limit): New routine. + (device_read, device_write): Rewritten extensively. Map user + pages into kernel buffer before passing to driver. This is in + preparation for general Linux block driver support. Allocate + Linux block variables on the stack. + + * i386/i386at/gpl/linux/linux_kmem.c: + (collect_buffer_pages): Deleted. + +Fri Aug 1 16:15:33 1997 Thomas Bushnell, n/BSG + + * kern/mach_clock.c (clock_interrupt): Test correct macro to see + if PC sampling is configured: MACH_PCSAMPLE, not MACH_SAMPLE. + + * i386/i386/locore.S (discover_x86_cpu_type): Comment out routine + for now. + * i386/i386at/model_dep.c (c_boot_entry): Comment out use of + discover_x86_cpu_type for now. + + * i386/include/mach/i386/eflags.h (EFL_AC, EFL_ID): New bits. + + * i386/i386/locore.S (discover_x86_cpu_type): Use correct opcode + for right shift. Use ENTRY macro correctly. + +Mon Jul 28 17:01:19 1997 Thomas Bushnell, n/BSG + + * COPYING: New file. + * Makefile.in (topfiles): Add COPYING. + +Mon Jul 21 14:20:39 1997 Thomas Bushnell, n/BSG + + * kern/mach4.srv: Include so the value of + MACH_PCSAMPLE is made available for mach4.defs. + +Thu Jul 10 13:51:20 1997 Thomas Bushnell, n/BSG + + * Makefile.in (install): Use `ln -sf' instead of `-ln -s'. + Suggested by Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu). + +Thu Jun 26 13:48:31 1997 Thomas Bushnell, n/BSG + + * i386/i386/locore.S (discover_x86_cpu_type): New function. + * i386/i386at/model_dep.c (c_boot_entry): Fill in cpu type in + MACHINE_SLOT using new function. + + * include/mach/machine.h (CPU_TYPE_I486, CPU_TYPE_PENTIUM, + CPU_TYPE_PENTIUMPRO, CPU_TYPE_POWERPC): New CPU types. These + conform to current OSF Mach values, but note that some of the + various subtypes are different. + +Mon Jun 16 12:14:17 1997 Thomas Bushnell, n/BSG + + * i386/i386/loose_ends.c (ovbcopy): Delete function. Suggested by + Matthew Wilcox (willy@odie.barnet.ac.uk.) + +Thu Jun 12 18:08:29 1997 Thomas Bushnell, n/BSG + + Version 1.1.3 released. + + * version.c (version): Update to 1.1.3. + +Wed Jun 11 20:16:47 1997 Thomas Bushnell, n/BSG + + * i386/Drivers.in: Add el3. How did this escape notice? + * i386/device-drivers.h.in: Add CONFIG_EL3. + +Tue Jun 10 13:33:37 1997 Thomas Bushnell, n/BSG + + Version 1.1.2 released. + + * Makefile.in (install): Install cross-migcom as `migcom', not as + `mig'. + + * i386/Makefrag (objfiles += $(device_drivers)): Sort + $(device_drivers) before adding to objfiles in order to remove + duplicates. + +Mon Jun 9 22:14:09 1997 Thomas Bushnell, n/BSG + + * i386/Drivers.in: Fix typos apt.o -> atp.o; 3c403.o -> 3c503.o. + + * Drivers.macros (AC_DRIVER): Test the class selected flag + correctly. + +Mon May 26 14:33:19 1997 Thomas Bushnell, n/BSG + + * version.c (version): Update to version 1.1.2. + +Fri May 23 10:08:48 1997 Thomas Bushnell, n/BSG + + * kern/thread.c (thread_info): Set flags word correctly; + TH_FLAGS_SWAPPED and TH_FLAGS_IDLE are not exclusive. + + * Makefile.in (topfiles): Add aclocal.m4. + Reported by Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu). + +Mon May 12 11:25:38 1997 Thomas Bushnell, n/BSG + + Version 1.1.1 released. + + * version.c (version): Update to version 1.1.1. + + * bogus/mach_kdb.h: Make sure MACH_KDB is always defined, to zero + if necessary. Bug report from Marcus Daniels + (marcus@cathcart.sysc.pdx.edu). + +Fri May 9 13:06:25 1997 Thomas Bushnell, n/BSG + + * i386/Files: Fix typo for _setjmp.S. + Reflect 53c7,8xx.c -> 53c78xx.c change. + +Wed May 7 15:32:08 1997 Thomas Bushnell, n/BSG + + * version.c (version): Update to version 1.1. + * NEWS: New file. + * Makefile.in (topfiles): Add NEWS. + +Mon May 5 11:34:01 1997 Thomas Bushnell, n/BSG + + * Makefile.in (enable_kdb): Use findstring instead of filter. + Reported by Marcus Daniels (marcus@cathcart.sysc.pdx.edu). + +Fri May 2 12:43:46 1997 Thomas Bushnell, n/BSG + + * Makefile.in (enable_kdb): New variable. + (clib-routines): If enable_kdb, then add strstr. + * i386/i386/_setjmp.S: New file, from UK22 libmach. + * i386/Files: Add i386/i386/_setjmp.S. + * i386/Makefrag (objfiles): Add _setjmp.o if enable_kdb. + +1997-04-30 Marcus G. Daniels + + * Makefile.in (clib-routines): Add htons not because it is necessary, + but because libc5 systems will bring it in. + (check-clib-routines): Tolerate extra weak symbols. + +Wed Apr 30 14:12:12 1997 Thomas Bushnell, n/BSG + + * Makefile.in: Delete duplicate rule for cross-mig. + +Mon Apr 28 12:09:53 1997 Thomas Bushnell, n/BSG + + * Makefile.in (check): New target. Reported by + xtest@postman.epa.go.jp. + + * i386/Drivers.in (ncr53c7xx): Change file name to 53c78xx.o. + * i386/i386at/gpl/linux/scsi/53c7,8xx.c: Moved to ... + * i386/i386at/gpl/linux/scsi/53c78xx.c: ... here. + * i386/Makefrag (linux-scsi-files): Change file name here too. + Reported by xtest@postman.epa.go.jp. + +Wed Apr 23 14:35:44 1997 Miles Bader + + * ipc/ipc_entry.c [MACH_KDB]: Add include of . + +Wed Apr 23 13:21:23 1997 Thomas Bushnell, n/BSG + + * configure.in (BUILD_CC): Use AC_CHECK_PROGS, not AC_CHECK_PROG, + since we are checking multiple names. + + * configure.in (kdb): New --enable option. + * Makefile.in (DEFINES): Add @DEFS@. + * bogus/mach_kdb.h: Make this file zero length; we get MACH_KDB + from configure now. + + * Makefile.in (clean, distclean, mostlyclean, maintainter-clean): + New targets. + (all-archs-configures): New variable. + (MIG): Change to ./local-mig. + (./local-mig): Change to build this instead of ./mig + (check-clib-routines): Use nm -g in case there are local symbols. + Suggested by Matthew Wilcox (willy@odie.barnet.ac.uk). + +Fri Apr 18 15:25:10 1997 Thomas Bushnell, n/BSG + + * configure.in: Add AC_PREREQ for version 2.12. + * i386/Drivers.in: Likewise. + +Wed Apr 16 16:55:36 1997 Marcus G. Daniels + + * configure.in: Replace AC_PROG_CC with AC_PROG_CC_LOCAL. + If cross compiling do Lex/Yacc checks with BUILD_CC. + Check CC and BUILD_CC for libraries having the needed support, + and substitute discovery in installed_clib. + + * aclocal.m4: New file. These replacement macros are to handle + the case where there is a cross compiler but no supporting files. + + * Makefile.in (installed-clib): Don't hardwire a Hurd libcrt.a. + (cross_linkable): Only define cross-migcom variable when it will + be possible to build it. + (all, install): Use $(cross-migcom). + (install): Install cross-migcom only if was to be built. + (mkinstalldirs): Add $(bindir), $(includedir)/mach/exec + (cross-lexxer.o lexxer.o): lexxer.o needs cpu.h. + (./cross-migcom): Prevent dependency generation for cross-* MiG files + unless they can actually be built. + +Thu Apr 17 15:55:40 1997 Thomas Bushnell, n/BSG + + * kern/exception.c (exception_no_server): Comment out the suspend + code; it's useful for special case debugging, but causes problems + in general. + +Wed Apr 16 12:52:25 1997 Thomas Bushnell, n/BSG + + * Makefile.in (cross-lexxer.o lexxer.o): Add pump-priming + dependency on cpu.h. Reported by Marcus G. Daniels + (marcus@cathcart.sysc.pdx.edu). + + * configure.in: Fail if configure target is not for GNU os. + + * i386/Drivers.in (com): Delete option. It's required by + kd_mouse.c. + * i386/Makefrag (i386at-files): Add com.c. + (driver-files): Delete variable. + * i386/bogus/com.h: Revert change of March 10. + * i386/device-drivers.h.in (CONFIG_MACH_COM): Delete option. + Bug report from Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu). + + * Makefile.in (./cross-mig): New rule. + (mkinstalldirs): Add $(libexecdir). + * configure.in: Recognize i686. + Reported by Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu). + Mon Apr 14 11:50:45 1997 Thomas Bushnell, n/BSG - * Released version 1.0. - + * Released version 1.0. + * kern/exception.c (exception_no_server): Try and suspend the failing thread before killing the task. Then a debugger can be - used. + used. * i386/Makefrag: Add rebuilding rules for configure subscript. @@ -23,10 +15953,10 @@ Mon Apr 14 11:50:45 1997 Thomas Bushnel (mach-exec-headers): New variable. (other-headers): New variable. (installed-headers): Add mach-exec-headers. - (dist): Distribute other-mach-headers, other-sys-headers, + (dist): Distribute other-mach-headers, other-sys-headers, mach-exec-headers, and other-headers. (device-files): Add device.srv. - + * Makefile.in (check-clib-routines): Use more efficient rule. Fri Apr 11 15:18:09 1997 Thomas Bushnell, n/BSG @@ -46,9 +15976,9 @@ Mon Mar 24 16:23:21 1997 Thomas Bushnel Fri Mar 21 15:50:09 1997 Thomas Bushnell, n/BSG * i386/i386at/gpl/linux/scsi/aha1740.c (aha1740_test_port): Try - and turn on PORTADDR_ENH before checking it. + and turn on PORTADDR_ENH before checking it. - * vm/vm_object.c (vm_object_cached_max): Increase to 200. + * vm/vm_object.c (vm_object_cached_max): Increase to 200. Thu Mar 20 12:33:06 1997 Thomas Bushnell, n/BSG @@ -60,12 +15990,12 @@ Thu Mar 20 12:33:06 1997 Thomas Bushnel * version.c (version): Push back to 0.1. * Makefile.in (cross_compiling, bindir, libexecdir): New - variable. - + variable. + * Makefile.in (install): Depend on cross-mig and cross-migcom; install them. New rules added to build mig, migcom, cross-mig, and cross-migcom. - + * configure.in (AC_PROG_LEX, AC_PROG_YACC): New tests. (BUILD_CC): New test to set these. @@ -73,13 +16003,13 @@ Thu Mar 20 12:33:06 1997 Thomas Bushnel (%_interface.h %_server.c): Likewise. (MIG): Don't use @MIG@; hard code it to the one we build. (BUILD_CC, BUILD_CFLAGS, MIGCOM, LEX, YACC, LEXLIB): New variables. - + Wed Mar 19 16:47:28 1997 Thomas Bushnell, n/BSG * i386/i386at/kd.c (BROKEN_KEYBOARD_RESET): Turn off this so that we attempt the keyboard resets. * i386/i386/locore.S (cpu_shutdown): Attempt to provide a more - `robust' null_idtr. + `robust' null_idtr. Mon Mar 17 13:47:14 1997 Thomas Bushnell, n/BSG @@ -87,7 +16017,7 @@ Mon Mar 17 13:47:14 1997 Thomas Bushnel gratuitious obnoxiousness. * i386/i386at/gpl/linux/scsi/scsi.c (scsi_dev_init): Likewise. * i386/i386at/gpl/linux/block/triton.c (ide_init_triton): - Likewise. + Likewise. (init_triton_dma): Likewise. * i386/i386at/gpl/linux/pci/pci.c (pci_init): Likewise. * i386/i386at/gpl/linux/pci/bios32.c (check_pcibios): Likewise. @@ -95,7 +16025,7 @@ Mon Mar 17 13:47:14 1997 Thomas Bushnel * i386/i386at/gpl/linux/block/genhd.c (add_partition): Likewise. * i386/i386at/gpl/linux/net/8390.c (ei_debug): Make default value - zero. + zero. Wed Mar 12 14:50:46 1997 Thomas Bushnell, n/BSG @@ -117,25 +16047,25 @@ Mon Mar 10 15:04:47 1997 Thomas Bushnel * i386/i386at/gpl/linux/linux_init.c (calibrate_delay): Don't print out gratuitous obnoxiousness. - + * i386/i386at/gpl/linux/linux_init.c (linux_init): Only call linux_net_emulation_init if CONFIG_INET. Include - . + . * i386/i386at/i386at_ds_routines.c: Include . Don't mention linux_net_emulation_ops unless CONFIG_INET. * device/ds_routines.c (io_done_thread_continue): [i386] - Conditionalize free_skbuffs also on CONFIG_INET. Include - . + Conditionalize free_skbuffs also on CONFIG_INET. Include + . * i386/Drivers.in, i386/device-drivers.h.in, i386/driverlist.in: New files. * i386/Makefrag: Include i386/driverlist; don't include all device drivers in kernel image; instead use list from driverlist. * configure.in: Configure in $systype subdir too. - + * i386/i386at/gpl/linux/include/linux/autoconf.h: Damage severly to conform to device-drivers.h model. @@ -149,13 +16079,13 @@ Mon Mar 3 16:26:58 1997 Thomas Bushnel Tue Feb 25 15:42:23 1997 Thomas Bushnell, n/BSG * i386/Makefrag (INCLUDES): Find `include' directory in new - location. + location. * Makefile (INCLUDES): Find `include' directory in new location. (%.symc): Find gensym.awk in new location. - + * Reorganized directories into new layout and unified mach4 and mach4-i386 into a single tree. Older changes in ChangeLog.00 (for i386 directory) and ChangeLog.0 (for -all other files). +all other files).