|
|
GNU Mach 1.8
2016-12-18 Thomas Schwinge <[email protected]>
GNU Mach 1.8
* version.m4 (AC_PACKAGE_VERSION): Set to 1.8.
* NEWS: Finalize for 1.8.
2016-12-11 Richard Braun <[email protected]>
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 <[email protected]>
Update the NEWS file
2016-12-09 Richard Braun <[email protected]>
rbtree: minor change
* kern/rbtree.h (rbtree_for_each_remove): Remove trailing slash.
2032-05-12 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
linux: Remove incompatible local prototype.
* linux/dev/glue/kmem.c (vremap): Remove prototype, include the right
header instead.
2016-10-03 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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/ds_routines.h>.
(device_write): Unconditionally use a bounce buffer.
2016-09-21 Richard Braun <[email protected]>
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 <kern/list.h>.
(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 <[email protected]>
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 <kern/counters.h> and <vm/vm_pageout.h>.
(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 <kern/list.h>.
(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 <kern/list.h>.
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <i386at/elf.h>.
(_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 <i386at/elf.h>.
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Avoid using non-ascii source encoding
* xen/console.c (hypcnintr): Replace latin1 £ character with the 0xA3
number.
2016-08-29 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
i386: request the boot loader to page-align modules
* i386/i386at/boothdr.S (MULTIBOOT_FLAGS): Set LSB bit.
2016-08-07 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix locking error
* i386/i386/io_perm.c (no_senders): Remove bogus call to ip_lock.
2016-06-17 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
xen: fix prototype
Amends a7f248bf.
* xen/console.h (hypcnclose): Fix type of parameter.
2016-05-18 Thomas Schwinge <[email protected]>
GNU Mach 1.7
* version.m4 (AC_PACKAGE_VERSION): Set to 1.7.
* NEWS: Finalize for 1.7.
2016-05-18 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix xen boot
* i386/i386/pcb.c (pcb_init): Make sure there is a thread before calling
current_task().
2016-04-20 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
update NEWS file
2016-04-15 Agustina Arzille <[email protected]>
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 <kern/gsync.h>
(setup_main): Call gsync_setup.
2016-04-15 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge remote-tracking branch 'remotes/origin/rbraun/vm_cache_policy'
Finally ;-).
2016-03-09 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix unused variable warnings
* kern/slab.c (slab_init): Remove unused variables.
2016-02-20 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
vm: initialize external maps
* vm/vm_external.c (vm_external_create): Initialize allocated maps.
2016-02-07 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix unused variable warnings
* i386/i386at/biosmem.c (biosmem_bootstrap): Remove unused variables.
2016-02-02 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'rbraun/vm_page'
2016-01-23 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix build with gcc-6
* linux/src/include/linux/compiler-gcc6.h: New file.
2016-01-13 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
GNU Mach 1.6
* version.m4 (AC_PACKAGE_VERSION): Set to 1.6.
* NEWS: Finalize for 1.6.
2015-10-31 Thomas Schwinge <[email protected]>
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 <[email protected]>
Update NEWS file
2015-10-05 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
kern/bootstrap: deallocate task
* kern/bootstrap.c (boot_script_free_task): Deallocate task.
2015-07-18 Justus Winter <[email protected]>
linux/net: fix build with -O0
* linux/src/drivers/net/pci-scan.c: Avoid #erroring out.
2015-07-18 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add missing distributed file
* Makefrag.am (EXTRA_DIST): Add ipc/notify.defs.
2015-06-30 Justus Winter <[email protected]>
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 <[email protected]>
Fix restoring interrupts on timeout
* linux/dev/drivers/block/ahci.c (ahci_identify): Restore flags before
returning on timeout.
2015-06-29 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
i386: add comment
* i386/i386at/model_dep.c (rebootflag): Explain flag.
2015-06-20 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
kern: fix comment
* kern/rbtree.h: Fix comment.
2015-05-02 Samuel Thibault <[email protected]>
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 <[email protected]>
Use gnu89 inline style
* Makefile.am (AM_CFLAGS): Add -fgnu89-inline option.
2015-05-01 Samuel Thibault <[email protected]>
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 <[email protected]>
Fix build with gcc-5
* linux/src/include/linux/compiler-gcc5.h: New file.
2015-04-24 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
GNU Mach 1.5.
* version.m4 (AC_PACKAGE_VERSION): Set to 1.5.
* NEWS: Finalize for 1.5.
2015-03-19 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
Show odd number of ports
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Show odd number of ports.
2015-02-26 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
i386: drop needless instruction from `copyout'
* i386/i386/locore.S (copyout): Do not needlessly copy length to %eax
first.
2015-02-20 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
vm: fix typo
* vm/vm_resident.c: Fix typo.
2015-01-22 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Ship missing file
* Makefrag.am (EXTRA_DIST): Add kern/task_notify.cli.
2014-12-09 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Pass ide and hd kernel options to ide driver
* linux/dev/drivers/block/genhd.c: Include <linux/hdreg.h> and
<alloca.h>
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix link refusal
* Makefile.am (clib-routines.o): Refuse to link only when multiarch is
detected.
2014-11-03 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
Revert "Make sure mig is available"
This reverts commit b28e05e203e0739fa5db59c5af378b29eea7a232.
2014-10-10 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Update NEWS file
2014-09-17 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix printf warning
linux/src/drivers/net/sundance.c (start_tx): Fix format string according
to parameter.
2014-08-30 Samuel Thibault <[email protected]>
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 <[email protected]>
Increate the pageout thread priority
* vm/vm_pageout.c (vm_pageout): Set the priority to 0.
2014-08-30 Samuel Thibault <[email protected]>
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 <[email protected]>
Fix computation
* i386/i386at/com.c (comintr): Fix computation of '@'.
2014-08-22 Neal H. Walfield <[email protected]>
Even less magic-looking control value
* i386/i386at/com.c (comintr): Use 'A'-1 instead of '@'.
2014-08-22 Justus Winter <[email protected]>
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 <[email protected]>
Drop debugging prints
* i386/i386at/acpi.c (grub_machine_acpi_get_rsdpv2): Drop debugging
prints.
2014-07-06 Samuel Thibault <[email protected]>
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 <[email protected]>
Document that io_map_cached leaks memory
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2014-07-06 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add missing memory clobber
* i386/i386/xen.h (mb, rmb, wmb): Add memory clobber.
2014-05-25 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Make sure mig is available
* configure.ac (MIG): Error out if MiG was not found.
2014-04-13 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix prototype
* linux/dev/glue/block.c (device_set_status): Fix prototype.
2014-04-04 Marin Ramesa <[email protected]>
Use explicit prototypes for struct dev_ops fields
* device/conf.h: Include <sys/types.h>, <mach/port.h>, <mach/vm_prot.h>.
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 <sys/types.h>, predefine struct io_req and
io_req_t.
(timeopen, timeclose): Fix prototype.
2014-03-28 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2014-03-22 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
Only complain once per boot about Xen console smash
* xen/console.c (hypputc): Make `complain' variable static.
2014-03-17 Samuel Thibault <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2014-03-03 Samuel Thibault <[email protected]>
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 <i386/model_dep.h>
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
doc: document task_set_name
* doc/mach.texi (Task Information): Document the new task_set_name
procedure.
2014-02-05 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add missing break
Found by Coverity
* i386/i386at/kd_mouse.c (mouseopen): Add missing break.
2014-02-01 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2013-12-20 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
i386: add missing includes
* i386/i386at/kd_event.h: Add missing includes.
2013-12-17 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
xen: add missing includes
* xen/console.h: Add missing includes.
2013-12-16 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
ddb: qualify pointers whose dereferenced values are constant with const
2013-12-15 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Declare void argument lists
2013-12-11 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
device/chario.c: trivial stylistic fix for consistency
* device/chario.c: Trivial stylistic fix for consistency.
2013-12-10 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
kern/priority.c: update comment
This is priority.c. Not clock_prim.c.
* kern/priority.c: Update comment.
2013-12-08 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
kern/act.h: remove prototype without definition
* kern/act.h (act_create_kernel): Remove prototype without definition.
2013-12-08 Samuel Thibault <[email protected]>
Add comment
2013-12-08 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
ipc/ipc_port.c: trivial stylistic fix for consistency
* ipc/ipc_port.c (indent): Trivial stylistic fix for consistency.
2013-12-08 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add missing include
* ddb/db_variables.h: Include <machine/db_machdep.h>.
2013-12-04 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
vm/vm_user.c: remove forward declaration
* vm/vm_user.c (vm_map_machine_attribute): Remove forward declaration.
2013-12-04 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2013-11-24 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
Export mach_port_destroy declaration
* ipc/mach_port.h (mach_port_destroy): Add prototype.
2013-11-22 Marin Ramesa <[email protected]>
ddb/db_break.c: remove duplicate include
* ddb/db_break.c: Don't include ddb/db_access.h.
2013-11-21 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Drop volatile function qualifier
* i386/i386/setjmp.h (_longjmp): Drop volatile function qualifier.
2013-11-20 Marin Ramesa <[email protected]>
ddb/db_break.c: quiet GCC warning about uninitialized variable
* ddb/db_break.c (bkpt): Initialize.
2013-11-19 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add copyright
* ddb/db_write_cmd.h: Add copyright.
* ipc/ipc_print.h: Likewise.
* vm/vm_print.h: Likewise.
2013-11-18 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2013-11-11 Marin Ramesa <[email protected]>
ipc: remove register qualifiers
* ipc/ipc_kmsg.c: Remove register qualifiers.
2013-11-11 Justus Winter <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Remove lint code
2013-10-10 Richard Braun <[email protected]>
Increase kernel map entry pool size
* vm/vm_map.h (KENTRY_DATA_SIZE): Set to 256 pages.
2013-10-09 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix typo
* README: Fix typo.
2013-09-26 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
device: remove unused file dk_label.c
* device/dk_label.c: Remove file.
2013-09-21 Marin Ramesa <[email protected]>
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 <[email protected]>
another small change in style for consistency
* device/dev_name.c: Change in coding style.
2013-09-16 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
remove register qualifiers
* device/dev_lookup.c: Remove register qualifiers.
2013-09-11 Marin Ramesa <[email protected]>
remove register qualifiers.
* device/cirbuf.c: Remove register qualifiers.
2013-09-11 Marin Ramesa <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Drop FXSR initialization message
* i386/i386/fpu.c (init_fpu): Drop FXSR initialization message
2013-07-18 Marin Ramesa <[email protected]>
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/mach_types.h>.
[MACH_KDB] Include <mach/message.h>.
[MACH_KDB] Include <ipc/ipc_types.h>.
(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_print.h>.
* ipc/ipc_pset.h (ipc_pset_print): Remove prototype.
* ipc/ipc_pset.c [MACH_KDB]: Include <ipc/ipc_print.h>.
* ipc/ipc_kmsg.c [MACH_KDB]: Include <ipc/ipc_print.h>.
vm: organize vm print function prototypes
* vm/vm_print.h: New file.
Include <vm/vm_map.h>.
Include <machine/db_machdep.h>.
(vm_map_print): Add prototype.
(vm_map_copy_print): Likewise.
(vm_object_print): Likewise.
(vm_page_print): Likewise.
Include <vm/vm_object.h>.
Include <vm/vm_page.h>
* vm/vm_map.h (vm_map_print): Remove prototype.
* vm/vm_map.c [MACH_KDB]: Include <vm/vm_print.h>.
* vm/vm_object.h (vm_object_print): Remove prototype.
* vm/vm_object.c [MACH_KDB]: Include <vm/vm_print.h>.
* vm/vm_resident.c [MACH_KDB]: Include <vm/vm_print.h>.
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 <vm/vm_print.h>.
Include <ipc/ipc_print.h>.
Include <kern/lock.h>.
* i386/i386/setjmp.h [__GNUC__] (_longjmp): Add prototype.
2013-07-07 Marin Ramesa <[email protected]>
fix implicit declarations
* ddb/db_trap.c: Include <machine/setjmp.h>.
* i386/i386/setjmp.h (_setjmp): Add prototype.
2013-07-07 Samuel Thibault <[email protected]>
Restore db_help_cmd
* ddb/db_command.c (db_help_cmd): Restore function.
2013-07-06 Marin Ramesa <[email protected]>
ddb: cleanup db_command.c
* ddb/db_write_cmd.h: New file.
(db_write_cmd): Add prototype.
Include <mach/boolean.h>.
Include <machine/db_machdep.h>.
* 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 <ddb/db_break.h>.
Include <ddb/db_watch.h>.
Include <ddb/db_variables.h>.
Include <ddb/db_write_cmd.h>.
Include <ddb/db_run.h>.
Include <ddb/db_cond.h>.
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2013-06-09 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Comment unused variable
* kern/ipc_mig.c (syscall_device_write_request): Comment unused variable.
2013-06-04 Samuel Thibault <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2013-06-04 Miguel Figueiredo <[email protected]>
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 <[email protected]>
Remove unused variable
* kern/act.c (act_create): Remove unused variable.
2013-06-02 Richard Braun <[email protected]>
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 <[email protected]>
Remove unused variable
* ipc/mach_port.c (mach_port_set_syscall_right): Remove unused variable.
2013-05-30 Samuel Thibault <[email protected]>
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 <[email protected]>
Remove old elevator algorithm function
* device/blkio.c (disksort): remove unused function
2013-05-19 Miguel Figueiredo <[email protected]>
Remove unneeded variable initialization
* kern/thread.c (thread_force_terminate): Remove unneeded variable
initialization.
2013-05-19 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Drop unused variables
* kern/slab.c (kalloc_init): Remove unused variables.
2013-05-11 Samuel Thibault <[email protected]>
Add missing parameters to printf
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Add missing parameters to
printf.
2013-05-10 Samuel Thibault <[email protected]>
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 <ahci.h>.
(probe_for_hwifs): Call ahci_probe_pci.
2013-05-02 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Increase number of priorities
* kern/sched.h (NRQS): Increase to 50.
2013-03-05 Samuel Thibault <[email protected]>
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 <[email protected]>
Include machine/db_interface instead of hardcoding function prototypes
* ddb/db_access.c: Include <machine/db_interface.h>.
(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 <machine/db_interface.h>.
(db_set_hw_watchpoint, db_clear_hw_watchpoint): Remove functions prototypes.
2013-02-04 Samuel Thibault <[email protected]>
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 <ddb/db_watch.h>
(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 <ddb/db_watch.h>.
(db_set_hw_watchpoint): Fix function prototype.
(db_clear_hw_watchpoint): Add function prototype.
* i386/i386/db_machdep.h: Do not include <machine/db_interface.h>
2013-02-04 Samuel Thibault <[email protected]>
Document dwatch
* doc/mach.texi: Add dwatch documentation.
2013-02-04 Samuel Thibault <[email protected]>
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 <mach/machine/thread_status.h>.
(i386_machine_state): Add `struct i386_debug_state ids' field.
* i386/i386/pcb.c: Include <i386/db_interface.h>.
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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
<xen/public/xen.h>.
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 <[email protected]>
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 <[email protected]>
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 <kern/printf.h>.
[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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Double KENTRY_DATA_SIZE
* vm/vm_map.h (KENTRY_DATA_SIZE): Bump from 32 pages to 64 pages.
2013-01-04 David Höppner <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2012-12-23 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <mach/vm_cache_statistics.h>.
* 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 <mach/vm_cache_statistics.h>.
(vm_cache_statistics): New function.
* vm/vm_user.h: Add #include <mach/mach_types.h>.
(vm_cache_statistics): New declaration.
* include/mach/gnumach.defs: New file.
2012-08-24 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Increase the slab collection interval
* kern/slab.c (KMEM_GC_INTERVAL): Increase to 5 seconds.
2012-07-07 Richard Braun <[email protected]>
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 <[email protected]>
Merge kalloc_map into kmem_map
* ipc/ipc_table.c: Add #include <kern/slab.h>.
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Augment VM maps with a red-black tree
* vm/vm_map.c: Add #include <kern/rbtree.h>.
(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 <kern/rbtree.h>.
(vm_map_entry): Add `tree_node' member.
(vm_map_header): Add `tree' member.
2012-04-22 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add missing phystokv/kvtophys calls
* i386/i386/vm_param.h [!MACH_XEN]: Do not include <xen/public/xen.h>.
* 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 <machine/vm_param.h>.
(virt_to_phys): Call _kvtophys.
(phys_to_virt): Call phystokv.
* linux/src/include/linux/compatmac.h: Include <asm/io.h>.
(ioremap): Use phys_to_virt to convert physical address to virtual pointer.
(my_iounmap): Likewise.
* linux/dev/include/asm-i386/page.h: Include <mach/vm_param.h>.
(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 <machine/vm_param.h>
(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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix build error introduced in 5f701793f63f16d111db3e3d2e91134fcc179c5b.
* linux/src/include/linux/interrupt.h (intr_count): Declare as unsigned int.
2012-03-14 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' into master-slab
2012-01-22 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Fix typo
Upgrade number of event queues
* kern/sched_prim.c (NUMQUEUES): Increase to 1031
2011-12-17 Richard Braun <[email protected]>
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 <kern/mach_param.h>.
* 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 <kern/mach_param.h>.
(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_param.h>.
* 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 <[email protected]>
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 <[email protected]>
Fix kern/kalloc.h includes
* device/dev_pager.c: Remove #include <kern/kalloc.h>.
* i386/i386/io_perm.c: Add #include <kern/kalloc.h>.
* 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 <[email protected]>
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 <[email protected]>
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 <kernel/zalloc.h>.
* 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
<mach_debug/zone_info.h> with <mach_debug/slab_info.h>.
* 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 <vm/vm_types.h>.
(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 <kernel/zalloc.h>.
* 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 <kernel/zalloc.h>.
* 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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Keep frame pointer when debugger is enabled
* Makefrag.am (AM_CFLAGS) [enable_kdb]: Add -fno-omit-frame-pointer.
2011-10-16 Samuel Thibault <[email protected]>
Merge branch 'master' of callisto:gnumach
2011-10-16 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2011-09-09 Guillem Jover <[email protected]>
Do not take unused strpbrk() from libc
* Makefile.am (clib_routines): Remove strpbrk.
2011-09-06 Thomas Schwinge <[email protected]>
* .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 <[email protected]>
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/memory_object_proxy.h>.
* vm/vm_user.c: Likewise.
(memory_object_proxy_lookup): Drop declaration.
Parts based on a patch by Fridolín Pokorný <[email protected]>.
2011-09-05 Samuel Thibault <[email protected]>
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 <vm/pmap.h>.
(bootstrap_create): Call vm_page_create on bootstrap modules content.
2011-09-03 Fridolín Pokorný <[email protected]>
Add prototypes for memory_object_proxy.c functions
* vm/memory_object_proxy.h: Add file.
* vm/vm_init.c: Include <vm/memory_object_proxy.h>.
* kern/ipc_kobject.c: Likewise.
* Makefile.am (libkernel_a_SOURCES): Add vm/memory_object_proxy.h.
2011-09-03 Samuel Thibault <[email protected]>
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach
2011-09-02 Guillem Jover <[email protected]>
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/compat_xxx_defs.h>.
* kern/mach.srv: Likewise.
* kern/mach_host.srv: Likewise.
* include/device/device.defs [MACH_KERNEL]: Do not simport
<kern/compat_xxx_defs.h>.
(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
<kern/compat_xxx_defs.h>.
(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
<kern/compat_xxx_defs.h>.
(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 <[email protected]>
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 <[email protected]>
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 <device/device_types.h> instead of
<device/errno.h>.
(comopen): Replace ENXIO with D_NO_SUCH_DEVICE.
* i386/i386at/kd_event.c: Include <device/device_types.h> instead of
<device/errno.h>.
* 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 <device/device_types.h> instead of
<device/errno.h>.
(lpropen): Replace ENXIO with D_NO_SUCH_DEVICE and EBUSY with
D_ALREADY_OPEN.
2011-09-02 Guillem Jover <[email protected]>
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 <[email protected]>
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/pci.h>.
* linux/dev/kernel/printk.c: Include <kern/printf.h>.
2011-09-01 Ludovic Courtès <[email protected]>
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 <[email protected]>
Fix documentation
Close kernel stacks.
* i386/i386/pcb.c (stack_attach): Initialize ebp to 0.
2011-09-01 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <linux/compiler.h>.
(__exitused): New macro.
(__exit): Define to ` __exitused __cold notrace'.
* linux/src/include/linux/kcomp.h (__exit): Remove.
Move <linux/init.h> 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 <linux/compiler.h> 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 <[email protected]>
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 <i386/pic.h>
(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 <linux/dev/glue/glue.h>
* 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 <i386/fpu.h> and <i386at/kd.h>
(intnull, fpintr, hardclock, kdintr, prtnull): Remove prototypes.
* i386/xen/xen.c: Include <kern/mach_clock.h>
(clock_interrupt): Remove prototype.
* linux/dev/arch/i386/kernel/irq.c: Include <linux/dev/glue/glue.h> and
<machine/machspl.h>
(linux_timer_intr, splhigh, spl0, curr_ipl, curr_pic_mask, pic_mask,
get_options): Remove declarations.
* linux/dev/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>
(issig, get_options): Remove declarations.
* linux/dev/drivers/block/genhd.c: Include <linux/dev/glue/glue.h>
(linux_intr_pri): Remove declaration.
* linux/dev/glue/block.c: Include <devices/ds_routines.h> and
<linux/dev/glue/glue.h>.
(device_io_map, blksize_size): Remove declarations.
* linux/dev/glue/kmem.c: Include <kern/printf.h> and <linux/dev/glue/glue.h>
(alloc_contig_mem, printf): Remove declarations.
* linux/dev/glue/misc.c: Include <printf.h> and <linux/dev/glue/glue.h>
(vm_map_lookup_entry, printf): Remove prototypes.
* linux/dev/glue/net.c: Include <kern/printf.h>, <device/ds_routines.h> and
<linux/dev/glue/glue.h>.
(linux_intr_pri, io_done_list): Remove declarations.
* linux/dev/init/main.c: Include <machine/model_dep.h> and
<linux/dev/glue/glue.h>.
(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 <kern/printf.h>, <machine/machspl.h> and
<linux/dev/glue/glue.h>.
(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/dev/glue/glue.h>.
* linux/src/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>.
(get_options): Remove prototype.
* linux/src/init/main.c: Include <linux/dev/glue/glue.h>
(init_IRQ): Remove prototype.
2011-08-30 Guillem Jover <[email protected]>
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 <device/memory_object_reply.user.h>.
* linux/pcmcia-cs/glue/wireless_glue.h: Include <kern/debug.h>.
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 <[email protected]>
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 <[email protected]>
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 <mach/xen.h>.
* i386/i386at/com.c (comcnprobe, comcninit, comcngetc, comcnputc): Move
prototypes...
* i386/i386at/com.h: ... here. Include <device/cons.h>.
* i386/i386at/cons_conf.c [MACH_HYP]: Include <xen/console.h>.
[!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 <device/cons.h>.
* xen/console.c (hypcnprobe): Remove unused `my_console' local variable.
* xen/console.h: Include <device/cons.h>
(hypcnputc, hypcngetc, hypcnprobe, hypcninit): Add prototypes.
2011-08-30 Guillem Jover <[email protected]>
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 <kern/sched_prim.h>.
2011-08-29 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
Disable (<i486)-only WP workaround on Xen & PAE
i386 didn't support PAE anyway.
* i386/i386/locore.S (copyout_retry) [MACH_HYP || PAE]: Remove.
* xen/xen.c (hyp_invalidate_pte): Remove function.
* xen/xen.h (hyp_invalidate_pte): Remove prototype.
2011-08-28 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <kern/printf.h>.
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 <[email protected]>
* Makefile.am (AM_CFLAGS): Add -fno-builtin-log.
2011-08-27 Guillem Jover <[email protected]>
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 <i386/locore.h>.
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 <[email protected]>
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 <[email protected]>
Add more details to "zone exhausted" panics.
* kern/zalloc (zalloc): Add more details to "zone exhausted" panics.
2011-08-21 Samuel Thibault <[email protected]>
Add 8byte breakpoint macro
* i386/i386/db_interface.h (I386_DB_LEN_8): Define macro.
2011-08-18 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Removed deprecated LINTLIBRARY #ifdefs
mach/mach_traps.h: Removed LINTLIBRARY #ifdefs.
mach/message.h: Removed LINTLIBRARY #ifdefs.
2011-04-03 Samuel Thibault <[email protected]>
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 <[email protected]>
Fix typo
* i386/i386at/kd.c (key_map): Fix K_PERIOD typo.
2011-03-20 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add console=comN boot option to enable serial console
* i386/configfrag.ac (RCLINE, RCADDR): Remove defines.
* i386/i386at/com.c: Include <string.h> and <util/atoi.h>
[!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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
* doc/mach.texi (device_set_filter): Document filter header.
Acked-by: Richard Braun <[email protected]>
2011-01-31 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <string.h>
2010-12-09 Samuel Thibault <[email protected]>
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 <[email protected]>
Avoid harmless warning
* i386/i386at/kd.c (kd_setleds1): Only display unexpected state warning when
debugging is enabled.
2010-10-23 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
Merge branch 'typo-print'
2010-09-14 Thomas Schwinge <[email protected]>
Typo fix.
* i386/i386/trap.c (user_trap): Call printf, not print.
2010-09-14 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
whitelist the QEMU harddisk for DMA support
* linux/src/drivers/block/triton.c (good_dma_drives): Add
"QEMU HARDDISK".
2010-01-04 Samuel Thibault <[email protected]>
ignore bogus FDPT information from BIOS
2009-12-22 Samuel Thibault <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Document kdb_kintr stack manipulation
* i386/i386/locore.S: Document kdb_kintr stack manipulation.
2009-12-19 root <[email protected]>
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 <[email protected]>
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 <machine/gdt.h>
and <machine/ldt.h>.
[MACH && MACH_HYP] (KERNEL_CS, KERNEL_DS): Remove macros.
[MACH && !MACH_HYP] (KERNEL_CS, KERNEL_DS): Likewise.
[MACH] (USER_CS, USER_DS): Likewise.
Move linux/dev/include/asm-i386/segment.h to src 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 <[email protected]>
Add Xen support
2009-03-11 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* i386/configfrag.ac (enable_pae): Enable by default on the Xen
platform.
2007-11-14 Samuel Thibault <[email protected]>
* i386/i386at/model_dep.c (machine_relax): New function.
(c_boot_entry): Refuse to boot as dom0.
2007-10-17 Samuel Thibault <[email protected]>
* i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr().
2007-08-12 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices.
2007-02-19 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
Thomas Schwinge <[email protected]>
* i386/xen/Makefrag.am: New file.
* xen/Makefrag.am: Likewise.
* xen/configfrag.ac: Likewise.
2007-02-11 (and later dates) Samuel Thibault <[email protected]>
Xen support
* Makefile.am (clib_routines): Add _start.
* Makefrag.am (include_mach_HEADERS): Add include/mach/xen.h.
* device/cons.c (cnputc): Call hyp_console_write.
* i386/Makefrag.am (libkernel_a_SOURCES): Move non-Xen source to
[PLATFORM_at].
* i386/i386/debug_trace.S: Include <i386/xen.h>
* i386/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(),
do not enable CR0_EM.
* i386/i386/gdt.c: Include <mach/xen.h> and <intel/pmap.h>.
[MACH_XEN]: Make gdt array extern.
[MACH_XEN] (gdt_init): Register gdt with hypervisor. Request 4gb
segments assist. Shift la_shift.
[MACH_PSEUDO_PHYS] (gdt_init): Shift pfn_list.
* i386/i386/gdt.h [MACH_XEN]: Don't define KERNEL_LDT and LINEAR_DS.
* i386/i386/i386asm.sym: Include <i386/xen.h>.
[MACH_XEN]: Remove KERNEL_LDT, Add shared_info's CPU_CLI, CPU_PENDING,
CPU_PENDING_SEL, PENDING, EVTMASK and CR2.
* i386/i386/idt.c [MACH_HYP] (idt_init): Register trap table with
hypervisor.
* i386/i386/idt_inittab.S: Include <i386/i386asm.h>.
[MACH_XEN]: Set IDT_ENTRY() for hypervisor. Set trap table terminator.
* i386/i386/ktss.c [MACH_XEN] (ktss_init): Request exception task switch
from hypervisor.
* i386/i386/ldt.c: Include <mach/xen.h> and <intel/pmap.h>
[MACH_XEN]: Make ldt array extern.
[MACH_XEN] (ldt_init): Set ldt readwrite.
[MACH_HYP] (ldt_init): Register ldt with hypervisor.
* i386/i386/locore.S: Include <i386/xen.h>. Handle KERNEL_RING == 1
case.
[MACH_XEN]: Read hyp_shared_info's CR2 instead of %cr2.
[MACH_PSEUDO_PHYS]: Add mfn_to_pfn computation.
[MACH_HYP]: Drop Cyrix I/O-based detection. Read cr3 instead of %cr3.
Make hypervisor call for pte invalidation.
* i386/i386/mp_desc.c: Include <mach/xen.h>.
[MACH_HYP] (mp_desc_init): Panic.
* i386/i386/pcb.c: Include <mach/xen.h>.
[MACH_XEN] (switch_ktss): Request stack switch from hypervisor.
[MACH_HYP] (switch_ktss): Request ldt and gdt switch from hypervisor.
* i386/i386/phys.c: Include <mach/xen.h>
[MACH_PSEUDO_PHYS] (kvtophys): Do page translation.
* i386/i386/proc_reg.h [MACH_HYP] (cr3): New declaration.
(set_cr3, get_cr3, set_ts, clear_ts): Implement macros.
* i386/i386/seg.h [MACH_HYP]: Define KERNEL_RING macro. Include
<mach/xen.h>
[MACH_XEN] (fill_descriptor): Register descriptor with hypervisor.
* i386/i386/spl.S: Include <i386/xen.h> and <i386/i386/asm.h>
[MACH_XEN] (pic_mask): #define to int_mask.
[MACH_XEN] (SETMASK): Implement.
* i386/i386/vm_param.h [MACH_XEN] (HYP_VIRT_START): New macro.
[MACH_XEN]: Set VM_MAX_KERNEL_ADDRESS to HYP_VIRT_START-
LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS. Increase
KERNEL_STACK_SIZE and INTSTACK_SIZE to 4 pages.
* i386/i386at/conf.c [MACH_HYP]: Remove hardware devices, add hypervisor
console device.
* i386/i386at/cons_conf.c [MACH_HYP]: Add hypervisor console device.
* i386/i386at/model_dep.c: Include <sys/types.h>, <mach/xen.h>.
[MACH_XEN] Include <xen/console.h>, <xen/store.h>, <xen/evt.h>,
<xen/xen.h>.
[MACH_PSEUDO_PHYS]: New boot_info, mfn_list, pfn_list variables.
[MACH_XEN]: New la_shift variable.
[MACH_HYP] (avail_next, mem_size_init): Drop BIOS skipping mecanism.
[MACH_HYP] (machine_init): Call hyp_init(), drop hardware
initialization.
[MACH_HYP] (machine_idle): Call hyp_idle().
[MACH_HYP] (halt_cpu): Call hyp_halt().
[MACH_HYP] (halt_all_cpus): Call hyp_reboot() or hyp_halt().
[MACH_HYP] (i386at_init): Initialize with hypervisor.
[MACH_XEN] (c_boot_entry): Add Xen-specific initialization.
[MACH_HYP] (init_alloc_aligned, pmap_valid_page): Drop zones skipping
mecanism.
* i386/intel/pmap.c: Include <mach/xen.h>.
[MACH_PSEUDO_PHYS] (WRITE_PTE): Do page translation.
[MACH_HYP] (INVALIDATE_TLB): Request invalidation from hypervisor.
[MACH_XEN] (pmap_map_bd, pmap_create, pmap_destroy, pmap_remove_range)
(pmap_page_protect, pmap_protect, pmap_enter, pmap_change_wiring)
(pmap_attribute_clear, pmap_unmap_page_zero, pmap_collect): Request MMU
update from hypervisor.
[MACH_XEN] (pmap_bootstrap): Request pagetable initialization from
hypervisor.
[MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly)
(pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable)
(pmap_map_mfn): New functions.
* i386/intel/pmap.h [MACH_XEN] (INTEL_PTE_GLOBAL): Disable global page
support.
[MACH_PSEUDO_PHYS] (pte_to_pa): Do page translation.
[MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly)
(pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable)
(pmap_map_mfn): Declare functions.
* i386/i386/xen.h: New file.
* i386/xen/xen.c: New file.
* i386/xen/xen_boothdr.S: New file.
* i386/xen/xen_locore.S: New file.
* include/mach/xen.h: New file.
* kern/bootstrap.c [MACH_XEN] (boot_info): Declare variable.
[MACH_XEN] (bootstrap_create): Rebase multiboot header.
* kern/debug.c: Include <mach/xen.h>.
[MACH_HYP] (panic): Call hyp_crash() without delay.
* linux/dev/include/asm-i386/segment.h [MACH_HYP] (KERNEL_CS)
(KERNEL_DS): Use ring 1.
* xen/block.c: New file.
* xen/block.h: Likewise.
* xen/console.c: Likewise.
* xen/console.h: Likewise.
* xen/evt.c: Likewise.
* xen/evt.h: Likewise.
* xen/grant.c: Likewise.
* xen/grant.h: Likewise.
* xen/net.c: Likewise.
* xen/net.h: Likewise.
* xen/ring.c: Likewise.
* xen/ring.h: Likewise.
* xen/store.c: Likewise.
* xen/store.h: Likewise.
* xen/time.c: Likewise.
* xen/time.h: Likewise.
* xen/xen.c: Likewise.
* xen/xen.h: Likewise.
* xen/public/COPYING: Import file from Xen.
* xen/public/callback.h: Likewise.
* xen/public/dom0_ops.h: Likewise.
* xen/public/domctl.h: Likewise.
* xen/public/elfnote.h: Likewise.
* xen/public/elfstructs.h: Likewise.
* xen/public/event_channel.h: Likewise.
* xen/public/features.h: Likewise.
* xen/public/grant_table.h: Likewise.
* xen/public/kexec.h: Likewise.
* xen/public/libelf.h: Likewise.
* xen/public/memory.h: Likewise.
* xen/public/nmi.h: Likewise.
* xen/public/physdev.h: Likewise.
* xen/public/platform.h: Likewise.
* xen/public/sched.h: Likewise.
* xen/public/sysctl.h: Likewise.
* xen/public/trace.h: Likewise.
* xen/public/vcpu.h: Likewise.
* xen/public/version.h: Likewise.
* xen/public/xen-compat.h: Likewise.
* xen/public/xen.h: Likewise.
* xen/public/xencomm.h: Likewise.
* xen/public/xenoprof.h: Likewise.
* xen/public/arch-x86/xen-mca.h: Likewise.
* xen/public/arch-x86/xen-x86_32.h: Likewise.
* xen/public/arch-x86/xen-x86_64.h: Likewise.
* xen/public/arch-x86/xen.h: Likewise.
* xen/public/arch-x86_32.h: Likewise.
* xen/public/arch-x86_64.h: Likewise.
* xen/public/io/blkif.h: Likewise.
* xen/public/io/console.h: Likewise.
* xen/public/io/fbif.h: Likewise.
* xen/public/io/fsif.h: Likewise.
* xen/public/io/kbdif.h: Likewise.
* xen/public/io/netif.h: Likewise.
* xen/public/io/pciif.h: Likewise.
* xen/public/io/protocols.h: Likewise.
* xen/public/io/ring.h: Likewise.
* xen/public/io/tpmif.h: Likewise.
* xen/public/io/xenbus.h: Likewise.
* xen/public/io/xs_wire.h: Likewise.
2009-11-30 Samuel Thibault <[email protected]>
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 <[email protected]>
Fix commit d088a062
* vm/memory_object_proxy.c: New file.
2009-11-28 Samuel Thibault <[email protected]>
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 <[email protected]>
* 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 <[email protected]>
Add -H option to halt on panic
2005-12-29 Soeren D. Schulze <[email protected]>
* 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 <[email protected]>
Add sis900 driver
2005-05-01 Andreas B. Mundt <[email protected]>
* 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 <[email protected]>
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 <i386/locore.h>
(mxcsr_feature_mask): New variable.
(fp_save, fp_load): Add declaration.
(init_fpu): Add FXSR-capable FPU detection.
(fpu_module_init): Request 16-byte alignment to zinit() for
i386_fpsave_state structures.
(twd_i387_to_fxsr, twd_fxsr_to_i387): New functions.
(fpu_set_state): Convert FPU state when FPU is FXSR-capable.
(fpu_get_state): Convert FPU state when FPU is FXSR-capable.
(fpexterrflt): Pass to i386_exception either xfp_save_state or
fp_save_state according to FPU type.
(fpastintr): Likewise.
(fp_load): Likewise. Use fxrstor() when FPU is FXSR-capable.
(fp_save): Use fxsave() when FPU is FXSR-capable.
(fp_state_alloc): Add FXSR-aware initialization.
Fix debugging 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 <[email protected]>
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 <i386/model_dep.h>
(user_trap): Remove extern declaration of phys_last_addr.
* i386/intel/pmap.c: Include <i386/model_dep.h>
(phys_first_addr, phys_last_addr): Remove extern declaration.
Use typeof(boot_info)
* 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 <util/atoi.h>
(DEFAULT): Remove, replaced by MACH_ATOI_DEFAULT.
(kd_parserest): Use mach_atoi instead of kd_atoi and MACH_ATOI_DEFAULT
instead of DEFAULT.
(kd_atoi): Move and rename function to...
* util/atoi.c: ... mach_atoi in new file.
* i386/i386at/kd.h (kd_atoi): Move and rename declaration to...
* util/atoi.h: ... mach_atoi in new file.
* Makefrag.am (libkernel_a_SOURCES): Add util/atoi.c
2009-11-16 Guillem Jover <[email protected]>
Update dependency patch for Automake 1.10.2, 1.11, and thereabouts.
* config.status.dep.patch: Refresh.
2009-11-11 Zheng Da <[email protected]>
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 <[email protected]>
Show EATA probing progression
* linux/src/drivers/scsi/eata.c (port_detect): Print the port being
probed.
2009-10-26 Samuel Thibault <[email protected]>
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 <[email protected]>
Fix warning
* i386/i386at/autoconf.c: Include <i386/pic.h> even when [!LINUX_DEV].
Fix warning
* i386/i386/trap.h: Include <mach/mach_types.h>
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 <[email protected]>
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 <kern/mach_clock.h>.
(timeout, ttrstrt): Remove declarations.
(comtimer): Add unused void * parameter.
(comopen): Pass NULL to comtimer function.
* i386/i386at/kd.h (kd_belloff): Add unused void * parameter.
* i386/i386at/kd.c (timeout): Remove declaration.
(kd_belloff): Add unused void * parameter.
(feep, kdsetbell): Pass NULL to kd_belloff function.
* i386/i386at/lpr.c: Include <mach_clock.h>.
(timeout, ttrstrt): Remove declarations.
* kern/mach_clock.c (softclock, timeout, untimeout): Set parameter
type of fcn function pointer to void * instead of char *. Set type
of param to void * instead of char *.
* kern/mach_clock.h (timer_elt): Set parameter type of fcn member
to void * instead of char *. Set time of param member to void * instead
of char *.
(timeout): Set parameter type of fcn function pointer parameter to void
* instead of char *.
(untimeout): Likewise, set type of param parameter to void * instead of
char *.
* kern/sched_prim.c (sched_init): Remove cast of recompute_priorities.
Replace (char *)0 with NULL.
(thread_timeout): Set parameter type to void * instead of thread_t, and
implicitly cast the former into the latter instead.
(thread_timeout_setup): Remove cast of thread_timeout, cast
thread_depress_timeout into (void (*) (void*)). Remove cast of thread.
(thread_recompute_priorities): Add unused void * parameter.
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 <[email protected]>
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 <[email protected]>
Fix multiboot compliancy concerning x86 D flag
i386/i386at/boothdr.S (boot_entry): Clear D flag.
2009-10-14 Samuel Thibault <[email protected]>
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 <[email protected]>
Merge branch 'master-zhengda'
2009-10-14 Zheng Da <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* i386/i386/proc_reg.h [__ASSEMBLER__ && __GNUC__]: Include
<i386/gdt.h> and <i386/ldt.h>
(invlpg_user): New macro.
* i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_user instead
of invlpg.
(pmap_remove, pmap_page_protect, pmap_protect, pmap_enter,
pmap_collect, phys_attribute_clear): Call PMAP_UPDATE_TLBS
after pde update instead of before.
2008-12-29 Samuel Thibault <[email protected]>
* i386/intel/pmap.c (pmap_bootstrap): Extend kernel virtual memory to
at least the size of the physical memory.
2008-12-05 Samuel Thibault <[email protected]>
* vm/vm_fault.c (vm_fault_page): Print value returned
memory_object_data_request as %x instead of %d.
2008-11-15 Shakthi Kannan <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* doc/Makefrag.am: Only advertize updating the web pages on
gnumach-1-branch.
2008-11-27 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
* kern/eventcount.c (evc_wait_clear): Remove unused variable 'ret'.
2008-11-10 Samuel Thibault <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
Manuel Menal <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* device/chario.c (ttyinput_many): Change chars param to char *.
* device/tty.h (ttyinput_many): Likewise.
* i386/i386/pcb.h: Include <mach/exec/exec.h>.
* i386/i386at/autoconf.h: Include <chips/busses.h>.
* i386/i386at/model_dep.c (inittodr): Cast &new_time.seconds to u_int *.
* ipc/mach_port.c (mach_port_insert_right): Cast poly to ipc_object_t.
* ipc/mach_debug.c (host_ipc_hash_info): Initialize size to 0 to make
the compiler believe that there is no bug.
* ipc/mach_debug.c (mach_port_space_info): Likewise for tree_size and
table_size.
* i386/i386at/com.c (commctl): Likewise for b.
* i386/i386/trap.c (user_trap): Likewise for exc.
* i386/i386/user_ldt.c (i386_set_ldt): Likewise for old_copy_object.
* i386/i386at/com.c (comintr): Check line_stat&iOR instead of line&iOR.
2008-07-23 Barry deFreese <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* device/dev_hdr.h (dev_name_lookup, dev_set_indirection): Add
prototypes.
* device/dev_pager.c: Include <vm/vm_user.h>.
* device/ds_routines.c: Likewise.
* device/subrs.c: Likewise.
* device/device_init.c: Include <device/tty.h>.
* device/ds_routines.h (iowait): Add prototype.
* device/net_io.h (net_kmsg_collect): Add prototype.
* device/net_io.c (hash_ent_remove, net_free_dead_infp,
net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info,
bpf_match): Add forward declarations.
* device/subrs.h: New header.
* i386/i386/fpu.h: Include <sys/types.h>.
Change <i386/thread.h> include to <kern/thread.h>.
(fp_save, fp_load, fp_free, fpu_module_init, fpu_set_state,
fpu_get_state, fpnoextflt, fpextovrflt, fpexterrflt, init_fpu):
Add prototypes.
* i386/i386/gdt.h (gdt_init): Add prototype.
* i386/i386/io_map.c: Include <vm/pmap.h>.
* vm/vm_kern.c: Likewise.
* i386/i386/ktss.h (ktss_init): Add prototype.
* i386/i386/ldt.h (ldt_init): Add prototype.
* i386/i386/loose_ends.h: New header.
* i386/i386/loose_ends.c (delay): Complete prototype.
* i386/i386/model_dep.h (startrtclock): Add prototype.
* i386/i386/pcb.h (load_context, stack_attach, stack_detach,
switch_ktss): Add prototypes.
* i386/i386/pic.h (form_pic_mask, picinit): Add prototypes.
* i386/i386/pit.c: Include <i386/pic.h>.
* i386/i386at/kd_mouse.c: Likewise.
* i386/i386/pit.h (clkstart): Add prototype.
* i386/i386/trap.c: Include <i386/fpu.h>, <intel/read_fault.h>,
<vm/vm_fault.h>.
* i386/i386/trap.h (interrupted_pc): Add prototype.
* i386/i386/user_ldt.c: Include <i386/pcb.h>.
* i386/i386at/autoconf.h: New header.
* i386/i386at/com.h: New header.
* i386/i386at/com.c: Include <i386at/autoconf.h>, <i386at/com.h>.
* i386/i386at/idt.h (idt_init): Add prototype.
* i386/i386at/int_init.h: New header.
* i386/i386at/kd.c: Include <i386/loose_ends.h>.
* kern/debug.c: Likewise.
* i386/i386at/kd_event.c: Include <device/ds_routines.h>.
* i386/i386at/kd_mouse.c: Likewise.
* i386/i386at/kd_mouse.c: Include <device/subrs.h>, <i386at/com.h>.
* i386/i386at/lpr.c: Include <i386at/autoconf.h>
* i386/i386at/model_dep.c: Include: <i386/fpu.h>, <i386/gdt.h>,
<i386/ktss.h>, <i386/ldt.h>, <i386/pic.h>, <i386/pit.h>,
<i386at/autoconf.h>, <i386at/idt.h>, <i386at/int_init.h>,
<i386at/kd.h>, <i386at/rtc.h>.
* i386/i386at/rtc.h (readtodc, writetodc): Add prototypes.
* i386/intel/pmap.h: Include <mach/vm_prot.h>.
(pmap_bootstrap, pmap_unmap_page_zero, pmap_zero_page, pmap_copy_page,
kvtophys): Add prototypes.
* i386/intel/read_fault.h: New header.
* kern/ast.h (ast_init, ast_check): Add prototypes.
* kern/debug.c (Debugger): Move prototype to...
* kern/debug.h (Debugger): ... here.
* kern/eventcount.h (evc_notify_abort): Add prototype.
* kern/ipc_mig.c: Include <kern/syscall_subr.h>, <kern/ipc_tt.h>,
<device/ds_routines.h>
* kern/ipc_mig.h: New header.
* kern/ipc_tt.h (mach_reply_port): Add prototype.
* kern/machine.h: New header.
* kern/processor.h (pset_sys_bootstrap): Move prototype outside of
MACH_HOST check.
* kern/sched_prim.h (thread_bind, compute_priority,
thread_timeout_setup): Add prototypes.
* kern/startup.c: Include <kern/machine.h>, <machine/pcb.h>.
* kern/syscall_subr.c: Include <kern/syscall_subr.h>.
(thread_depress_abort): Remove prototype.
* kern/syscall_subr.h: Include <sys/types.h>, <mach/mach_types.h>
(thread_depress_abort): Add prototype.
* kern/syscall_sw.c: Include: <kern/debug.h>.
* kern/task.h (consider_task_collect): Add prototype.
* kern/thread.c: Include <kern/eventcount.h>, <kern/ipc_mig.h>,
<kern/syscall_subr.h>.
* kern/thread.h (stack_collect): Add prototype.
* linux/pcmcia-cs/glue/pcmcia_glue.h (Debugger): Remove prototype.
* util/putchar.c: Include <device/cons.h>.
* util/putchar.h: New header.
* util/puts.c: Include <device/cons.h>, <util/putchar.h>.
* vm/memory_object.c: Include <vm/vm_map.h>.
(memory_object_data_provided): Move function below
memory_object_data_supply definition.
* vm/vm_init.c: Include <vm/vm_fault.h>.
* vm/vm_kern.h (projected_buffer_in_range): Add prototype.
* vm/vm_map.c: Include <vm/pmap.h>, <vm/vm_resident.h>.
(vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard):
Add forward declaration.
* vm/vm_map.h (vm_map_copyin_object, vm_map_submap,
_vm_map_clip_start, _vm_map_clip_end): Add prototypes.
* vm/vm_pageout.c: Include <device/net_io.h>, <kern/task.h>,
<machine/locore.h>.
* vm/vm_resident.h: New header.
* vm/vm_user.c: Include <vm/vm_kern.h>.
* vm/pmap.h (pmap_pageable, pmap_map_bd): Add prototype.
2008-07-18 Andrei Barbu <[email protected]>
* 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 <[email protected]>
* 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 <device/cons.h>
* kern/printf.c: Include <device/cons.h>
(cnputc): Remove prototype.
(vprintf, iprintf): Explicitely cast cnputc into the type _doprnt
expects.
* linux/dev/kernel/printk.c: Include <device/cons.h>
(cnputc): Remove prototype.
* device/ds_routines.c: Include <machine/locore.h>
* 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/ds_routines.h>
* device/net_io.h (net_ast): Add prototype.
* ipc/ipc_kmsg.c: Include <device/net_io.h>
* kern/ast.c: Include <device/net_io.h>
* 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>
* vm/vm_object.h: Include <sys/types.h> and <ipc/ipc_types.h>.
(vm_object_coalesce, vm_object_pager_wakeup): Add prototypes.
* kern/priority.c: Include <kern/sched_prim.h>.
* 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 <kern/time_stamp.h>.
* ipc/ipc_kmsg.c: Include <vm/vm_user.h> and <ipc/ipc_hash.h>.
* ipc/ipc_mqueue (ipc_mqueue_copyin): Add prototype.
* kern/bootstrap.c: Include <vm/vm_user.h>.
* kern/exceptions.c: Include <ipc/ipc_notify.h>.
* kern/ipc_kobject.h (ipc_kobject_notify): Add prototype.
* kern/ipc_mig.c: Include <device/dev_hdr.h>.
* kern/pc_sample.c: Include <machine/trap.h>.
* kern/printf.h (safe_gets): Add prototype.
* kern/processor.c: Include <kern/ipc_tt.h>.
* kern/queue.h (insque): Add prototype.
* kern/startup.c: Include <kern/mach_factor.h> and <kern/xpr.h>.
* 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 <vm/vm_user.h>
* 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 <i386/model_dep.h>.
* kern/debug.c: Include <machine/model_dep.h>.
* 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 <ipc/mach_port.h>.
(mach_port_get_receive_status): Add forward declaration.
* kern/bootstrap.c: Include <ipc/mach_port.h>.
* 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 <[email protected]>
* linux/src/drivers/net/rtl8139.c (rtl8129_open): Move IRQ
initialization after ring initialization.
2008-07-02 Samuel Thibault <[email protected]>
* linux/dev/include/asm/segment.h (__put_user, __get_user): Add
always_inline attribute.
2008-06-29 Samuel Thibault <[email protected]>
* i386/i386/fpu.c (fpintr): Do not panic if the we receive the
interrupt twice in the same thread.
2008-05-28 Thomas Schwinge <[email protected]>
[bug #23417, patch #6508 -- Building with -g3]
* Makefile.am (MIGCOM): Revert the 2008-05-19 change.
2008-05-25 Andrei Barbu <[email protected]>
* 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 <[email protected]>
[patch #6508 -- Building with -g3]
* Makefile.am (MIGCOM): Let it filter through CPP again.
Suggested by Andrei Barbu <[email protected]>.
2008-05-09 Andrei Barbu <[email protected]>
* i386/i386/loose_ends.c (DELAY): Use volatile qualifier instead of
register to prevent optimization.
2008-03-10 Samuel Thibault <[email protected]>
* doc/Makefrag.am: Fix typo.
2008-03-07 Samuel Thibault <[email protected]>
* i386/i386/locore.S (syscall): Clear direction flag at entry.
2008-02-06 Samuel Thibault <[email protected]>
* linux/src/drivers/block/triton.c (ide_init_triton): Enable Bus
Mastering if not enabled by BIOS.
2007-12-30 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* linux/dev/include/linux/nfs.h: Remove unused file.
* linux/src/include/linux/nfs.h: Likewise.
2007-12-10 Thomas Schwinge <[email protected]>
* i386/Makefrag.am (i386/i386at/boothdr.o, i386/i386at/interrupt.o)
(i386/i386/cswitch.o, i386/i386/locore.o): Remove targets.
* configure.ac <Dependency tracking for `.S' files>: 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 <[email protected]>
* 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 <[email protected]>
* i386/intel/pmap.c (pmap_map_bd): Use
INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock.
2007-11-15 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* doc/mach.texi: Do the copyright and licensing things as suggested by
the GNU Texinfo manual.
2007-10-09 Thomas Schwinge <[email protected]>
* linux/dev/glue/net.c (device_open) <LINUX_IFF_ALLMULTI>: Comment.
2007-10-08 Stefan Siegl <[email protected]>
* linux/dev/glue/net.c (device_open): Set LINUX_IFF_ALLMULTI flag
on device and propagate.
2007-10-02 Samuel Thibault <[email protected]>
* kern/zalloc.c (zget_space): Fix last change.
2007-09-03 Samuel Thibault <[email protected]>
* kern/zalloc.c (zget_space): Align zalloc_next_space again after
calling kmem_alloc_wired (which may sleep).
2007-08-16 Samuel Thibault <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <machine/vm_param.h>
(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 <i386at/idt.h> 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 <asm/hardirq.h>.
(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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* i386/i386/trap.c (user_trap): Read faulting linear address before
using it.
2007-06-02 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* include/mach/mach_types.defs (userprefix, serverprefix): Set, if
requested (by setting USERPREFIX respective SERVERPREFIX).
2007-05-08 Samuel Thibault <[email protected]>
* i386/i386/fpu.c (fpu_set_state): Set fp_valid to TRUE. Free the
unused ifps.
2007-05-07 Thomas Schwinge <[email protected]>
[bug #15295 -- Mach lets processes write to I/O ports]
* i386/Makefrag.am (libkernel_a_SOURCES): Add `i386/i386/io_perm.c',
`i386/i386/io_perm.h', `i386/i386/machine_task.c', `i386/i386/task.h'
and remove `i386/i386/io_port.h', `i386/i386/iopb.c',
`i386/i386/iopb.h'.
* i386/i386/io_port.h: Remove file.
* i386/i386at/kd.c: Don't include <i386/io_port.h>.
(vga_port_list, kd_io_device, kd_io_map_open, kd_io_map_close): Don't
define and don't use anymore.
* include/stddef.h: New file.
* i386/i386/io_perm.c: Include <string.h>, <device/device_emul.h>,
<ipc/ipc_space.h> and don't include <oskit/ds_oskit.h>.
(io_perm_device_emulation_ops): New variable.
(dev_open_alloc, setup_no_senders): Remove declarations.
(convert_io_perm_to_port, convert_port_to_io_perm, io_perm_deallocate):
Rewrite.
(no_senders): New function.
(i386_io_perm_create, i386_io_perm_modify): Rewrite partially, to adapt
to the GNU Mach environment.
* i386/i386/io_perm.h: Include <device/dev_hdr.h> and
<ipc/ipc_types.h>.
(io_perm, io_perm_t): New structure and accompanying type definition.
(IO_PERM_NULL): Define.
* i386/i386/locore.S (ktss): Move variable to...
* i386/i386/ktss.c: ... here, make it a ``struct task_tss''.
(ktss_init): Initialize the `task_tss' structure and the i/o permission
bit map.
* i386/i386/ktss.h: Adapt to that.
* i386/i386/machine_task.c (machine_task_module_init): Adapt the `zinit'
call to the GNU Mach environment.
* i386/i386/mp_desc.c: Include <machine/ktss.h>.
* i386/i386/tss.h: Include <machine/io_perm.h>.
(task_tss): New structure, equivalent to the OSKit-Mach one.
* i386/include/mach/i386/mach_i386.defs: Don't include
<device/device_types.defs>.
(device_list_t): Remove type.
* i386/include/mach/i386/mach_i386_types.h (device_list_t): Remove type
definition.
2007-05-07 Marcus Brinkmann <[email protected]>
[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 <[email protected]>.
* 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 <[email protected]>
* device/kmsg.c: Include <device/ds_routines.h>.
(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 <[email protected]>
* 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 <ipc/ipc_types.h>.
* vm/pmap.h: Include <kern/thread.h>.
* vm/vm_fault.h: Include <mach/vm_prot.h>, <vm/vm_map.h> and
<vm/vm_types.h>.
* vm/vm_map.h: Include <mach/vm_attributes.h> and <vm/vm_types.h>.
(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/vm_types.h>.
(vm_page_t, VM_PAGE_NULL): Remove type and definition.
* vm/vm_user.h: Include <mach/std_types.h>.
* kern/task.h: Include <vm/vm_types.h> instead of <vm/vm_map.h>.
* vm/vm_types.h: New file: the above-removed types and definitions.
2007-05-02 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* assigns: Remove file. See `copyright.list' on the GNU server instead.
2007-04-30 Thomas Schwinge <[email protected]>
We're not in the eighties anymore. List arguments in function
prototypes and definitions for a lot of symbols. Also drop some unused
prototypes. I refrain from listing every changed symbol.
* chips/busses.h: Do as described.
* ddb/db_break.c: Likewise.
* ddb/db_break.h: Likewise.
* ddb/db_command.c: Likewise.
* ddb/db_command.h: Likewise.
* ddb/db_lex.c: Likewise.
* ddb/db_lex.h: Likewise.
* ddb/db_output.c: Likewise.
* ddb/db_output.h: Likewise.
* ddb/db_sym.h: Likewise.
* ddb/db_task_thread.c: Likewise.
* ddb/db_task_thread.h: Likewise.
* ddb/db_variables.h: Likewise.
* ddb/db_watch.c: Likewise.
* ddb/db_watch.h: Likewise.
* device/buf.h: Likewise.
* device/conf.h: Likewise.
* device/dev_hdr.h: Likewise.
* device/ds_routines.h: Likewise.
* device/if_ether.h: Likewise.
* device/io_req.h: Likewise.
* device/net_io.h: Likewise.
* i386/i386/io_port.h: Likewise.
* i386/i386/lock.h: Likewise.
* i386/i386/mp_desc.c: Likewise.
* i386/i386/mp_desc.h: Likewise.
* i386/i386/proc_reg.h: Likewise.
* i386/i386/user_ldt.h: Likewise.
* i386/i386at/kd_queue.h: Likewise.
* i386/i386at/kdsoft.h: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/intel/pmap.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* ipc/ipc_entry.h: Likewise.
* ipc/ipc_hash.h: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_marequest.h: Likewise.
* ipc/ipc_mqueue.h: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_pset.h: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/ipc_table.h: Likewise.
* ipc/mach_msg.c: Likewise.
* ipc/mach_msg.h: Likewise.
* kern/ast.c: Likewise.
* kern/ast.h: Likewise.
* kern/debug.c: Likewise.
* kern/debug.h: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/ipc_tt.h: Likewise.
* kern/mach_factor.c: Likewise.
* kern/mach_factor.h: Likewise.
* kern/printf.c: Likewise.
* kern/printf.h: Likewise.
* kern/queue.h: Likewise.
* kern/sched.h: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/syscall_subr.h: Likewise.
* kern/task.h: Likewise.
* kern/thread_swap.c: Likewise.
* kern/thread_swap.h: Likewise.
* kern/timer.h: Likewise.
* kern/xpr.c: Likewise.
* kern/xpr.h: Likewise.
* kern/zalloc.c: Likewise.
* kern/zalloc.h: Likewise.
* ipc/ipc_port.h: Don't include <ipc/ipc_space.h>.
* device/dev_hdr.h: Include <ipc/ipc_types.h>.
* device/net_io.h: Include <device/if_hdr.h> and <device/io_req.h>.
* ipc/ipc_entry.h: Include <mach/mach_types.h> and <ipc/ipc_types.h>.
* ipc/ipc_kmsg.h: Include <ipc/ipc_object.h>, <ipc/ipc_types.h> and
<vm/vm_map.h>.
* ipc/ipc_marequest.h: Include <mach_debug/hash_info.h> and
<ipc/ipc_types.h>.
* ipc/ipc_object.h: Include <ipc/ipc_types.h>.
* ipc/ipc_right.h: Include <ipc/ipc_entry.h>.
* ipc/ipc_space.h: Include <mach/mach_types.h> and <ipc/ipc_types.h>.
* kern/ipc_tt.h: Include <mach/mach_types.h>.
* kern/sched.h: Include <kern/kern_types.h>.
* kern/syscall_subr.h: Include <kern/kern_types.h>.
* ipc/ipc_hash.c (ipc_hash_index_t): Move type definition...
* ipc/ipc_hash.h: ... into here.
2007-04-25 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* linux/src/drivers/net/ne.c (bad_clone_list): Add the RealTek 8029 PCI
card's signature.
<http://lists.gnu.org/archive/html/bug-hurd/2007-04/msg00039.html>
2007-04-24 Thomas Schwinge <[email protected]>
* ipc/ipc_port.h: Include <ipc/ipc_space.h>.
2007-04-11 Thomas Schwinge <[email protected]>
* 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 <[email protected]>.
2007-04-02 Thomas Schwinge <[email protected]>
* i386/i386/io_emulate.c: Remove file.
* i386/i386/io_emulate.h: Likewise.
* i386/i386at/iopl.c: Likewise.
* i386/Makefrag.am (libkernel_a_SOURCES): Remove the aforementioned
files.
* i386/i386/trap.c: Don't include <i386/io_emulate.h>.
(v86_assist, check_io_fault): Remove functions.
(user_trap): Remove the code referencing the above functions.
* i386/i386at/conf.c (dev_name_list): Remove the `iopl' device.
* DEVELOPMENT: Document this.
2007-03-30 Thomas Schwinge <[email protected]>
* Makefile.am (gnumach_o_LINK): Remove ``--start-group''.
2007-03-27 Thomas Schwinge <[email protected]>
Unconditionally use the device driver multiplexing. Suggested by
Gianluca Guida <[email protected]>.
* i386/i386at/dev_hdr.h: Merge into `device/dev_hdr.h' and remove.
* i386/i386at/device_emul.h: Rename to `device/device_emul.h'. Adapt
all users.
* i386/i386at/i386at_ds_routines.c: Merge into `device/ds_routines.c'
and remove.
* i386/linux/dev/include/linux_emul.h: Remove file.
* Makefrag.am (libkernel_a_SOURCES): Add `device/device_emul.h'.
* i386/Makefrag.am (libkernel_a_SOURCES): Remove
`i386/i386at/dev_hdr.h', `i386/i386at/device_emul.h' and
`i386/i386at/i386at_ds_routines.c'.
* i386/linux/Makefrag.am (liblinux_a_SOURCES): Remove
`i386/linux/dev/include/linux_emul.h'.
* dev/dev_hdr.h: Adapt all users of `i386' as if it were always
defined.
* device/dev_lookup.c: Likewise.
* device/ds_routines.c: Likewise.
* device/device_init.c (ds_init): Rename to `mach_device_init'.
* device/ds_routines.c (ds_init): Likewise.
(ds_trap_init): Rename to `mach_device_trap_init'.
(mach_device_trap_init): Make it `static'.
* linux/dev/glue/block.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h> and <i386at/disk.h>.
* linux/dev/glue/net.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h>.
* linux/pcmcia-cs/glue/ds.c: Likewise.
* 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 <[email protected]>
* 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 <sys/types.h>, <device/device_types.h> and
<device/io_req.h>.
* Makefrag.am (libkernel_a_SOURCES): Move `device/kmsg.h' into
[enable_kmsg].
2007-03-23 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* i386/ldscript: Correct 'LINKFLAGS_gnumach' in comment.
2007-03-06 Samuel Thibault <[email protected]>
* i386/i386/user_ldt.c (i386_set_gdt): Call switch_ktss() if target is
current thread.
2007-03-05 Samuel Thibault <[email protected]>
[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 <[email protected]>
* tests/configfrag.ac (MBCHK): Remove check.
* tests/test-mbchk.in: Fail correctly if `mbchk' is not available.
2007-03-01 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* kern/mach_clock.c: Don't include <kern/time_out.h>.
* i386/i386/hardclock.c: Include <kern/mach_clock.h> instead of
<kern/time_out.h>.
* i386/i386/pit.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386at/rtc.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/mach_factor.c: Likewise.
* kern/priority.c: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.h: Likewise.
* kern/zalloc.c: Likewise.
* kern/host.c: Include <kern/mach_clock.h>.
(tick): Remove declaration.
* kern/pc_sample.c: Likewise.
* kern/thread.c: Likewise.
* kern/sched_prim.c (hz): Remove declaration.
* kern/syscall_subr.c (hz): Likewise.
* linux/dev/init/main.c (hz): Likewise.
* 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 <[email protected]>
* 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 <[email protected]>
* doc/mach.texi: Fix the last change.
2007-01-22 Thomas Schwinge <[email protected]>
* COPYING: Update via GNU automake 1.10.
* doc/fdl.texi: Update from <http://www.gnu.org/licenses/fdl.texi>.
* doc/gpl.texi: Update from <http://www.gnu.org/licenses/gpl.texi>.
* doc/mach.texi: Use the GFDL 1.2.
2007-01-21 Ralf Wildenhues <[email protected]>
* doc/mach.texi: Many typos fixed.
2007-01-11 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* ddb/db_break.c (db_delete_thread_breakpoint): Don't declare
`db_cond_free'.
* ddb/db_run.c: Include <ddb/db_cond.h>.
(db_stop_at_pc): Don't declare `db_cond_check'.
* ddb/db_input.c: Include <ddb/db_input.h>.
* ddb/db_macro.c: Include <ddb/db_macro.h>.
* ddb/db_trap.c: Include <ddb/db_trap.h>.
* i386/i386/db_interface.h: Include <machine/thread.h>.
* i386/i386/db_interface.c: Include <machine/db_interface.h>.
* i386/i386/db_machdep.h: Include <machine/db_interface.h>.
(db_check_access, db_phys_eq, db_task_name): Remove declarations.
2007-01-06 Barry deFreese <[email protected]>
* ddb/db_aout.c: Include <ddb/db_output.h>.
* ddb/db_break.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_delete_cmd, db_breakpoint_cmd): Explicitly define untyped variables
as `int'.
* ddb/db_command.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_macro.h>.
* ddb/db_command.h (db_exec_cmd_nest): New declaration.
* ddb/db_cond.c: Include <ddb/db_cond.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_cond_cmd): Explicitly define untyped variable as `int'.
* ddb/db_cond.h: New file.
* ddb/db_examine.c: Include <machine/db_interface.h>,
<ddb/db_examine.h> and <ddb/db_expr.h>.
(db_strcpy, db_examine): Remove forward declarations.
(db_xcdump): Explicitly define untyped variables as `int'.
* ddb/db_examine.h: New file.
* ddb/db_expr.c: Include <ddb/db_expr.h>, <ddb/db_output.h>,
<ddb/db_sym.h> and <ddb/db_variables.h>.
* ddb/db_input.c: Include <ddb/db_command.h>.
* ddb/db_input.h: New file.
* ddb/db_lex.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_input.h> and <ddb/db_output.h>.
(db_skip_to_eol, db_lex): Explicitly define untyped variables as `int'.
* ddb/db_lex.h (db_lex): New declaration.
* ddb/db_macro.c: Include <ddb/db_examine.h>, <ddb/db_expr.h> and
<ddb/db_output.h>.
(db_def_macro_cmd, db_exec_macro): Explicitly define untyped variables
as `int'.
* ddb/db_macro.h: New file.
* ddb/db_output.c: Include <ddb/db_command.h>.
* ddb/db_output.h (db_putchar): New declaration.
* ddb/db_print.c: Include <machine/db_interface.h>, <ddb/db_command.h>
and <ddb/db_output.h>.
(db_show_regs): Explicitly define untyped variables as `int'.
* ddb/db_run.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_output.h> and <ddb/db_watch.h>.
* ddb/db_run.h: Include <kern/task.h> and <machine/db_machdep.h>.
(db_single_step, db_single_step_cmd, db_in_single_step): New
declarations.
* ddb/db_sym.c: Include <ddb/db_command.h> and <ddb/db_output.h>.
(db_sym_parse_and_lookup): Explicitly define untyped variables as
`int'.
* ddb/db_sym.h (db_line_at_pc): New declaration.
* ddb/db_task_thread.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_lex.h> and <ddb/db_output.h>.
(db_lookup_task, db_lookup_task_thread, db_lookup_thread)
(db_lookup_task_id, db_lookup_thread_id): Explicitly define untyped
variables as `int'.
* ddb/db_trap.c: Include <ddb/db_examine.h> and <ddb/db_output.h>.
* ddb/db_trap.h: New file.
* ddb/db_variables.c: Include <ddb/db_command.h>, <ddb/db_examine.h>,
<ddb/db_expr.h> and <ddb/db_output.h>.
(db_get_suffix, db_cmp_variable_name): Explicitly define untyped
variables as `int'.
* ddb/db_variables.h (db_get_variable): New declaration.
* ddb/db_watch.c: Include <ddb/db_command.h>, <ddb/db_expr.h>,
<ddb/db_output.h> and <ddb/db_run.h>.
* ddb/db_write_cmd.c: Include <ddb/db_expr.h> and <ddb/db_output.h>.
* i386/i386/db_interface.c: Include <kern/printf.h>, <ddb/db_access.h>,
<ddb/db_command.h>, <ddb/db_output.h>, <ddb/db_run.h> and
<ddb/db_trap.h>.
(kdbprinttrap): Add `void' return type.
(db_user_to_kernel_address, db_task_name): Explicitly define untyped
variables as `int'.
* i386/i386/db_interface.h: New file.
* i386/i386/db_trace.c (db_i386_reg_value): Add `int' return type.
* i386/i386/trap.c [MACH_KDB]: Include <ddb/db_run.h> and
<ddb/db_watch.h>.
* ipc/ipc_kmsg.c [MACH_KDB]: Include <ddb/db_output.h>.
* kern/lock.c [MACH_KDB]: Include <ddb/db_output.h>.
2007-01-06 Thomas Schwinge <[email protected]>
* configure.ac (AM_INIT_AUTOMAKE): Add ``-Wall -Wno-portability''.
2007-01-05 Richard Braun <[email protected]>
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 <[email protected]>
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 <[email protected]>
Add support for global pages.
* i386/i386at/model_dep.c: Include <i386/locore.h>.
(i386at_init): Set CR4_PGE if available.
(c_boot_entry): Call discover_x86_cpu_type() before i386at_init().
* i386/intel/pmap.c: Include <i386/locore.h>.
(pmap_map_bd): Use INTEL_PTE_GLOBAL if available.
(pmap_bootstrap): Likewise.
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 <[email protected]>
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 <[email protected]>
[patch #5019 -- Remove checks for continuations]
* DEVELOPMENT: Document the removal.
* i386/configfrag.ac (CONTINUATIONS): Don't define.
2006-12-03 Leonardo Lopes Pereira <[email protected]>
[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 <[email protected]>
[patch #5017 -- Remove obsolete IPC interfaces]
* DEVELOPMENT: Document the removal.
* configfrag.ac (MACH_IPC_COMPAT): Don't define.
2006-12-03 Leonardo Lopes Pereira <[email protected]>
[patch #5017 -- Remove obsolete IPC interfaces]
* kern/act.c [MIGRATING_THREADS]: Don't include <mach_ipc_compat.h>.
* kern/act.h: Likewise.
* i386/include/mach/i386/machine_types.defs: Adapt all users of
MACH_IPC_COMPAT as if it were always defined to `0'.
* include/mach/mach.defs: Likewise.
* include/mach/mach_param.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* include/mach/message.h: Likewise.
* include/mach/mig_errors.h: Likewise.
* include/mach/notify.h: Likewise.
* include/mach/port.h: Likewise.
* include/mach/std_types.defs: Likewise.
* include/mach/syscall_sw.h: Likewise.
* include/mach/task_special_ports.h: Likewise.
* include/mach/thread_special_ports.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_notify.c: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_right.c: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.c: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/mach_debug.c: Likewise.
* ipc/mach_msg.c: Likewise
* ipc/mach_msg.h: Likewise.
* ipc/mach_port.c: Likewise.
* kern/act.c: Likewise.
* kern/act.h: Likewise.
* kern/ipc_host.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/syscall_sw.c: Likewise.
* kern/thread.h: Likewise.
2006-12-03 Thomas Schwinge <[email protected]>
[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 <[email protected]>
* Makefile.in: Regenerate.
* configure: Likewise.
2006-11-30 Barry deFreese <[email protected]>
Thomas Schwinge <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* doc/Makefrag.am ($(srcdir)/doc/version.texi): Oppress a potential
error message from grep.
2006-11-26 Samuel Thibault <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
Thomas Schwinge <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile.am (gnumach-undef-bad): Depend on the Makefile.
2006-11-11 Samuel Thibault <[email protected]>
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 <[email protected]>
* kern/sched_prim.h (thread_syscall_return): Replace old `volatile'
function qualifier with __attribute__((__noreturn__)).
2006-11-09 Barry deFreese <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
[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 <[email protected]>
* include/string.h: Fix copyright assignment to FSF, keep author's
name.
2006-11-05 Thomas Schwinge <[email protected]>
* linux/dev/README: New file.
* config.h.in: Regenerate.
* configure: Likewise.
[task #5956 -- Automake'ify GNU Mach's code base]
* configure.ac <AM_INIT_AUTOMAKE>: Add `no-define' and `1.9'.
2006-11-05 Barry deFreese <[email protected]>
[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 <[email protected]>
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 <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <config.status.dep.patch>: Update description.
2006-10-15 Thomas Schwinge <[email protected]>
* 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 <config.status.dep.patch>: 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/linux/device-drivers.h>.
* 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 <time_stamp.h>.
* device/cons.c: Include <device/cons.h> instead of <cons.h>.
* i386/i386at/com.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/cons_conf.c: Likewise.
* i386/i386at/i386at_ds_routines.c: Include <device/device.server.h>
instead of "device_interface.h".
* device/chario.c: Include <device/device_reply.user.h> 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 <device/kmsg.h> instead of <kmsg.h>.
* device/kmsg.c: Likewise.
* i386/i386/cswitch.S: Include <i386/cpu_number.h> 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 <i386/gdt.h> instead of "gdt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* i386/i386/cswitch.S: Include <i386/i386asm.h> instead of "i386asm.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/boothdr.S: Likewise.
* i386/i386at/interrupt.S: Likewise.
* i386/i386at/idt.h: Include <i386/idt-gen.h> instead of "idt-gen.h".
* i386/i386at/interrupt.S: Include <i386/ipl.h> instead of "ipl.h".
* i386/i386/i386asm.sym: Include <i386/ldt.h> instead of "ldt.h".
* i386/i386/locore.S: Likewise.
* i386/i386/i386asm.sym: Include <i386/mp_desc.h> instead of
"mp_desc.h".
* i386/i386at/interrupt.S: Include <i386/pic.h> instead of "pic.h".
* i386/i386/cswitch.S: Include <i386/proc_reg.h> instead of
"proc_reg.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386/i386asm.sym: Include <i386/seg.h> instead of "seg.h".
* i386/i386/idt.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/locore.S: Include <i386/trap.h> instead of "trap.h".
* i386/i386/i386asm.sym: Include <i386/tss.h> instead of "tss.h".
* i386/i386/i386asm.sym: Include <i386/vm_param.h> 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 <i386at/idt.h> instead of "idt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* ipc/ipc_target.c: Include <kern/sched_prim.h> instead of
"sched_prim.h".
* vm/memory_object.c: Include <vm/memory_object_default.user.h> instead
of "memory_object_default.h".
* vm/vm_object.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/memory_object.c: Include <vm/memory_object_user.user.h> 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 <configure's findings, System dependent Makerules>
<Compilation flags, Dependency generation, Autoconf support>: Remove
sections.
<Building from foo.cli, Building from foo.srv>: 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 <configure's findings, Rules, Kernel Image, Installation>
<Building the distribution, Autoconf support, Makerules>: Remove
sections.
(enable_kdb, enable_kmsg): Adapt.
<All the source in each directory>
<Header files installed for user use>: Rewrite to adapt to how things
are to be done now.
<Automatically generated source files>: New section.
(i386/Makefrag.am): Include file if appropriate.
* i386/Makefrag.am <configure's findings, Rules, Installation>
<Autoconf support, Makerules>: Remove sections.
(enable_lpr): Adapt.
<Source files for any i386 kernel>: 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.
<Output variable `systype'>: Rework the whole section.
<Options> (--enable-kdb, --disable-kmsg): Move into `configfrag.ac' and
adapt.
<Programs> (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.
<configure fragments> (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.
<case "$host_cpu">: 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.
<Configuration options>: Adapt to the new functions introduced above
and re-position parts.
<Process device driver groups>: Adapt to the changes related to device
driver groups.
* linux/configure.in <AC_CONFIG_LINKS>: 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
* DEVELOPMENT: Update.
2006-07-31 Stefan Siegl <[email protected]>
* doc/mach.texi (Configuration): Document the new PCMCIA drivers a bit
more.
* i386/README-Drivers: Likewise.
2006-07-27 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* 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 <linux/wireless.h>.
(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 <[email protected]>
Import a number of files from the pcmcia-cs package, version 3.2.8,
available from <http://pcmcia-cs.sourceforge.net/>.
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
[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 <[email protected]>
* i386/i386at/autoconf.c (bus_device_init) <lpr> [! LINUX_DEV]: Depend
on `MACH_LPR' instead.
* i386/i386at/lpr.c: Fix obsolescent `#else' / `#endif' syntax.
2006-05-12 Stefan Siegl <[email protected]>
* linux/dev/glue/kmem.c (vfree): Panic if `vmalloc_list_lookup' did
NOT succeed.
2006-05-08 Thomas Schwinge <[email protected]>
* DEVELOPMENT: Document Samuel's patch.
2006-05-08 Samuel Thibault <[email protected]>
[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 <[email protected]>
Manuel Menal <[email protected]>
* 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 <sys/types.h>.
(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 <[email protected]>
* Makefile.in: Replace `make' with `$(MAKE)'.
* i386/Makefile.in: Likewise.
Reported by Leonardo Lopes Pereira <[email protected]>.
2006-04-08 Thomas Schwinge <[email protected]>
* i386/Makefile.in (INCLUDES): Don't add `$(srcdir)/bogus'.
* i386/Makerules.in (INCLUDES): Add
`$(abs_top_srcdir)/$(systype)/bogus'.
Reported by Samuel Thibault <[email protected]>.
2006-04-02 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* DEVELOPMENT: Document the NORMA removal.
2006-03-20 Leonardo Lopes Pereira <[email protected]>
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 <norma_device.h> anymore and
adapt all users of NORMA_DEVICE as if it were always defined to `0'.
* device/net_io.c: Likewise for <norma_ether.h>, NORMA_ETHER.
* kern/machine.c: Likewise.
* ddb/db_command.c: Likevise for <norma_ipc.h>, 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.h>, NORMA_TASK.
* kern/task.c: Likewise.
* kern/task.h: Likewise.
* ddb/db_command.c: Likewise for <norma_vm.h>, 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 <[email protected]>
* DEVELOPMENT: Document the FIPC removal.
2006-03-19 Leonardo Lopes Pereira <[email protected]>
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 <[email protected]>
* configure.in: Check for strip and gzip.
* configure: Regenerated.
* Makerules.in (GZIP, STRIP): New variables.
(%.gz, %.stripped): New targets.
2006-03-04 Roland McGrath <[email protected]>
* Makefile.in (DEFS): Substitute once and use the variable elsewhere.
2006-03-04 Samuel Thibault <[email protected]>
[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 <[email protected]>
Remove unused and unsupported code. Consult the file
`DEVELOPMENT' for details. Partly based on suggestions by
Gianluca Guida <[email protected]>.
* 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 <par.h> 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 <de6c.h> 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 <[email protected]>
Remove unused and unsupported code. Consult the file
`DEVELOPMENT' for details. Partly based on suggestions by
Gianluca Guida <[email protected]>.
* 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 <blit.h> 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 <net_atm.h> 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 <chips/nw_mk.h> 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 <evc.h> 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 <nscsi.h> 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 <aha.h> and <eaha.h> 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 <wt.h> 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 <hpp.h>, <ul.h> and <wd.h>
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 <at3c501.h> 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 <ns8390.h> 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 <ne.h> 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 <pc586.h> 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 <fd.h> 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 <hd.h> 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 <[email protected]>
* Makerules.in: Don't set no_deps to true if MAKECMDGOALS is empty.
2006-02-03 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makerules.in: Move a comment ...
* Makefile.in: ... here.
2006-02-01 Thomas Schwinge <[email protected]>
* linux/dev/drivers/block/genhd.c (add_bsd_partition): Only define if
both MACH and CONFIG_BSD_DISKLABEL are defined.
Reported by Matheus Morais <[email protected]>.
2006-01-31 Thomas Schwinge <[email protected]>
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 <machine/vm_param.h> 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 <[email protected]>
* config.guess: Updated from the canonical source.
* config.sub: Likewise.
2006-01-26 Jeroen Dekkers <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* i386/linux/Makefile.in: Automatically recreate the `Makefile'.
2006-01-23 Thomas Schwinge <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <asm/cache.h>.
* 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 <[email protected]>
* 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 <[email protected]>
* linux/src/drivers/net/ne2k-pci.c (ne_block_input, ne_block_output):
Fix previous patch.
2005-07-12 Guillem Jover <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* linux/dev/glue/block.c (rdwr_partial): Remove leftover assert.
2005-01-22 Guillem Jover <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* linux/dev/kernel/printk.c: Include <kern/assert.h>.
(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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* NEWS: Add things that changed so far since 1.3.
2004-02-02 Marco Gerards <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* linux/dev/glue/block.c (device_get_status): Correctly calculate
the number of blocks.
2004-01-15 Alfred M. Szmidt <[email protected]>
* 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 <[email protected]>
* Version 1.3 released.
2002-05-23 Marcus Brinkmann <[email protected]>
* i386/i386at/model_dep.c: Include <kern/cpu_number.h> and
<kern/assert.h>.
(machine_idle): New function.
* bogus/power_save.h (POWER_SAVE): Define to 1.
2002-05-22 Roland McGrath <[email protected]>
* 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 <[email protected]>
* debian/rules (DOCDIR): Move to
$(PREFIX)/share/doc/$(package-dev).
2002-04-23 Roland McGrath <[email protected]>
* i386/i386/ldt.c (ldt_init): Fix fencepost error in segment limits.
2002-04-19 Roland McGrath <[email protected]>
* gensym.awk: Emit \n\ at the end of lines inside strings.
* Makefile.in (%.symc: %.sym): Depend on gensym.awk.
2002-03-29 Marcus Brinkmann <[email protected]>
* doc/mach.texi: End index entry with full stop.
2002-03-05 Roland McGrath <[email protected]>
* kern/bootstrap.c: Include <alloca.h>.
2002-03-04 Roland McGrath <[email protected]>
* Makefile.in (%_interface.h %_server.c: %.srv): Pass -sheader switch
to mig, not -header.
2001-11-23 Roland McGrath <[email protected]>
* i386/i386at/i386at_ds_routines.c (device_deallocate): Do nothing if
argument is DEVICE_NULL.
2001-10-21 Marcus Brinkmann <[email protected]>
* linux/src/arch/i386/lib/delay.c: Convert HTML entities.
Reported by John Tobey <[email protected]>.
2001-10-13 Marcus Brinkmann <[email protected]>
* debian/changelog: Update for next release.
2001-10-07 Roland McGrath <[email protected]>
* 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 <[email protected]>.
2001-10-06 Marcus Brinkmann <[email protected]>
* README: Replace `GNU mach' by `GNU Mach', and remove
obsolete paragraph about kmsg device.
2001-10-06 Marcus Brinkmann <[email protected]>
* doc/mach.texi: Fix direntry.
2001-10-05 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* kern/bootstrap.c (bootstrap_create): Ignore trailing spaces when
checking boot module string for containing none.
2001-09-18 Marcus Brinkmann <[email protected]>
* linux/dev/glue/misc.c: Do not include <linux/types.h> and
<linux/string.h>.
Remove global variable ___strtok.
Remove implementation of strspn, strpbrk, strtok and strstr.
* Makefile.in: Add strpbrk and strtok.
2001-08-24 Roland McGrath <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
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 <[email protected]>
* 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 <[email protected]>
* linux/src/drivers/net/eepro100.c: File updated to version in
Linux 2.2.19. This time for real.
2001-08-18 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* i386/i386at/kd.c (kdintr): In event mode, make it so that
0xE0 scancodes are received.
From Kalle Olavi Niemitalo <[email protected]>.
* 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 <[email protected]>
* 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 <[email protected]>.
2001-08-17 Roland McGrath <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* debian/rules: Add -isp to dpkg-gencontrol invocation.
Move documentation to /share/doc.
* debian/changelog: Update.
2001-06-28 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* debian/rules: Update to current version.
2001-06-13 Roland McGrath <[email protected]>
* 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 <[email protected]>
* debian/rules: Add --enable-ncr53c8xx to configure.
1999-10-06 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>.
2001-05-20 Roland McGrath <[email protected]>
* 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 <[email protected]>
* ipc/ipc_object.c (ipc_object_alloc): Remove initialization of
*namep, which was without effect.
2001-04-29 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* kern/zalloc.c (zalloc): Change panics for exhausted zone to include
the zone name.
2001-01-09 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* i386/Makefrag (i386-installed-headers): Removed dead files
from the list of headers to be installed
2000-11-26 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>.
2000-10-29 Roland McGrath <[email protected]>
Remove numerous dead header files.
Suggested by Igor Khavkine <[email protected]>.
* 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 <[email protected]>
* 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 <[email protected]>
* linux/dev/glue/block.c: Reverted the changes at 2000-08-17.
Reported by Brent Fulgham <[email protected]>.
2000-09-19 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>.
(init_partition): Likewise.
(check_limit): Likewise.
(device_get_status): Likewise.
2000-07-27 Marcus Brinkmann <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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
<[email protected]>.
1999-09-17 Thomas Bushnell, BSG <[email protected]>
* 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 <[email protected]>
* i386/intel/pmap.c (pmap_bootstrap): Use _start instead of start.
* i386/i386/trap.c (kernel_trap): Likewise.
1999-10-04 Roland McGrath <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>.
1999-09-07 Thomas Bushnell, BSG <[email protected]>
* linux/src/drivers/net/yellowfin.c (yellowfin_probe): Return
correct value. Reported by Marcus Brinkmann
<[email protected]>.
* linux/dev/drivers/net/Space.c: Declare tc515_probe. Reported by
Marcus Brinkmann <[email protected]>.
1999-09-04 Thomas Bushnell, BSG <[email protected]>
* 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
([email protected]>.
1999-08-10 Thomas Bushnell, BSG <[email protected]>
* 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
([email protected]).
1999-07-23 Roland McGrath <[email protected]>
* Drivers.macros (AC_DRIVER): Use `test' instead of `[ ... ]'.
Reported by "Momchil 'Velco' Velikov" <[email protected]>.
1999-07-20 Roland McGrath <[email protected]>
* 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 <[email protected]>
* i386/i386at/model_dep.c (init_alloc_aligned): Make the checks
correctly for addresses falling into skip regions. Reported by
Momchil Velikov ([email protected]).
1999-07-01 Thomas Bushnell, BSG <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>.
* Drivers.macros (AC_DRIVER): Only turn on driver if $enableval is
not `no'. Reported by Kalle Olavi Niemitalo <[email protected]>.
1999-06-15 Thomas Bushnell, BSG <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* linux/configure: Regenerated.
1999-05-21 Roland McGrath <[email protected]>
* linux/configure.in: Fix names dummy -> dummy.in in AC_OUTPUT call.
1999-05-14 Roland McGrath <[email protected]>
* 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 <okuji@localhost>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 ([email protected]).
Mon Apr 26 02:13:02 1999 Thomas Bushnell, BSG <[email protected]>
* 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 <[email protected]>
* version.c (version): Update to 1.1.92.
Sun Mar 14 18:53:01 1999 Thomas Bushnell, BSG <[email protected]>
* 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 <[email protected]>
* i386/linux/Drivers.in: Fix the source paths for `asm' symbolic
links. Reported by KONISHI Toru <[email protected]>.
* 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 <[email protected]>
Version 1.1.91.
* version.c (version): Update to 1.1.91.
1999-03-01 OKUJI Yoshinori <[email protected]>
* i386/linux/Drivers.in: Fix linking paths.
* i386/linux/Makefile.in: Corrent include paths and fix
Drivers.macros location.
1999-02-28 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>
* 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
<i386/linux/device-drivers.h> instead of <linux/device-drivers.h>.
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile.in (install-kernel): Be sure that $(bootdir) is
created before installing the kernel.
1999-02-06 OKUJI Yoshinori <[email protected]>
* configure.in: Enable com by default, because current kbd and
mouse can't be linked without com. Reported by M. Meiarashi
<[email protected]>.
1999-02-05 OKUJI Yoshinori <[email protected]>
Version 1.1.90.
* version.c (version): Update to 1.1.90.
1999-02-04 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* device/kmsg.c (kmsgopen): Added simple_lock and simple_unlock.
(ksmgclose): Likewise.
1999-01-25 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>.
* 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 <[email protected]>
* 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 <[email protected]>
* i386/i386at/kd.c: Applied a keymap patch. Reported by
Marcus Brinkmann <[email protected]>.
* i386/i386at/kd.h: Likewise.
1998-12-30 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>
* Makefile.in (objfiles): Add kmsg.o.
* device/cons.c: Include <device/io_req.h>.
* device/kmsg.c: Rewritten almost entirely.
1998-12-06 OKUJI Yoshinori <[email protected]>
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 <[email protected]>
* 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 <device-drivers.h>.
* linux/dev/glue/kmem.c: Add printf declaration.
* linux/dev/glue/misc.c: Include <linux/types.h>.
* 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 <[email protected]>
* i386/i386at/i386at_ds_routines.c: Include <linux/device-drivers.h>
only if LINUX_DEV is defined. Reported by UCHIYAMA Yasushi
<[email protected]>.
* 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 <[email protected]>
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 <i386/ipl.h>, for compatibility with
OSF Mach 3.0. Suggested by Elgin Lee <[email protected]>.
* 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 <machine/spl.h> instead
of <i386/ipl.h>.
* linux/dev/drivers/net/auto_irq.c: Remove unneeded header files,
<i386/ipl.h> and <i386/pic.h>.
* 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 <machine/spl.h> instead
of <i386/ipl.h>, and moved to ...
* linux/dev/kernel/sched.c: ... here.
* linux/dev/arch/i386/glue/block.c: Include <machine/spl.h> and
<linux_emul.h>, instead of i386-dependent header files, and
moved to ...
* linux/dev/glue/blocl.c: ... here.
* linux/dev/arch/i386/glue/net.c: Include <machine/spl.h> and
<linux_emul.h>, 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 <[email protected]>
* 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 <[email protected]>.
(reserve_mach_irqs): New function.
1998-11-24 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>.
* 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 <[email protected]>
* 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 <[email protected]>.
1998-11-18 OKUJI Yoshinori <[email protected]>
* 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
<linuxdev/drivers/net/i82586.h>, instead of <drivers/net/i82586.h>.
* linuxdev/drivers/scsi/aha152x.c: Define AUTOCONF.
* linuxdev/configure: Regenerate.
1998-11-17 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>.
* linuxdev/arch/i386/linux_irq.c (unmask_irq): Fix a typo.
1998-11-17 OKUJI Yoshinori <[email protected]>
* 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 <[email protected]>
* Makefile.in (clib-routines.o): Add -L option to search libc.a.
Reported by TAKEUCHI Yoji <[email protected]>.
* 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 <[email protected]>
* 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 <linux_emul.h>, instead
of <i386at/gpl/linux/linux_emul.h>.
* 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 <linuxdev/device-drivers.h>, instead
of <i386/device-drivers.h>.
* 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 <[email protected]>
* include/mach/multiboot.h: Contents were doubled.
1998-10-24 Roland McGrath <[email protected]>
* 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 <mach/machine/foo.h> 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 <[email protected]>
* include/mach/message.h: Use __typeof instead of typeof.
1998-09-06 Roland McGrath <[email protected]>
* kern/time_out.h: Include <mach/time_value.h> for time_value_t defn.
1998-07-19 Roland McGrath <[email protected]>
* mig: Subdirectory removed, now in separate dist.
Fri Apr 24 14:24:15 1998 Thomas Bushnell, n/BSG <[email protected]>
* i386/i386/pcb.c (thread_setstatus): Set STATE before validating
segment registers. Reported by UCHIYAMA Fasushi ([email protected]).
Fri Apr 24 13:19:40 1998 Thomas Bushnell n/BSG <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* COPYING: New file.
* Makefile.in (topfiles): Add COPYING.
Mon Jul 21 14:20:39 1997 Thomas Bushnell, n/BSG <[email protected]>
* kern/mach4.srv: Include <mach_pcsample.h> so the value of
MACH_PCSAMPLE is made available for mach4.defs.
Thu Jul 10 13:51:20 1997 Thomas Bushnell, n/BSG <[email protected]>
* Makefile.in (install): Use `ln -sf' instead of `-ln -s'.
Suggested by Marcus G. Daniels ([email protected]).
Thu Jun 26 13:48:31 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 <[email protected]>
* i386/i386/loose_ends.c (ovbcopy): Delete function. Suggested by
Matthew Wilcox ([email protected].)
Thu Jun 12 18:08:29 1997 Thomas Bushnell, n/BSG <[email protected]>
Version 1.1.3 released.
* version.c (version): Update to 1.1.3.
Wed Jun 11 20:16:47 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 <[email protected]>
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 <[email protected]>
* 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 <[email protected]>
* version.c (version): Update to version 1.1.2.
Fri May 23 10:08:48 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 ([email protected]).
Mon May 12 11:25:38 1997 Thomas Bushnell, n/BSG <[email protected]>
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
([email protected]).
Fri May 9 13:06:25 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile.in (enable_kdb): Use findstring instead of filter.
Reported by Marcus Daniels ([email protected]).
Fri May 2 12:43:46 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile.in: Delete duplicate rule for cross-mig.
Mon Apr 28 12:09:53 1997 Thomas Bushnell, n/BSG <[email protected]>
* Makefile.in (check): New target. Reported by
[email protected].
* 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 [email protected].
Wed Apr 23 14:35:44 1997 Miles Bader <[email protected]>
* ipc/ipc_entry.c [MACH_KDB]: Add include of <kern/task.h>.
Wed Apr 23 13:21:23 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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 ([email protected]).
Fri Apr 18 15:25:10 1997 Thomas Bushnell, n/BSG <[email protected]>
* configure.in: Add AC_PREREQ for version 2.12.
* i386/Drivers.in: Likewise.
Wed Apr 16 16:55:36 1997 Marcus G. Daniels <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* Makefile.in (cross-lexxer.o lexxer.o): Add pump-priming
dependency on cpu.h. Reported by Marcus G. Daniels
([email protected]).
* 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 ([email protected]).
* Makefile.in (./cross-mig): New rule.
(mkinstalldirs): Add $(libexecdir).
* configure.in: Recognize i686.
Reported by Marcus G. Daniels ([email protected]).
Mon Apr 14 11:50:45 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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.
* i386/Makefrag: Add rebuilding rules for configure subscript.
* i386/Makefrag: Fix up copyright notice.
* i386/Drivers.in: Likewise.
* Makefile.in: Likewise.
* Drivers.macros: Likewise.
* configure.in: Likewise.
* include/sys/time.h: New file, from include/mach/sa/sys/time.h.
* include/sys/reboot.h: New file, from include/mach/sa/sys/reboot.h.
* include/sys/ioctl.h: New file, from include/mach/sa/sys/ioctl.h.
* include/alloca.h: New file, from include/mach/sa/alloca.h.
* Makefile.in (other-sys-headers): Add time.h, ioctl.h, and reboot.h.
(other-mach-headers): New variable.
(mach-exec-headers): New variable.
(other-headers): New variable.
(installed-headers): Add mach-exec-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 <[email protected]>
* Makefile.in (dist): Repair rule.
(other-sys-headers): New variable.
(dist): Install $(other-sys-headers).
(INCLUDES): Remove -I$(srcdir)/include/mach/sa.
(rules for mig-related .d files): Include MiG-specific -I flags.
(mach-headers): Add inline.h.
* include/sys/types.h: New file, from include/mach/sa/sys/types.h.
Mon Mar 24 16:23:21 1997 Thomas Bushnell, n/BSG <[email protected]>
* version.c (version): Make that 1.0. Whee.
Fri Mar 21 15:50:09 1997 Thomas Bushnell, n/BSG <[email protected]>
* i386/i386at/gpl/linux/scsi/aha1740.c (aha1740_test_port): Try
and turn on PORTADDR_ENH before checking it.
* vm/vm_object.c (vm_object_cached_max): Increase to 200.
Thu Mar 20 12:33:06 1997 Thomas Bushnell, n/BSG <[email protected]>
* Makefile.in (dist): New target. Reorganized some vars
describing source.
* i386/Subdirs: New file.
* i386/Files: New file.
* version.c (version): Push back to 0.1.
* Makefile.in (cross_compiling, bindir, libexecdir): New
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.
* Makefile.in (%.h %_user.c): Depend on $(MIG) too.
(%_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 <[email protected]>
* 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.
Mon Mar 17 13:47:14 1997 Thomas Bushnell, n/BSG <[email protected]>
* i386/i386at/gpl/linux/scsi/hosts.c (scsi_init): Don't print out
gratuitious obnoxiousness.
* i386/i386at/gpl/linux/scsi/scsi.c (scsi_dev_init): Likewise.
* i386/i386at/gpl/linux/block/triton.c (ide_init_triton):
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.
(pcibios_init): Likewise.
* i386/i386at/gpl/linux/block/genhd.c (add_partition): Likewise.
* i386/i386at/gpl/linux/net/8390.c (ei_debug): Make default value
zero.
Wed Mar 12 14:50:46 1997 Thomas Bushnell, n/BSG <[email protected]>
* i386/i386at/com.c (comprobe): Turn off noisiness.
* i386/i386at/gpl/linux/linux_block.c (check_disk_change): Don't
print out gratuitous obnoxiousness.
(device_open): Likewise.
* kern/bootstrap.c (copy_bootstrap): Likewise.
(user_bootstrap): Likewise.
* i386/i386at/gpl/linux/block/genhd.c (msdos_partition): Likewise.
(osf_partition): Likewise.
(sun_partition): Likewise.
(check_partition): Likewise.
* i386/i386/pit.c (findspeed): Likewise.
* vm/vm_resident.c (vm_page_bootstrap): Likewise.
Mon Mar 10 15:04:47 1997 Thomas Bushnell, n/BSG <[email protected]>
* 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/device-drivers.h>.
* i386/i386at/i386at_ds_routines.c: Include
<i386/device-drivers.h>. 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
<i386/device-drivers.h>.
* 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.
* i386/bogus/com.h: Include <i386/device-drivers.h>.
Only turn on NCOM if CONFIG_MACH_COM is present.
Mon Mar 3 16:26:58 1997 Thomas Bushnell, n/BSG <[email protected]>
* include/mach/message.h (__mach_msg, __mach_msg_trap): Add decls.
Tue Feb 25 15:42:23 1997 Thomas Bushnell, n/BSG <[email protected]>
* i386/Makefrag (INCLUDES): Find `include' directory in new
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).
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.