--- Gnu-Mach/ChangeLog 2020/09/02 04:42:29 1.1.1.5 +++ Gnu-Mach/ChangeLog 2020/09/02 04:47:10 1.1.1.7 @@ -1,3 +1,11097 @@ +2015-04-10 Thomas Schwinge + + GNU Mach 1.5. + * version.m4 (AC_PACKAGE_VERSION): Set to 1.5. + * NEWS: Finalize for 1.5. + +2015-03-19 Samuel Thibault + + Give the Debian package name for the non-multilib libc.a + * Makefile.am (clib-routines.o): Mention the Debian libc6-dev:i386 package. + +2015-03-08 Samuel Thibault + + Remove spl debugging in Xen case + xen cli/sti doesn't use IF + + * i386/i386/spl.S [MACH_XEN]: Disable IF check. + +2015-03-05 Samuel Thibault + + Show odd number of ports + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Show odd number of ports. + +2015-02-26 Samuel Thibault + + Use printf_once instead of recoding it + * i386/i386at/kd_event.c: Call printf_once instead of recoding it. + * i386/i386at/kd_mouse.c: Likewise. + + Limit printing "queue full" messages + * i386/i386at/kd_event.c (kbd_enqueue): Print "queue full" warning only + once. + * i386/i386at/kd_mouse.c (mouse_enqueue): Likewise. + +2015-02-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: inherit the name of the parent task + * kern/task.c (task_create): Inherit the name of the parent task. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: specialize `copyinmsg' and `copyoutmsg' + Previously, `copyinmsg' was the same function as `copyin'. The former + is for messages, and the size of messages is a multiple of four. + Likewise for `copyoutmsg'. + + Provide a specialized version of both functions. This shaves off a + couple of instructions and improves our IPC performance. + + * i386/i386/locore.S (copyinmsg): New function. + (copyoutmsg): New function. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: drop needless instruction from `copyout' + * i386/i386/locore.S (copyout): Do not needlessly copy length to %eax + first. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: improve assert + Use the ternary operator to implement `assert' like it is done in the + glibc. The glibcs changelog does not mention the rationale behind + this change, but doing the same seems to improve our IPC performance. + + * kern/assert.h (assert): Define macro using the ternary operator. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix compiler warning + If the loop above completes at least one iteration, `i' will be larger + than zero. + + * linux/dev/glue/block.c (rdwr_full): Add assertion to appease the + compiler. + +2015-02-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: reduce the size of `struct thread' + Reduce the size of `struct thread' by twelve bytes making it fit into + exactly five cache lines (on 32-bit platforms). + + * kern/thread.h (struct thread): Group the state and all flags in a + bitfield. + (TH_EV_WAKE_ACTIVE, TH_EV_STATE): Provide macros that generate keys + for synchronization primitives like `thread_wakeup'. + * kern/thread.c (thread_halt, thread_dowait, thread_suspend): Use the + new keys instead of addresses of fields for the synchronisation. + * kern/ipc_sched.c (thread_handoff): Likewise. + * kern/sched_prim.c (thread_invoke, thread_dispatch): Likewise. + +2015-02-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: avoid #if 0ing out thread_collect_scan + Currently, `thread_collect_scan' does nothing because `pcb_collect' is + a nop. Its body is exempt from compilation by means of the + preprocessor. + + This is unfortunate as it increases the risk of bitrot, and we still + need to pay the price of rate-limiting thread_collect_scan. + + * kern/thread.c (thread_collect_scan): Drop #if 0 around the body. + * vm/vm_pageout.c (vm_pageout_scan): Do not call + `consider_thread_collect' and document why. + +2015-02-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: fix typo + * vm/vm_resident.c: Fix typo. + +2015-01-22 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: warn about more port management bugs + * ipc/mach_port.c (mach_port_destroy): Simplify expression. Reword warning. + (mach_port_deallocate): Likewise. + (mach_port_mod_refs): Also warn about errors when using this function. + +2015-01-02 Stefan Weil + + vm: Fix typo in comment (found by codespell) + + kern: Fix typos in comments (found by codespell) + + ipc: Fix typo in comment (found by codespell) + + include: Fix typos in comments (found by codespell) + + i386: Fix typos in comments (found by codespell) + + device: Fix typos in comments (found by codespell) + + Makefile.am: Fix typos and grammar in comment + + ddb: Fix typos in comments (found by codespell) + +2015-01-02 Samuel Thibault + + Handle kernel traps happening before starting userland + * i386/i386/trap.c (kernel_trap): When current_thread is null, assume that + we are in kernel land. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: gracefully handle bogus sample pc sequence number + If a sequence number larger than the sample control sequence number is + supplied, `nsamples' becomes negative. Handle this gracefully. + + * kern/pc_sample.c (get_sampled_pcs): Handle bogus sequence number. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: guard test code with `MACH_IPC_TEST' + * ipc/ipc_kmsg.h (ikm_mark_bogus): New macro. + (ipc_kmsg_rmqueue_first_macro): Use `ikm_mark_bogus'. + * ipc/ipc_kmsg.c (ipc_kmsg_rmqueue): Likewise. + +2014-12-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: tune size of cached kernel message buffers + The previous limit was 256 bytes. That seems a little crummy by + todays standards, and we are frequently sending bigger packets + (e.g. every RPC containing a string_t on Hurd). + + Use the page size for IKM_SAVED_KMSG_SIZE to make sure the page is + pinned to a single processor. + + * ipc/ipc_kmsg.h (IKM_SAVED_KMSG_SIZE): Define to `PAGE_SIZE'. + +2014-12-15 Samuel Thibault + + Make spl7 just clear IF instead of setting the PIC mask + * i386/i386/spl.S (spl7): Just set curr_ipl and cli. + (splx) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is cleared. + (splx): When staying at ipl7, do not enable interrupts. + (spl) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is cleared. + (spl): When new ipl is 7, branch to spl7. + * i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY): Save flags, and + restore them instead of blindly using sti. + +2014-12-11 Samuel Thibault + + Ship missing file + * Makefrag.am (EXTRA_DIST): Add kern/task_notify.cli. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add X_IMPORTS to ipc definitions + This makes it possible to inject imports. + + * include/mach/gnumach.defs: Make it possible to inject imports. + * include/mach/mach.defs: Likewise. + * include/mach/mach_host.defs: Likewise. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: provide notifications about new tasks + These notifications are sent to the port registered via + `register_new_task_notification' and provide a robust parental + relation between tasks to a userspace server. + + * Makefrag.am: Add task_notify.defs. + * include/mach/gnumach.defs: Add register_new_task_notification. + * include/mach/task_notify.defs: New file. + * kern/task.c (new_task_notification): New variable. + (task_create): Send new task notifications. + (register_new_task_notification): Add server function. + * kern/task_notify.cli: New file. + +2014-12-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + Retire procedure `old_mach_port_get_receive_status' + Retire the compatibility RPC `old_mach_port_get_receive_status' that + works like `mach_port_get_receive_status' but returns an + `old_mach_port_status' object that lacks the `mps_seqno' field. + + Do not remove the type yet, so we do not break anyones build. The RPC + stubs currently distributed with the glibc require it. + + * include/mach/mach_port.defs (old_mach_port_get_receive_status): Drop RPC. + * include/mach/mach_types.defs (old_mach_port_status_t): Drop type. + * include/mach/port.h (old_mach_port_status_t): Add note to remove + this for the 1.6 release. + * ipc/mach_port.c (old_mach_port_get_receive_status): Drop function. + +2014-12-07 Samuel Thibault + + Fix pthread_create warning on translator termination + This was due to task_terminate not actually properly suspending threads + before disable the task port, which was thus preventing pthread_create + from being able to create a stack. Thanks Gabriele Giacone for finding + out a reproducer of this. + + * kern/task.h (task_hold_locked): New declaration. + * kern/task.c (task_hold): Move the locked part of the code into... + (task_hold_locked): ... new function. + (task_terminate): Call task_hold_locked just before deactivating the + task. Call ipc_task_disable after waiting for threads to actually + suspend with task_dowait. + +2014-12-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: disable all counters by default + Make all five non-conditional counters conditional ones. Casual + checking revealed that the hits-to-miss ratio is excellent. + + * kern/counters.c: Make all counters conditional. + * kern/counters.h: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/sched_prim.c: Likewise. + +2014-11-28 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make `mach_port_t' payload-aware + Honor a new macro `MACH_PAYLOAD_TO_PORT' to inject a translation + function mapping payloads to port names in the definition of + `mach_port_t'. + + * include/mach/std_types.defs (mach_port_t): Honor + `MACH_PAYLOAD_TO_PORT'. + * include/device/device.defs (reply_port_t): Likewise. + * include/device/device_reply.defs (reply_port_t): Likewise. + * include/device/device_request.defs (reply_port_t): Likewise. + +2014-11-23 Samuel Thibault + + Fix programming PIT counter + * linux/dev/arch/i386/kernel/irq.c (init_IRQ): Properly mask 8 bits of + PIT counter. + +2014-11-21 David Michael + + Correct GCC's -Wformat-security issues + * linux/pcmcia-cs/clients/axnet_cs.c (axdev_init): Add a format string + literal where printk only has a single variable argument. + * linux/src/drivers/net/3c507.c (el16_probe1): Likewise. + * linux/src/drivers/net/3c509.c (el3_probe): Likewise. + * linux/src/drivers/net/3c515.c (init_module): Likewise. + (tc515_probe): Likewise. + * linux/src/drivers/net/ac3200.c (ac_probe1): Likewise. + * linux/src/drivers/net/apricot.c (apricot_probe): Likewise. + * linux/src/drivers/net/at1700.c (at1700_probe1): Likewise. + * linux/src/drivers/net/de4x5.c (de4x5_hw_init): Likewise. + * linux/src/drivers/net/de600.c (de600_probe): Likewise. + * linux/src/drivers/net/de620.c (de620_probe): Likewise. + * linux/src/drivers/net/depca.c (depca_hw_init): Likewise. + * linux/src/drivers/net/e2100.c (e21_probe1): Likewise. + * linux/src/drivers/net/eepro.c (eepro_probe1): Likewise. + * linux/src/drivers/net/eepro100.c (speedo_found1): Likewise. + * linux/src/drivers/net/eexpress.c (eexp_hw_probe): Likewise. + * linux/src/drivers/net/ewrk3.c (ewrk3_hw_init): Likewise. + * linux/src/drivers/net/fmv18x.c (fmv18x_probe1): Likewise. + * linux/src/drivers/net/hp-plus.c (hpp_probe1): Likewise. + * linux/src/drivers/net/hp.c (hp_probe1): Likewise. + * linux/src/drivers/net/lance.c (lance_probe1): Likewise. + * linux/src/drivers/net/ne.c (ne_probe1): Likewise. + * linux/src/drivers/net/pcnet32.c (pcnet32_probe1): Likewise. + * linux/src/drivers/net/seeq8005.c (seeq8005_probe1): Likewise. + * linux/src/drivers/net/smc-ultra.c (ultra_probe1): Likewise. + * linux/src/drivers/net/smc-ultra32.c (ultra32_probe1): Likewise. + * linux/src/drivers/net/wd.c (wd_probe1): Likewise. + +2014-11-16 Samuel Thibault + + Only set debug registers when they are used + * i386/i386/db_interface.c (zero_dr): New variable + (db_load_context): Do not set debug registers to zero when they are already + zero. + (db_dr): When kernel debug registers get zero, record that the debug + registers have been zeroed. + +2014-11-13 Samuel Thibault + + Add nodma options + Some very slow qemu instances would eventually trigger DMA timeouts, + let's give a way to disable DMA there, it does not actually slow down + operations anyway. + + * linux/src/drivers/block/ide.h (ide_drive_s): Add nodma field. + * linux/src/drivers/block/ide.c (do_identify): Do not call + dmaproc(ide_dma_check) when nodma is 1. + (ide_setup): Add nodma option. + +2014-11-12 Samuel Thibault + + Pass ide and hd kernel options to ide driver + * linux/dev/drivers/block/genhd.c: Include and + + (device_setup): Look for ide and hd options, and call ide_setup with + them. + * linux/src/drivers/block/ide.c (ide_setup) [MACH]: Parse hd[0-7] instead + of hd[a-h]. + +2014-11-10 Samuel Thibault + + Fix documentation for vm_map + doc/mach.texi (vm_map): Document that vm_map uses the address as a + starting hint even when anywhere is TRUE. + + Revert "Make vm_map really ignore `address' when `anywhere' is true" + This reverts commit 5ae510e35c54009626999a88f0f1cb34d6dfc94f. + +2014-11-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add a payload-aware intran mutator for device_t + * include/device/device_types.defs (device_t): Add a payload-aware + intran mutator. + + include: add a payload-aware intran mutator for notify_port_t + * include/mach/notify.defs (notify_port_t): Add a payload-aware intran + mutator. + + include: add a payload-aware intran mutator for memory_object_t + * include/mach/mach_types.defs (memory_object_t): Add a payload-aware + intran mutator. + * include/mach/memory_object.defs: Likewise in the inlined type + declarations. + +2014-11-03 Samuel Thibault + + Fix link refusal + * Makefile.am (clib-routines.o): Refuse to link only when multiarch is + detected. + +2014-11-03 Samuel Thibault + + Refuse to link against a libc with multiarch support + We don't have support for this yet. + + * Makefile.am (clib-routines.o): Check for the presence of + __init_cpu_features, and in such case refuse to continue. + +2014-11-02 Samuel Thibault + + Fix build when gcc avoids inlining + * ipc/ipc_port.h (ipc_port_flag_protected_payload, + ipc_port_flag_protected_payload_set, + ipc_port_flag_protected_payload_clear): Use static inline qualifier instead + of extern inline. + +2014-10-22 Samuel Thibault + + Revert "Make sure mig is available" + This reverts commit b28e05e203e0739fa5db59c5af378b29eea7a232. + +2014-10-10 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: restore section `Inherited Ports' + Previously, the section `Inherited Ports' was commented out. This was + done, as the functionality was unused by the Hurd. The functions + `mach_ports_register' and `mach_ports_lookup' were never removed, and + are exposed to user space. + + This patch brings the documentation back and adds a remark at the top, + that the section documents the original intentions for this interface. + + I chose bringing back the documentation over removing the + functionality because I like to make use of it as a method for service + discovery that is deliberately orthogonal to the way the service + lookup is usually done in the Hurd. This can be used to implement + robust low-level debugging facilities. + + * doc/mach.texi: Restore section `Inherited Ports'. + +2014-10-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + Add protected payloads to NEWS + + ipc: provide the protected payload in ipc_kmsg_copyout_header + * ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): If a protected payload is + set for the destination port, provide it in msgh_protected_payload. + * ipc/mach_msg.c (mach_msg_trap): Likewise in the fast paths. + * doc/mach.texi (Message Receive): Document message semantics with + protected payloads. + + include: define MACH_MSG_TYPE_PROTECTED_PAYLOAD + * include/mach/message.h: Define MACH_MSG_TYPE_PROTECTED_PAYLOAD. + (MACH_MSG_TYPE_LAST): Adjust accordingly. + * doc/mach.texi (Message Format): Document + MACH_MSG_TYPE_PROTECTED_PAYLOAD. + + include: add msgh_protected_payload to mach_msg_header_t + * include/mach/message.h (mach_msg_header_t): Add + msgh_protected_payload as a union with msgh_local_port. + * doc/mach.texi (Message Format): Document msgh_protected_payload. + + ipc: implement mach_port_{set,clear}_protected_payload + * include/mach/mach_port.defs: Add mach_port_{set,clear}_protected_payload. + * ipc/mach_port.c: Implement mach_port_{set,clear}_protected_payload. + * doc/mach.texi (Receive Rights): Document + mach_port_{set,clear}_protected_payload. + +2014-10-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: add protected payload + Add a field ip_protected_payload and a flag ip_has_protected_payload + to struct ipc_port. + + Clear the protected payload when a receive port is moved from one ipc + space to another. This is done to retain the old behavior of + mach_msg, so that a port name is sent in the msgh_local_port field. + If the new owner of that receive right wishes to use the protected + payload mechanism, it has to be explicitly set again. + + * ipc/ipc_port.h (struct ipc_port): Add field ip_protected_payload. + (ipc_port_set_protected_payload): Add function declaration. + (ipc_port_clear_protected_payload): Likewise. + (ipc_port_flag_protected_payload): Add accessor for the protected + payload flag. + (ipc_port_flag_protected_payload_set): Likewise. + (ipc_port_flag_protected_payload_clear): Likewise. + * ipc/ipc_port.c (ipc_port_init): Initialize protected payload. + (ipc_port_print): Print protected_payload. + (ipc_port_set_protected_payload): New function. + (ipc_port_clear_protected_payload): Likewise. + (ipc_port_destroy): Clear the payload when moving a receive port. + * ipc/ipc_right.c (ipc_right_copyin): Likewise. + (ipc_right_copyout): Likewise. + * ipc/ipc_object.c (ipc_object_copyin_from_kernel): Likewise. + * ipc/ipc_object.h (IO_BITS_PROTECTED_PAYLOAD): New bitmask. + (IO_BITS_OTYPE): Adjust accordingly. + +2014-09-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + ipc: use fast modulo operation in local hash table + * ipc/ipc_table.h: Document that table sizes must be powers of two. + * ipc/ipc_hash.c (IH_LOCAL_HASH): Use fast modulo operation. + + kern: silence compiler warning about uninitialized variable + * kern/slab.c (kmem_cache_compute_sizes): Initialize optimal_size and + assert that a size is selected. + + kern: fix type of recompute_priorities + * kern/sched_prim.c (recompute_priorities): Fix type. + * kern/sched_prim.h (recompute_priorities): Likewise. + +2014-09-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: create send rights as they are inserted at bootstrap time + Previously, it was impossible to hand e.g. the master device port to + more than one bootstrap task. Fix this by creating the send right as + it is inserted into the target task. + + * kern/bootstrap.c (bootstrap_create): Do not create the send rights + here... + (boot_script_insert_right): ... but here. + +2014-09-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + Update NEWS file + +2014-09-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: add support for ELF symbol tables + * ddb/db_elf.c: New file. + * ddb/db_elf.h: Likewise. + * Makefrag.am (libkernel_a_SOURCES): Add db_elf.{c,h}. + * ddb/db_sym.c (dummy_db_sym_init): New stub db_sym_init function. + (db_sym_switch): Add ELF functions. + * ddb/db_sym.h (SYMTAB_ELF): New macro. + (elf_db_sym_init): New declaration. + * i386/i386at/model_dep.c (c_boot_entry): Get ELF section header + information from the multiboot structure, and call elf_db_sym_init. + + ddb: add `show all tasks' command + * ddb/db_command.c (db_show_all_cmds): Add `tasks'. + * ddb/db_print.c (db_show_all_tasks): New function. + * ddb/db_print.h (db_show_all_tasks): New prototype. + +2014-09-17 Samuel Thibault + + Report DR6 to userland + * i386/i386/trap.c (user_trap): On T_DEBUG, record the content of dr6 in + PCB, and clear it. + +2014-09-06 Samuel Thibault + + Make vm_map really ignore `address' when `anywhere' is true + As vm_allocate does. + + * vm/vm_user.c (vm_map): When `anywhere' is true, set `address' to the + minimum address of the `target_map'. + +2014-09-01 Pietro Braione + + Fix printf warning + linux/src/drivers/net/sundance.c (start_tx): Fix format string according + to parameter. + +2014-08-30 Samuel Thibault + + Tune pageout parameters + This targets having always at least 8% free memory instead of just 1%. + This has shown improving buildd stability a lot. Also increase the + reserved amount to nowadays standards. + + * vm/vm_pageout.c (VM_PAGE_FREE_TARGET): Increase to 10%. + (VM_PAGE_FREE_MIN): Increase to 8%. + (VM_PAGE_FREE_RESERVED): Increase to 500 pages. + (VM_PAGEOUT_RESERVED_INTERNAL): Increase to 150 pages. + (VM_PAGEOUT_RESERVED_REALLY): Increase to 100 pages. + +2014-08-30 Samuel Thibault + + Increate the pageout thread priority + * vm/vm_pageout.c (vm_pageout): Set the priority to 0. + +2014-08-30 Samuel Thibault + + Bump NR_GRANT_PAGES + This has shown needed on buildds with several disks and network + interfaces. + + * xen/grant.c (NR_GRANT_PAGES): Increase from 4 to 8. + +2014-08-22 Samuel Thibault + + Fix computation + * i386/i386at/com.c (comintr): Fix computation of '@'. + +2014-08-22 Neal H. Walfield + + Even less magic-looking control value + * i386/i386at/com.c (comintr): Use 'A'-1 instead of '@'. + +2014-08-22 Justus Winter <4winter@informatik.uni-hamburg.de> + + Support invoking the debugger over the serial console + * i386/i386at/com.c (comintr): Invoke the debugger if ctrl-alt-d is + pressed. + * i386/i386at/com.h (kdb_kintr): Add declaration. + +2014-07-25 Samuel Thibault + + Drop debugging prints + * i386/i386at/acpi.c (grub_machine_acpi_get_rsdpv2): Drop debugging + prints. + +2014-07-06 Samuel Thibault + + Do not unmap page 0 when not needed + Since we need it to access some BIOS information, e.g. at ACPI shutdown. When + the kernel VM is not starting at 0, there is already nothing mapped there in + user tasks, anyway. + + * i386/i386at/model_dep.c (machine_init) [VM_MIN_KERNEL_ADDRESS != 0]: + Do not call pmap_unmap_page_zero. + * i386/intel/pmap.c (pmap_unmap_page_zero): Warn that unmapping page + zero may break some BIOS functions. + +2014-07-06 Samuel Thibault + + Document that io_map_cached leaks memory + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-07-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: use ACPI to power off the machine + This is a mostly verbatim copy of acpihalt.c from GRUB2 with a little + bit of glue code. + + * i386/Makefrag.am (libkernel_a_SOURCES): Add the new files. + * i386/grub/acpi.h: Verbatim copy from GRUB2. + * i386/grub/compiler.h: Likewise. + * i386/grub/cpu/io.h: Likewise. + * i386/grub/cpu/time.h: Likewise. + * i386/grub/cpu/types.h: Likewise. + * i386/grub/err.h: Likewise. + * i386/grub/misc.h: Likewise. + * i386/grub/mm.h: Likewise. + * i386/grub/symbol.h: Likewise. + * i386/grub/time.h: Likewise. + * i386/grub/types.h: Likewise. + * i386/i386at/acpi.c: Likewise. + * i386/i386at/acpihalt.c: Likewise. + (grub_acpi_halt): Map physical addresses. + * i386/i386at/acpihalt.h: New file. + * i386/grub/glue.h: Some glue macros. + * i386/grub/i18n.h: Stub out i18n. + * i386/i386at/grub_glue.c: Some glue code. + * i386/i386at/model_dep.c (halt_all_cpus): Use grub_acpi_halt. + +2014-07-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: add io_map_cached + io_map_cached is like io_map, but reuses the old mapping if it is + applicable. + + * i386/i386/io_map.c: Add io_map_cached. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: explain the floating point flag in kdb output + * doc/mach.texi (Kernel Debugger Commands): Explain the floating point + flag. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: remap some keys + As a convenience for the nice people using our debugger, remap some + keys to the readline-like shortcuts supported by dde. + + * i386/i386at/kd.c (kdcnmaygetc): Remap some keys. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: reformat the key map + * i386/i386at/kd.c (key_map): Remove superfluous newlines so that + every entry fits into one line. This way line numbers can be used as + an index into the map. + + ddb: use db_thread_stat to format the flags + * ddb/db_print.c (db_print_thread): Use db_thread_stat to format the + flags. + + ddb: print task names if available + * ddb/db_print.c (db_print_task): Print task name if available. + * i386/i386/db_interface.c (db_task_name): Likewise. + * i386/i386/db_machdep.h (DB_GNUMACH_TASK_NAME): Remove unused definition. + + kern: set the name of the kernel task to 'gnumach' + * kern/taks.c (task_init): Set the name of the kernel task to 'gnumach'. + +2014-06-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + device: fix net_rcv_msg-messages + Previously, all net_rcv_msg-messages sent by net_deliver were + malformed. It never was a problem in practice, since the messages are + not complex and thus the kernel does not try to parse the message. + + struct net_rcv_msg contains an additional field of type boolean_t. + This field has no associated type descriptor, so it must not be + included in the message. + + * device/net_io.c (net_deliver): Account for the extra field in the + msgh_size calculation. + +2014-05-27 Samuel Thibault + + Add missing memory clobber + * i386/i386/xen.h (mb, rmb, wmb): Add memory clobber. + +2014-05-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + Rewrite old-style #endif FOO directives + * i386/include/mach/i386/cthreads.h: Rewrite old-style #endif FOO + directives. + * include/device/tape_status.h: Likewise. + * include/mach/alert.h: Likewise. + * include/mach/boot.h: Likewise. + * include/mach/default_pager_types.defs: Likewise. + * include/mach/default_pager_types.h: Likewise. + * include/mach/multiboot.h: Likewise. + * include/mach/notify.defs: Likewise. + * include/mach_debug/pc_info.h: Likewise. + * kern/act.h: Likewise. + * kern/refcount.h: Likewise. + * kern/shuttle.h: Likewise. + +2014-05-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: fix the embedded type definitions in memory_object.defs + In order to use MIG translation functions to lookup memory objects, + preprocessor macros have been introduced into the definition of + memory_object_t in 50cc5152. + + The procedure definitions contain inlined type definitions in order to + change the type of the argument in question (i.e. to make it + polymorphic). The inline definitions however lack the destructor + function, leading to reference leaks when a reference is acquired in + the intran function. + + * include/mach/memory_object.defs: Add the destructor functions to the + inlined type definitions. + +2014-05-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: add "halt" command + * ddb/db_command.c (db_command_table): Add "halt" command. + * i386/i386/db_interface.h (db_halt_cpu): New declaration. + * i386/i386at/model_dep.c (db_halt_cpu): New function. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: make struct vm_map fit into a cache line + Currently, the size of struct vm_map is 68 bytes. By using a bit + field for the boolean flags, it can be made fit into a cache line. + + * vm/vm_map.h (struct vm_map): Use a bit field for the boolean flags + wait_for_space and wiring_required. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: fix MACHINE_SERVER_HEADER + Commit b6dab094 introduced a way to include the MIG-generated server + files for the machine specific interface in ipc_kobject.c. + + This broke out-of-tree builds. Here, 'machine' is a symlink to + '../i386/i386', it points into the source tree. The MIG-generated + files however are put in the build tree in i386/i386. + + * i386/i386/machine_routines.h (MACHINE_SERVER_HEADER): Fix path. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: include the MIG-generated server headers for MACHINE_SERVER + GNU MIG recently gained support for emitting x_server_routine + declarations in the generated server header file. Using this + declaration, the x_server_routine functions can be inlined into the + ipc_kobject_server function. + + * kern/ipc_kobject.c: Include the MIG-generated server headers for the + machine-dependent interfaces. + (ipc_kobject_server): Drop the simple declaration of + MACHINE_SERVER_ROUTINE. + * i386/i386/machine_routines.h (MACHINE_SERVER_HEADER): New + definition. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: do not guard the host_slab_info RPC with MACH_VM_DEBUG + Previously, the definition of the host_slab_info RPC was guarded with + MACH_VM_DEBUG, even though it is not at all concerned with the VM + subsystem. Furthermore, there was no "skip" directive for + host_slab_info. + + The function host_slab_info is guarded with MACH_DEBUG. The server + for the RPCs in mach_debug.defs is only used if MACH_DEBUG is + defined. There is no need to guard host_slab_info. + + * include/mach_debug/mach_debug.defs (host_slab_info): Unconditionally + include the RPC. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + Install the mach_debug header files + The task_set_name RPC introduced in 877a319c changed + include/mach/gnumach.defs to include mach_debug/mach_debug_types.defs. + Previously though, the debug headers were not installed. + + * Makefrag.am: Install the mach_debug header files. + +2014-04-30 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: fix the number of priorities + The number of priorities has been changed from 32 to 50 in + 6a234201081156e6d5742e7eeabb68418b518fad. + + * doc/mach.texi: Update accordingly. + +2014-04-25 Samuel Thibault + + Make sure mig is available + * configure.ac (MIG): Error out if MiG was not found. + +2014-04-13 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: set the name of tasks created during the bootstrap + * kern/bootstrap.c (boot_script_task_create): Set the name of newly + created tasks. + +2014-04-10 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: fix the definition of device_open + Previously, every userspace server implementing the device protocol + filtered the device definitions to replace the device_t type with + mach_port_send_t to make the device argument of device_open + polymorphic. Rather than doing that, which makes it impossible to use + translation functions, fix the definition of device_open. + + * include/device/device.defs (device_open): Redefine the device + argument to make it polymorphic unless a outran function is specified. + +2014-04-08 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the device_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + DEVICE_IMPORTS macro. This way, userspace servers can provide their + own translation functions. + + * include/device/device_types.defs: Honor DEVICE_IMPORTS. + (device_t): Make the translation mutable using preprocessor macros. + +2014-04-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the notify_port_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + NOTIFY_IMPORTS macro. This way, userspace servers can provide their + own translation functions. + + * include/mach/notify.defs: Honor NOTIFY_IMPORTS. + (notify_port_t): Make the translation mutable using preprocessor macros. + +2014-04-04 Marin Ramesa + + Convert from K&R to ANSI + Convert from K&R style function definitions to ANSI style + function definitions. + + * ddb/db_access.c: Convert function prototypes from K&R to ANSI. + * ddb/db_aout.c: Likewise. + * ddb/db_break.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_examine.c: Likewise. + * ddb/db_expr.c: Likewise. + * ddb/db_ext_symtab.c: Likewise. + * ddb/db_input.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_mp.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_run.c: Likewise. + * ddb/db_sym.c: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_trap.c: Likewise. + * ddb/db_variables.c: Likewise. + * ddb/db_watch.c: Likewise. + * device/blkio.c: Likewise. + * device/chario.c: Likewise. + * device/dev_lookup.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/loose_ends.c: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/phys.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386/user_ldt.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/kd_queue.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/rtc.c: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/read_fault.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/mach_debug.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/act.c: Likewise. + * kern/exception.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/lock_mon.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/machine.c: Likewise. + * kern/printf.c: Likewise. + * kern/priority.c: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_emulation.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread_swap.c: Likewise. + * kern/time_stamp.c: Likewise. + * kern/timer.c: Likewise. + * kern/xpr.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_debug.c: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_user.c: Likewise. + +2014-04-04 Samuel Thibault + + Fix prototype + * linux/dev/glue/block.c (device_set_status): Fix prototype. + +2014-04-04 Marin Ramesa + + Use explicit prototypes for struct dev_ops fields + * device/conf.h: Include , , . + Predefine struct io_req, io_req_t and io_return_t. + (dev_ops): Add explicit prototypes for d_open, d_close, d_read, d_write, + d_getstat, d_setstat, d_mmap, d_port_death. + (nulldev_open, nulldev_close, nulldev_read, nulldev_write, + nulldev_getstat, nulldev_setstat, nulldev_portdeath): Add prototypes. + (nomap): Fix prototype. + * device/dev_name.c (nulldev_open, nulldev_close, nulldev_read, + nulldev_write, nulldev_getstat, nulldev_setstat, nulldev_portdeath): New + functions. + (nomap): Fix prototype. + * device/ds_routines.c (dev_close): Pass 0 as flag parameter. + * device/kmsg.c (kmsgclose): Drop return value. + * device/kmsg.h (kmsgclose): Fix prototype. + * i386/i386at/com.c (comopen): Fix prototype. + (comclose): Fix prototype, drop return value. + (comread, comwrite): Fix prototype. + * i386/i386at/com.h (comopen, comclose, comread, comwrite): Fix + prototype. + * i386/i386at/conf.c (dev_ops): Use nulldev_open, nulldev_close, + nulldev_read, nulldev_write, nulldev_getstat, nulldev_setstat, + nulldev_portdeath where appropriate. + * i386/i386at/kd.c (kdclose, kdread, kdwrite, kdmmap): Fix prototype. + * i386/i386at/kd.h (kdclose, kdread, kdwrite, kdmmap): Likewise. + * i386/i386at/kd_event.c (kbdopen): Likewise. + * i386/i386at/kd_event.h (kbdopen): Likewise. + * i386/i386at/kd_mouse.c (mouseopen): Likewise. + * i386/i386at/kd_mouse.h (mouseopen): Likewise. + * i386/i386at/lpr.c (lpropen, lprclose, lprread, lprwrite): Likewise. + * i386/i386at/lpr.h (lpropen, lprclose, lprread, lprwrite): Likewise. + * i386/i386at/mem.c (memmmap): Likewise. + * i386/i386at/mem.h (memmmap): Likewise. + * i386/i386at/model_dep.c (timemmap): Likewise. + * i386/i386at/model_dep.h (timemmap): Likewise. + * kern/mach_clock.c (timeopen, timeclose): Likewise. + * kern/mach_clock.h: Include , predefine struct io_req and + io_req_t. + (timeopen, timeclose): Fix prototype. + +2014-03-28 Samuel Thibault + + Assume EGA/VGA card + CGA and MONO cards are more than hard to find nowadays, and some buggy BIOSes + claim running them nowadays... + + * i386/i386at/kd.c (kd_xga_init): Do not handle CGA and MONO cases any + more, which thus default to EGA/VGA. + +2014-03-28 Samuel Thibault + + Really default to EGA/VGA on unknown CMOS values + * i386/i386at/kd.c (kd_xga_init): Use CM_EGA_VGA behavior as default + case for unknown values of CMOS data. + +2014-03-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix formatting of multiboot modules + Previously, bootstrap_create would print the multiboot modules with + padding applied to the end of the line. As multiboot modules as used + by the Hurd span more than one line. This makes the list of modules + hard to read and it looks unclean, more like an accident. + Furthermore, it is not clear what the intend of this was, as the + padding is applied at the end of the line, with no further information + printed thereafter. + + * kern/bootstrap.c (bootstrap_create): Remove variable maxlen and len, + update printfs. + +2014-03-25 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: make the memory_object_t types translation functions mutable + Make the intran, outtran and destructor functions mutable using + preprocessor macros. Make it possible to inject imports using the + MEMORY_OBJECT_IMPORTS macro. This way, userspace servers can provide + their own translation functions. + + * include/mach/mach_types.defs (memory_object_t): Make the translation + mutable using preprocessor macros. + * include/mach/memory_object.defs: Likewise for the inlined type declarations. + Honor MEMORY_OBJECT_IMPORTS. + * include/mach/memory_object_default.defs: Likewise. + +2014-03-22 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-03-22 Samuel Thibault + + Fix overflow + We were filling much more than the mapwindows array, thus overwriting in + at least debugger variables. + + * i386/intel/pmap.c (pmap_bootstrap): Make sure to limit mapwindows + initialization within PMAP_NMAPWINDOWS. + +2014-03-20 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: fix error handling + Previously, the error KERN_RESOURCE_SHORTAGE was not properly + propagated. + + Found using the Clang Static Analyzer. + + * xen/block.c (device_open): Fix error handling, remove unused label. + * xen/net.c (device_open): Likewise. + +2014-03-20 Samuel Thibault + + Only complain once per boot about Xen console smash + * xen/console.c (hypputc): Make `complain' variable static. + +2014-03-17 Samuel Thibault + + Increase possible number of AHCI devices to 8 + by reducing possible number of partitions to 32. + + * linux/dev/drivers/block/ahci.c (MAX_PORTS): Set to 8. + (PARTN_BITS): Set to 5. + +2014-03-03 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-03-03 Samuel Thibault + + Keep two virtual pages as mapping windows to access physical memory + PCI devices expose their memory etc. way beyond last_phys_addr. Userland + drivers opening /dev/mem need to open those too, even if phystokv() will + not work for them. + + * i386/intel/pmap.h (pmap_mapwindow_t): New type. + (pmap_get_mapwindow, pmap_put_mapwindow): New prototypes. + (PMAP_NMAPWINDOWS): New macro. + * i386/intel/pmap.c (mapwindows): New array. + (pmap_get_mapwindow, pmap_put_mapwindow): New functions. + (pmap_bootstrap, pmap_virtual_space): Reserve virtual pages for the mapping + windows. + * i386/i386/phys.c: Include + (INTEL_PTE_W, INTEL_PTE_R): New macros + (pmap_zero_page, pmap_copy_page, copy_to_phys, copy_from_phys): Use + `pmap_get_mapwindow' to temporarily map physical pages beyond last_phys_addr. + +2014-02-26 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix mig_strncpy + Previously, the function mig_strncpy would always zero-terminate the + destination string. Make mig_strncpy behave like mig_strncpy and + strncpy in the glibc. Also fix the implementation of mig_strncpy to + return the length of the written string to align the implementation + with the declaration in include/mach/mig_support.h. + + * kern/ipc_mig.c (mig_strncpy): Do not zero-terminate the destination + string. Return length of destination string. + +2014-02-23 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + AHCI driver cleanups + * linux/dev/drivers/block/ahci.c (struct port): Add id and is_cd fields. + (ahci_end_request): Only print error if quiet flag of the request is not + set. + (ahci_do_port_request): Upgrade sector parameter to 64 bit. Include + those bits in the LBA48 request. + (ahci_do_request): Upgrade sector count to 64bit. Only print errors if + quiet flag of the request is not set. + (ahci_probe_port): Move identify code... + (ahci_identify): ... to new function. Handle WIN_PIDENTIFY case to + recognize ATAPI devices. + (ahci_probe_port): Also try WIN_PIDENTIFY command. + (ahci_geninit): Avoid checking partition table on empty devices. + +2014-02-19 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: skip routines related to migrating threads + * include/mach/mach_port.defs: Skip the routines mach_port_set_rpcinfo + and mach_port_create_act if MIGRATING_THREADS is not defined. + +2014-02-12 Samuel Thibault + + Reduce kmem_map to make room for kentry_data_size + * kern/slab.c (KMEM_MAP_SIZE): Decrease from 128MiB to 96MiB. + +2014-02-10 Samuel Thibault + + Make open return ENXIO on missing CD-ROM + * linux/src/drivers/block/ide-cd.c (ide_cdrom_open): Return -ENXIO when + CD sense failed. + + Add quiet flag to CD I/O + * linux/src/drivers/block/ide-cd.c (cdrom_queue_packet_command): Add `quiet' + parameter, copied into the request. + (cdrom_decode_status): Do not print I/O error when `quiet' field of + request is non-zero. + (cdrom_end_request): Do not print sense results when `quiet' field of + request is non-zero. + (cdrom_check_status, cdrom_read_capacity, cdrom_read_tocentry): Pass 1 to + `cdrom_queue_packet_command''s `quiet' parameter. + (cdrom_lockdoor, cdrom_eject, cdrom_pause, cdrom_startstop, + cdrom_read_subchannel, cdrom_mode_sense, cdrom_mode_select, + cdrom_play_lba_range_1, cdrom_read_block, cdrom_load_unload, + ide_cdrom_ioctl): Pass 0 to `cdrom_queue_packet_command''s `quiet' parameter. + + Add missing initialization + * linux/src/drivers/block/ide.c (ide_init_drive_cmd): Initialize `quiet' + field of request to 0; + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-02-10 Samuel Thibault + + Add quiet flag to block I/O + This avoids grub & such making Mach print flurries of floppy errors. + + * linux/dev/include/linux/blkdev.h (request): Add `quiet' field. + * linux/dev/include/linux/blk.h (end_request): Print I/O error only if + the `quiet' field of the request is 0. + * linux/dev/include/linux/fs.h (ll_rw_block): Add `quiet' parameter. + * linux/dev/glue/block.c (ll_rw_block): Add `quiet' parameter, copied into + the request. + (bread, rdwr_partial, rdwr_full): Pass 0 to `ll_rw_block''s `quiet' parameter. + * linux/dev/drivers/block/floppy.c (floppy_revalidate): Pass 1 to + `ll_rw_block''s `quiet' parameter. + +2014-02-06 Richard Braun + + vm: trigger garbage collection on kernel memory pressure + In addition to physical pages, the slab allocator also consumes kernel + virtual memory, so reclaim pages on failure to allocate from a kernel map. + This method isn't foolproof but helps alleviate fragmentation. + + * vm/vm_kern.c (kmem_alloc): Call slab_collect and retry allocation + once on failure. + (kmem_realloc): Likewise. + (kmem_alloc_wired): Likewise. + (kmem_alloc_wired): Likewise. + (kmem_alloc_aligned): Likewise. + +2014-02-05 Samuel Thibault + + Remove duplicate typedef + * device/net_io.c (net_rcv_port_t, net_hash_entry_t, net_hash_header_t): + Remove duplicate typedefs. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + doc: document task_set_name + * doc/mach.texi (Task Information): Document the new task_set_name + procedure. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add task_set_name + task_set_name sets the name of a task. This is a debugging aid. The + name will be used in error messages printed by the kernel. + + * include/mach/gnumach.defs (task_set_name): New procedure. + +2014-02-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: implement task_set_name + task_set_name sets the name of a task. This is a debugging aid. The + name will be used in error messages printed by the kernel. + + * kern/task.c (task_set_name): New function. + * kern/task.h (task_set_name): New declaration. + +2014-02-04 Samuel Thibault + + Fix comstart when the queue is empty + Found by Coverity + + * i386/i386at/com.c (comstart): Make `nch' an int. When `getc' returns + -1, just return. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity + + * i386/i386/user_ldt.c (i386_get_ldt): Fetch `pcb' field of `thread' + only after looking for `thread' being NULL. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + * vm/vm_kern.c (projected_buffer_deallocate): Look for `map' being NULL + or kernel_map before locking it. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity + + * i386/i386/db_trace.c (db_find_kthread): Handle case when task is NULL. + +2014-02-04 Samuel Thibault + + Fix potential NULL dereference + Found by Coverity. + + * i386/i386at/com.c (comopen): On com_reprobe() returning success, check + for `isai' again. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: fix buffer size + Previously, only strlen(device_name) bytes were allocated, missing one + byte for the terminating zero. + + * xen/block.c (hyp_block_init): Fix buffer size. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + ddb: safely copy symbol names into the symtab structure + Use strncpy instead of strcpy to copy the name of a symbol into the + symtab structure. Make sure that the string is properly terminated. + + Found using Coverity. + + * ddb/db_sym.c (db_add_symbol_table): Use strncpy instead of strcpy, + ensure string termination. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: make kmem_error panic + The slab allocator relies on the fact that kmem_cache_error does not + return. Previously, kmem_error was using printf. Use panic instead. + + Found using the Clang Static Analyzer. + + * kern/slab.c (kmem_error): Use panic instead of printf. + +2014-02-04 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: use kmem_warn instead of kmem_error in kmem_cache_error + * kern/slab.c (kmem_cache_error): Use kmem_warn instead of kmem_error + to print the cache name and its address. + +2014-02-04 Samuel Thibault + + Fix FPU state copy size + * i386/i386/fpu.c (fpu_set_state, fpu_get_state): Fix size of + `user_fp_regs' access. + + Make empty while loops more prominent + * i386/i386at/kd.c (kdintr, kd_senddata, kd_sendcmd, kd_getgata, + kd_cmdreg_read, kd_cmdreg_write, kd_mouse_drain): Move semi colon of + empty while loops on a single line to make it more visible. + +2014-02-04 Samuel Thibault + + Fix FPU state access + Found by coverity. + + * i386/i386/fpu.c (fpu_set_state, fpu_get_state): Fix out of bound + `user_fp_regs' access. + +2014-02-04 Samuel Thibault + + Fix typo + * i386/i386at/kd_mouse.c (mouseopen): Fix typo. + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2014-02-04 Samuel Thibault + + Add missing break + Found by Coverity + + * i386/i386at/kd_mouse.c (mouseopen): Add missing break. + +2014-02-01 Justus Winter <4winter@informatik.uni-hamburg.de> + + include: add a fixed-size string type for debugging purposes + * include/mach/debug.defs: New file. + * include/mach/debug.h: Likewise. + + ipc: use the name of the task for error messages + * ipc/mach_port.c (mach_port_destroy): Use the name of the task for + error messages. + (mach_port_deallocate): Likewise. + + kern: add a name field to struct task + * kern/task.c (task_create): Initialize name with the address of the task. + * kern/task.h (TASK_NAME_SIZE): New definition. + (struct task): Add field name. + + kern: add snprintf + * kern/printf.c (snprintf): New function. + * kern/printf.h (snprintf): New declaration. + +2014-01-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: include the mig-generated server headers in ipc_kobject.c + GNU MIG recently gained support for emitting x_server_routine + declarations in the generated server header file. Using this + declaration, the x_server_routine functions can be inlined into the + ipc_kobject_server function. + + * kern/ipc_kobject.c: Include the mig-generated server headers. + +2014-01-16 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: remove the declaration of memory_object_create_proxy + It is not clear to me why the declaration was put there in the first + place. It is not used anywhere, and it conflicts with the declaration + generated by mig. + + * vm/memory_object_proxy.h (memory_object_create_proxy): Remove declaration. + +2014-01-09 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: align kmem_cache objects using __cacheline_aligned + * kern/slab.h (struct kmem_cache): Align kmem_cache objects using + __cacheline_aligned. + + include: add new file for cache-related definitions + * include/cache.h (__cacheline_aligned): This macro can be used to + align statically allocated objects so that they start at a cache line. + +2014-01-06 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: optimize the layout of struct kmem_cache + * kern/slab.h (struct kmem_cache): Reorder the fields so that all hot + fields are within the first cache line. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: explain the significance of the chosen length + * kern/slab.h (KMEM_CACHE_NAME_SIZE): Explain the significance of the + chosen length. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix bit tests + The pattern is !x&y. An expression of this form is almost always + meaningless, because it combines a boolean operator with a bit + operator. In particular, if the rightmost bit of y is 0, the result + will always be 0. + + Fixed using coccinelle. + + // !x&y combines boolean negation with bitwise and + // + // Confidence: High + // Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU. GPLv2. + // URL: http://www.emn.fr/x-info/coccinelle/rules/notand.html + // Options: + + @@ expression E1,E2; @@ + ( + !E1 & !E2 + | + - !E1 & E2 + + !(E1 & E2) + ) + + * linux/src/drivers/scsi/FlashPoint.c: Fix bit tests. + +2014-01-05 Justus Winter <4winter@informatik.uni-hamburg.de> + + linux: fix bit tests + The pattern is !x&y. An expression of this form is almost always + meaningless, because it combines a boolean operator with a bit + operator. In particular, if the rightmost bit of y is 0, the result + will always be 0. + + Fixed using coccinelle. + + // !x&y combines boolean negation with bitwise and + // + // Confidence: High + // Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU. GPLv2. + // URL: http://www.emn.fr/x-info/coccinelle/rules/notand.html + // Options: + + @@ expression E; constant C; @@ + ( + !E & !C + | + - !E & C + + !(E & C) + ) + + * linux/src/drivers/net/tlan.c: Fix bit tests. + * linux/src/drivers/scsi/AM53C974.c: Likewise. + * linux/src/drivers/scsi/FlashPoint.c: Likewise. + * linux/src/drivers/scsi/NCR5380.c: Likewise. + * linux/src/drivers/scsi/t128.c: Likewise. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: make struct kmem_cache fit into two cache lines + Previously, the size of struct kmem_cache was 136 bytes, just eight + bytes larger than 128 bytes, which is typically two cache lines on + today's CPUs. + + By reducing the size of the name field which holds a human-readable + description by eight bytes to 24 bytes, the struct kmem_cache can be + made fit into two cache lines. This change should not affect the + usefulness of this field. For reference, the length of the largest + hard-coded name is 17. + + * kern/slab.h (KMEM_CACHE_NAME_SIZE): Define to 24. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: reduce the size of struct task + * kern/task.h (struct task): Reduce the size of struct task by + 2 * sizeof boolean_t by using a bit field for the boolean flags. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: reduce the size of struct vm_page + Previously, the bit field left 31 bits unused. By reducing the size + of wire_count by one bit, the size of the whole struct is reduced by + four bytes. + + * vm/vm_page.h (struct vm_page): Reduce the size of wire_count to 15 + bits. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: merge the two bit fields in struct vm_page + * vm/vm_page.h (struct vm_page): Merge the two bit fields. + +2014-01-03 Justus Winter <4winter@informatik.uni-hamburg.de> + + vm: remove NS32000-specific padding from struct vm_page + Apparently, the NS32000 was a 32-bit CPU from the 1990ies. The string + "ns32000" appears nowhere else in the source. + + * vm/vm_page.h (struct vm_page): Remove NS32000-specific padding. + +2014-01-02 Samuel Thibault + + Make sure cursor is initialized + * i386/i386at/kd.c (kd_xga_init): Add start, stop variables, read them + from CRT registers, make sure the cursor is enabled and is not reduced + to 0, and write them back to CRT registers. + * i386/i386at/kd.h (C_START, C_STOP): New macros. + +2014-01-01 Marin Ramesa + + i386/include/mach/i386/mach_i386_types.h: add comments after else and endif + * i386/include/mach/i386/mach_i386_types.h (MACH_KERNEL): Add comments after else and endif. + + Add comment after endif + * i386/i386/io_perm.h (_I386_IO_PERM_H_): Add comment after endif. + +2013-12-20 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-12-20 Marin Ramesa + + Mark pure functions with attribute pure + + kern/strings.c (strlen): mark with attribute pure + * kern/strings.c (strlen): Mark with attribute pure. + + ddb/db_watch.c (db_watchpoint_cmd): remove forward declaration + * ddb/db_watch.c (db_watchpoint_cmd) (db_option): Remove forward declaration. + +2013-12-20 Marin Ramesa + + Declare void argument lists (part 2) + Declare void argument lists that were not declared in the first + part of this patch and + + * kern/sched_prim.h (recompute_priorities): Fix prototype. + * kern/startup.c (setup_main) (recompute_priorities): Fix call. + +2013-12-18 Justus Winter <4winter@informatik.uni-hamburg.de> + + i386: add missing includes + * i386/i386at/kd_event.h: Add missing includes. + +2013-12-17 Marin Ramesa + + kern: avoid the casts in enqueue_head() and enqueue_tail() + * kern/eventcount.c (simpler_thread_setrun) (enqueue_head) (th): Avoid the cast. + * kern/thread.c (thread_halt_self) (enqueue_tail) (thread): Likewise. + * kern/thread_swap.c (thread_swapin) (enqueue_tail) (thread): Likewise. + + Mark functions that don't return with attribute noreturn + + vm: qualify pointers whose dereferenced values are constant with const + + util: qualify pointers whose dereferenced values are constant with const + + kern: qualify pointers whose dereferenced values are constant with const + + ipc: qualify pointers whose dereferenced values are constant with const + + i386: qualify pointers whose dereferenced values are constant with const + + device: qualify pointers whose dereferenced values are constant with const + + Cleanup of the copyin() and copyout() calls + * device/ds_routines.c (device_write_trap) (copyin) (data): Cast to (void *). Argument is an address. + (device_write_trap) (copyin) (io_data): Don't cast. + (device_writev_trap) (copyin) (iovec, stack_iovec): Likewise. + (device_writev_trap) (copyin) (data, p): Cast to (void *). Arguments are addresses. + * kern/bootstrap.c (build_args_and_stack) (copyout) (arg_count, string_pos, zero): Don't cast. + * kern/ipc_mig.c (syscall_vm_map) (copyin, copyout) (addr, address): Likewise. + (syscall_vm_allocate) (copyin, copyout) (addr, address): Likewise. + (syscall_task_create) (copyout) (name, child_task): Likewise. + (syscall_mach_port_allocate) (copyout) (name, namep): Likewise. + * kern/time_stamp.c (copyout) (temp, tsp): Likewise. + +2013-12-17 Marin Ramesa + + kern/sched_prim.h: remove unnecessary __GNUC__ #ifdef + Attribute noreturn is used irrespective of __GNUC__. Remove + unnecessary #ifdef. + + * kern/sched_prim.h [__GNUC__]: Remove #ifdef. + +2013-12-17 Justus Winter <4winter@informatik.uni-hamburg.de> + + xen: add missing includes + * xen/console.h: Add missing includes. + +2013-12-16 Marin Ramesa + + kern: quiet GCC warnings about set but unused variables + * kern/lock.h (simple_lock_data_empty): Define. + (decl_simple_lock_data, simple_unlock): Likewise. + * kern/sched_prim.c (lock): Declare. + [MACH_SLOCKS]: Remove #ifs. + * kern/task.c (task_lock, task_unlock): Remove address operator. + + Quiet GCC warning about uninitialized variable + * ddb/db_command.h (db_error): Mark with attribute noreturn. + * i386/i386/setjmp.h (_longjmp): Likewise. + +2013-12-15 Marin Ramesa + + i386/i386/db_trace.c: use (long *) instead of an (int *) + * i386/i386/db_trace.c (db_lookup_i386_kreg) (kregp): Use (long *) instead of an (int *). + + device/dev_pager.c (device_pager_data_request_done): cast to size_t instead to unsigned + * device/dev_pager.c (device_pager_data_request_done) (memset) (io_residual): Cast to size_t instead to unsigned. + +2013-12-15 Marin Ramesa + + device/dev_pager.c: remove unnecessary casts + Variable pager is already of ipc_port_t type. + + * device/dev_pager.c: Remove unnecessary casts. + +2013-12-15 Marin Ramesa + + kern/sched_prim.c: avoid casts + Avoid the casts by passing the address of the links thread + structure member to enqueue_tail(). + + * kern/sched_prim.c: Avoid casts. + +2013-12-15 Marin Ramesa + + ddb: qualify pointers whose dereferenced values are constant with const + +2013-12-15 Samuel Thibault + + Fix gcc signedness warning + Thanks Marin Ramesa and Richard Braun for investigating. + + * i386/i386at/kd.c (kdintr): Make `char_idx' and `max' unsigned. + (kdstate2idx): Make function take and return unsigned ints for the state. + * i386/i386at/kd.h (kdstate2idx): Likewise. + +2013-12-15 Marin Ramesa + + Type definition + * i386/i386/ast_check.c (init_ast_check, cause_ast_check): Define return type. + * i386/i386/pic.c (intnull, prtnull): Define argument types. + * i386/i386at/com.c (compr_addr): Likewise. + (compr): Likewise. + (compr_addr): Fix printf format. + * i386/i386at/kd.c (kd_cmdreg_write, kd_kbd_magic): Define argument types. + * i386/i386at/kd_mouse.c (init_mouse_hw): Likewise. + * ipc/mach_port.c (sact_count): Define return type. + * ipc/mach_rpc.c (mach_port_rpc_sig): Define argument types. + * kern/act.c (dump_act): Define return type. + * kern/lock_mon.c (simple_lock, simple_lock_try, simple_unlock, lip, lock_info_sort, lock_info_clear, print_lock_info): Define return type. + (time_lock): Define return type and argument type. + * kern/timer.c (time_trap_uexit): Define argument type. + +2013-12-15 Marin Ramesa + + ddb/db_expr.c (db_mult_expr): initialize lhs + Initialize lhs to zero to avoid uninitialized usage in db_unary(). + + * ddb/db_expr.c (db_mult_expr) (lhs): Initialize to zero. + +2013-12-15 Marin Ramesa + + ddb/db_break.c (db_delete_cmd): remove unnecessary initialization + Now that we have returns there are no more warnings from GCC about + uninitialized variable. Remove unnecessary initialization of variable + bkpt. + + * ddb/db_break.c (db_delete_cmd) (bkpt): Remove unnecessary initialization. + +2013-12-15 Marin Ramesa + + ddb/db_break.c (db_find_breakpoint_here): remove unnecessary casts + Variable addr and member address are already of db_addr_t type which + is type defined as vm_offset_t. + + * ddb/db_break.c (db_find_breakpoint_here) (DB_PHYS_EQ) (addr, address): Remove unecessary casts. + +2013-12-15 Marin Ramesa + + vm/vm_resident.c (vm_page_print): remove unnecessary casts + Members offset and phys_addr are of vm_offset_t types. + + * vm/vm_resident.c (vm_page_print) (offset, phys_addr): Remove unnecessary casts. + +2013-12-15 Marin Ramesa + + vm/vm_kern.c (kmem_submap): remove unnecessary cast + The return value from vm_map_min() is already of vm_offset_t type. + + * vm/vm_kern.c (kmem_submap) (addr): Remove unnecessary cast. + +2013-12-15 Marin Ramesa + + i386/i386/ldt.c: remove forward declaration + * i386/i386/ldt.c (syscall): Remove forward declaration. + Include locore.h. + * i386/i386/locore.h (syscall): Add prototype. + +2013-12-15 Marin Ramesa + + kern/mach_clock.c: update comment + This is mach_clock.c, not clock_prim.c. + + * kern/mach_clock.c: Update comment. + +2013-12-15 Marin Ramesa + + Declare void argument lists + +2013-12-11 Marin Ramesa + + i386/i386at/kd_mouse.c (kd_mouse_open): remove forward declaration + * i386/i386at/kd_mouse.c (kd_mouse_open) (kdintr): Remove forward declaration. + + i386/i386at/kd.c (kdinit): remove forward declaration + * i386/i386at/kd.c (kdinit) (kd_xga_init): Remove forward declaration. + * i386/i386at/kd.h (kd_xga_init): Add prototype. + +2013-12-11 Marin Ramesa + + i386/i386at/kd.c (kdmmap): remove unnecessary cast + Variable off is already an unsigned int. + + * i386/i386at/kd.c (kdmmap) (off): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + i386/i386at/kd.c: remove forward declarations + * i386/i386at/kd.c (kd_getdata, state2leds, kdstart, kdstop): Remove forward declarations. + * i386/i386at/kd.h (kd_getdata, state2leds, kdstart, kdstop): Add prototypes. + Include device/tty.h. + +2013-12-11 Marin Ramesa + + i386/i386/db_trace.c (db_i386_stack_trace): remove unnecessary cast + Argument to INKERNEL() is already cast to vm_offset_t in the macro itself. + + * i386/i386/db_trace.c (db_i386_stack_trace) (INKERNEL) (callpc): Don't cast to unsigned long. + (db_i386_stack_trace) (INKERNEL) (frame): Likewise. + +2013-12-11 Marin Ramesa + + i386/i386/db_trace.c: remove forward declaration + * i386/Makefrag.am: List i386/i386/db_trace.h. + * i386/i386/db_trace.c: Include machine/db_trace.h. + (db_i386_stack_trace): Remove forward declaration. + * i386/i386/db_trace.h: New file. + Add copyright. + [_I386_DB_TRACE_H_]: Add ifndef. + (i386_frame): Declare forward. + (db_i386_stack_trace): Add prototype. + +2013-12-11 Marin Ramesa + + ipc/mach_debug.c (mach_port_kernel_object): remove unnecessary cast + Member ip_kobject is of type vm_offset_t. + + * ipc/mach_debug.c (mach_port_kernel_object) (ip_kobject): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + ipc/mach_debug.c (mach_port_kernel_object): remove unnecessary cast + Return value from ip_kotype is an unsigned int. + + * ipc/mach_debug.c (mach_port_kernel_object) (ip_kotype): Remove unnecessary cast. + +2013-12-11 Marin Ramesa + + Cleanup of the memcpy(), memmove(), memcmp() and memset() calls + Addresses were cast to (void *). Pointers uncasted. + + * device/ds_routines.c (ds_read_done) (memset) (start_sent): Cast to (void *) instead to (char *). Argument is an address. + (ds_read_done) (memset) (end_data): Likewise. + * i386/i386/pcb.c (thread_getstatus) (memcpy) (pm): Don't cast. Argument is a pointer. + (thread_getstatus) (memcpy) (iopb): Likewise. + * i386/i386at/immc.c (immc_cnputc) (memmove): Cast first argument to (void *). Argument is an address. + (immc_cnputc) (memmove): Cast second argument to (void *). Argument is an address. + (immc_cnputc) (memset): Cast first argument to (void *). Argument is an address. + * i386/i386at/model_dep.c (i386at_init) (memcpy) (phystokv): Cast to (void *) instead to (char *). Argument is an address. + * i386/intel/pmap.c (pmap_init) (memset) (addr): Likewise. + * ipc/mach_debug.c (mach_port_space_info) (memset) (table_addr + size_used): Likewise. + (mach_port_space_info) (memset) (tree_addr + size_used): Likewise. + * kern/host.c (host_processor_sets) (memcpy) (newaddr): Likewise. + (host_processor_sets) (memcpy) (addr): Likewise. + * kern/xpr.c (xprbootstrap) (memset) (addr): Likewise. + * vm/vm_debug.c (mach_vm_object_pages) (memset) (addr + size_used): Likewise. + +2013-12-10 Marin Ramesa + + device/subrs.c: use io_req_t instead of struct buf + Struct buf is not defined. Use io_req_t instead of it. + + * device/subrs.c (harderr) (bp): Change name to ior and use io_req_t as type instead of (struct buf *). + (harderr) (minor): Use io_unit instead of b_dev. + (harderr): Use io_recnum instead of b_blkno. + (gateblk): Use io_req_t as return value instead of (struct buf *). + (brelse) (bp): Change name to ior and use io_req_t as type instead of (struct buf *). + (brelse) (ior): Remove variable. + +2013-12-10 Marin Ramesa + + device/net_io.c: remove forward declarations + * device/net_io.c (bpf_hash, net_do_filter, bpf_do_filter, hash_ent_remove, net_free_dead_infp, net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info, bpf_match): Remove forward declarations. + * device/net_io.h (net_rcv_port, net_hash_entry, net_hash_header): Declare forward. + (bpf_hash, net_do_filter, bpf_do_filter, hash_ent_remove, net_free_dead_infp, net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info, bpf_match): Add prototypes. + + device/dev_pager.c: remove forward declarations + * device/dev_pager.c (device_pager_data_request_done, device_pager_data_write_done): Remove forward declarations. + * device/dev_pager.h (device_pager_data_request_done, device_pager_data_write_done): Add prototypes. + + device/dev_pager.c: remove forward declaration + * Makefrag.am: Include device/blkio.h. + * device/blkio.h: New file. + Add copyright. + [_DEVICE_BLKIO_H_]: Add ifndef. + (block_io_mmap): Add prototype. + * device/dev_pager.c: Include device/blkio.h. + (block_io_mmap): Remove forward declaration. + +2013-12-10 Marin Ramesa + + device/dev_pager.c (device_pager_data_request_done): remove unnecessary cast + The argument to trunc_page() is already cast to vm_offset_t in the + macro itself. + + * device/dev_pager.c (device_pager_data_request_done) (trunc_page) (io_data): Don't cast to vm_offset_t. + +2013-12-10 Marin Ramesa + + device/dev_pager.c (device_pager_data_request): cast to (void *) instead to (char *) + * device/dev_pager.c (device_pager_data_request) (vm_object_page_map) (ds): Cast to (void *) instead to (char *). + + device/dev_pager.c (device_pager_data_request): remove forward declaration + * Makefrag.am: Include device/dev_pager.h. + * device/dev_pager.c: Likewise. + (device_map_page): Remove forward declaration. + * device/dev_pager.h: New file. + Add copyright. + [_DEVICE_DEV_PAGER_H_]: Add ifndef. + (device_map_page): Add prototype. + + device/cons.c: fix argument list + * device/cons.c (romgetc, romputc): Fix argument list. + +2013-12-10 Marin Ramesa + + device/cirbuf.c (cb_free): use vm_size_t instead of an int + This is more in line with the call to kfree() in cb_free(). + + * device/cirbuf.c (cb_free) (size): Use vm_size_t instead of an int. + +2013-12-10 Marin Ramesa + + device/cirbuf.c (cb_alloc): use vm_size_t instead of an int + This is more in line with the call to kalloc() in cb_alloc(). + + * device/chario.c (tty_inq_size, tty_outq_size): Use unsigned int instead if an int. + * device/cirbuf.c (cb_alloc) (buf_size): Use vm_size_t instead of an int. + * device/cirbuf.h (cb_alloc) (buf_size): Likewise. + +2013-12-10 Marin Ramesa + + device/chario.c: trivial stylistic fix for consistency + * device/chario.c: Trivial stylistic fix for consistency. + +2013-12-10 Marin Ramesa + + i386/i386/db_interface.c: use vm_offset_t instead of an unsigned int + This is more in line with how the function db_user_to_kernel_address() is + called. In this way there is one cast less and several GCC warnings are + silenced. + + * i386/i386/db_interface.c (db_set_hw_watchpoint) (kern_addr): Use vm_offset_t instead of an unsigned int. + (db_user_to_kernel_address) (kaddr): Likewise. + (db_user_to_kernel_address) (ptetokv): Don't cast return value. + (db_read_bytes) (kern_addr): Use vm_offset_t instead of an unsigned int. + (db_write_bytes_user_space) (kern_addr): Likewise. + (db_task_name) (vaddr, kaddr): Likewise. + * i386/i386/db_interface.h (db_user_to_kernel_address) (kaddr): Likewise. + +2013-12-10 Marin Ramesa + + i386/i386at/kd_event.c (kbdsetstat): fix difference in signedness + * i386/i386at/kd_event.c (X_kdb_enter_init, X_kdb_exit_init): Cast first arguments to (unsigned int *). + +2013-12-10 Marin Ramesa + + i386: move prototypes to fix implicit declaration of function + This fixes the implicit declarations in kern/machine.c and kern/debug.c. + + * i386/i386/model_dep.h (halt_cpu, halt_all_cpus): Add prototypes. + * i386/i386at/model_dep.h (halt_cpu, halt_all_cpus): Remove prototypes. + +2013-12-08 Marin Ramesa + + ddb/db_trap.c (db_task_trap): remove forward declarations + * ddb/db_break.h (db_check_breakpoint_valid): Add prototype. + * ddb/db_trap.c (db_init_default_thread, db_check_breakpoint_valid): Remove forward declarations. + +2013-12-08 Marin Ramesa + + Use db_addr_t instead of db_expr_t + In this way everything falls into place and there is one cast less. + + Function db_task_printsym() is already always called with the cast to + db_addr_t in the first argument. + + * ddb/db_aout.c (aout_db_line_at_pc): Use db_addr_t instead of db_expr_t. + (aout_db_search_by_addr): Don't cast to vm_offset_t. Argument is already + db_addr_t. + * ddb/db_aout.h (aout_db_line_at_pc): Use db_addr_t instead of db_expr_t. + * ddb/db_sym.c (db_task_printsym): Likewise. + (db_line_at_pc): Likewise. + * ddb/db_sym.h (db_task_printsym): Likewise. + (db_line_at_pc): Likewise. + * i386/i386/db_trace.c (db_task_printsym): Cast to db_addr_t instead of db_expr_t. + Member swap_func is a pointer to void. + +2013-12-08 Marin Ramesa + + ddb/db_print.c: use unsigned long instead of an unsigned int + Variable db_maxoff is in other files declared as unsigned long. + + * ddb/db_print.c (db_maxoff): Use unsigned long instead of an unsigned int. + +2013-12-08 Marin Ramesa + + ddb/db_mp.c: definition of db_console() only if CONSOLE_ON_MASTER + Function db_console() is called only if CONSOLE_ON_MASTER. + + If it stays this way, db_console() will not compile. I don't know + if it should be removed. Maybe someone will rewrite it. + + * ddb/db_mp.c (db_console): Definition only if CONSOLE_ON_MASTER. + * ddb/db_mp.h [CONSOLE_ON_MASTER] (db_console): Add prototype. + +2013-12-08 Marin Ramesa + + ddb/db_mp.c: use boolean instead of an int + * ddb/db_mp.c (db_enter_debug): Use boolean instead of an int. + + ddb/db_examine.c: trivial stylistic fix for consistency + * ddb/db_examine.c: Trivial stylistic fix for consistency. + + ddb/db_examine.c (db_examine_cmd): remove forward declaration + * ddb/db_examine.c (db_option): Remove forward declaration. + + ddb/db_command.c (db_command): remove forward declaration + * ddb/db_command.c (db_fncall): Remove forward declaration. + + ddb/db_command.c: use boolean values + * ddb/db_command.c (db_cmd_loop_done): Use boolean values. + +2013-12-08 Marin Ramesa + + i386/i386at/kd.c: use io_req instead of uio + Struct uio is nowhere defined and in device/buf.h the string uio is defined + as io_req. Remove all declarations of uio structure and use io_req_t instead + of it. + + * device/buf.h (uio, io_req): Remove definition. + * i386/i386at/kd.c: Remove comment. + (kdread): Use io_req_t. + (kdwrite): Likewise. + * i386/i386at/kd.h (kdread, kdwrite): Use io_req_t as argument type. + +2013-12-08 Marin Ramesa + + ddb/db_break.c (db_find_thread_breakpoint_here): remove unnecessary cast + Variable addr is already of type db_addr_t. + + * ddb/db_break.c (db_find_thread_breakpoint_here) (addr): Don't cast to db_addr_t. + +2013-12-08 Marin Ramesa + + ddb/db_break.c (db_add_thread_breakpoint): fix argument list + * ddb/db_break.c (db_add_thread_breakpoint): Fix argument list. + + ddb/db_aout.c (aout_db_lookup): remove forward declaration + * ddb/db_aout.c (db_sym_parse_and_lookup): Remove forward declaration. + * ddb/db_sym.h (db_sym_parse_and_lookup): Add prototype. + +2013-12-08 Marin Ramesa + + ddb/db_aout.c (aout_db_qualified_search): use DB_SYM_NULL as return value + Function aout_db_qualified_search() returns db_sym_t. Use DB_SYM_NULL as + return value instead of zero. + + * ddb/db_aout.c (aout_db_qualified_search): Use DB_SYM_NULL as return value. + +2013-12-08 Marin Ramesa + + i386/i386/db_interface.c: remove forward declaration + * i386/i386/db_interface.c (db_write_bytes_user_space): Remove forward declaration. + * i386/i386/db_interface.h (db_write_bytes_user_space): Add prototype. + + i386/i386at/lpr.c: fix initalization from incompatible pointer type + * i386/i386at/lpr.c (lprprobe): Modify argument types. + * i386/i386at/lpr.h (lprprobe): Likewise. + + i386/i386at/com.c: fix assignment from incompatible pointer type + * device/tty.h (tty): Modify so that correct argument list and return type is listed. + + i386/i386at/com.c: fix initialization from incompatible pointer type + * i386/i386at/com.c (comprobe): Modify argument types. + (comprobe): Cast from (struct bus_ctrl *) to (struct bus_device *). + comprobe_general() uses only a small subset of members, so it's all + the same which struct it is. + * i386/i386at/com.h (comprobe): Modify argument types. + + kern/startup.c: use boolean values + * kern/startup.c (reboot_on_panic): Use boolean values. + + vm/vm_map.c: use boolean instead of an int + * vm/vm_map.c (vm_map_pmap_enter_print, vm_map_pmap_enter_enable): Use boolean instead of an int. + + vm/vm_object.c: remove unused variable + * vm/vm_object.c (vm_object_terminate_remove_all): Remove unused variable. + + vm/vm_pageout.c: remove forward declarations + * vm/vm_pageout.c (vm_pageout_continue, vm_pageout_scan_continue): Remove forward declarations. + * vm/vm_pageout.h (vm_pageout_continue, vm_pageout_scan_continue): Add prototypes. + + i386/i386at/pic_isa.c: remove forward declaration + * i386/Makefrag.am: Include i386/i386/hardclock.h. + * i386/i386/hardclock.h: New file. + Add copyright. + [_I386_HARDCLOCK_H_]: Add ifndef. + (hardclock): Add prototype. + * i386/i386at/pic_isa.c (hardclock): Remove forward declaration. + Include i386/hardclock.h. + + i386/i386at/model_dep.c: fix argument list + * i386/i386at/model_dep.c (timemmap): Fix argument list. + + i386/i386at/lpr.c: fix argument list + * i386/i386at/lpr.c (lprprobe): Fix argument list. + + ddb/db_output.c: remove forward declaration + * ddb/db_input.h (db_check_interrupt): Add prototype. + * ddb/db_output.c: Include ddb/db_input.h. + (db_check_interrupt): Remove forward declaration. + +2013-12-08 Marin Ramesa + + kern/act.h: remove unnecessary include + File kern/act.h includes itself. Remove this include. + + * kern/act.h: Don't include kern/act.h. + +2013-12-08 Marin Ramesa + + Cleanup of the prototypes + * device/cirbuf.h (nqdb): Remove prototype without definition. + * device/conf.h (dev_set_indirect): Likewise. + * kern/boot_script.h (boot_script_read_file): Likewise. + * kern/eventcount.h (evc_notify_abort): Remove duplicate prototype. + * kern/thread.h (thread_set_own_priority): Likewise. + * kern/thread_swap.h (thread_swapout): Remove prototype without definition. + * kern/timer.h (softclock): Remove duplicate prototype. + * vm/pmap.h (pmap_resident_count, pmap_access, pmap_phys_address, pmap_phys_to_frame): Remove prototypes without function definition. + * vm/vm_page.h (vm_set_page_size): Likewise. + + vm/vm_page.h: remove unused variables + * vm/vm_page.h (first_phys_addr, last_phys_addr): Remove unused variables. + + kern/syscall_sw.c: use boolean instead of an int + * kern/syscall_sw.c (kern_invalid_debug): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + kern/refcount.h: remove unnecessary include + File kern/refcount.h includes itself. Remove this include. + + * kern/refcount.h: Don't include kern/refcount.h. + +2013-12-08 Marin Ramesa + + kern/rbtree.h: remove unnecessary include + File kern/rbtree.h includes itself. Remove this include. + + * kern/rbtree.h: Don't include kern/rbtree.h. + +2013-12-08 Marin Ramesa + + kern/priority.c: update comment + This is priority.c. Not clock_prim.c. + + * kern/priority.c: Update comment. + +2013-12-08 Marin Ramesa + + kern/pc_sample.c: remove unused variables + * kern/pc_sample.c (pc_sampling_enabled, pc_sampling_lock): Remove unused variables. + + kern/lock_mon.c: remove dead assignments + * kern/lock_mon.c (scurval, ssum, sli): Remove variables. + (scurval, ssum, sli): Remove dead assignments. + +2013-12-08 Marin Ramesa + + kern/lock_mon.c: use spl_t instead of an int + Variable curr_ipl is in other files declared as spl_t. + + * kern/lock_mon.c (curr_ipl): Use spl_t instead of an int. + +2013-12-08 Marin Ramesa + + kern/act.h: remove prototype without definition + * kern/act.h (act_create_kernel): Remove prototype without definition. + +2013-12-08 Samuel Thibault + + Add comment + +2013-12-08 Marin Ramesa + + ipc/port.h: update comment + This is ipc/port.h. Not ipc/ipc_port.h. + + * ipc/port.h: Update comment. + +2013-12-08 Marin Ramesa + + ipc/mach_port.c: use boolean instead of an int + * ipc/mach_port.c (mach_port_deallocate_debug): Use boolean instead of an int. + + ipc/ipc_init.c: qualify constant with const + * ipc/ipc_init.c (ipc_kernel_map_size): Qualify constant with const. + + i386/intel/pmap.c: remove unused variable + * i386/intel/pmap.c (end): Remove unused variable. + + i386/intel/pmap.c: use boolean instead of an int + * i386/intel/pmap.c (pmap_debug): Use boolean instead of an int. + + time: remove unused variable + * i386/i386at/rtc.c (tz): Remove unused variable. + * xen/time.c (tz): Remove unused variable. + + i386/i386at/rtc.c: use boolean instead of an int + * i386/i386at/rtc.c (first_rtcopen_ever): Use boolean instead of an int. + + i386/i386at/kd.c: use boolean instead of an unsigned int + * i386/i386at/kd.c (kd_bellstate): Use boolean instead of an unsigned int. + + i386/i386at/kd.c: use boolean instead of an int + * i386/i386at/kd.c (mouse_in_use): Use boolean instead of an int. + Remove duplicate declaration. + + i386/i386at/model_dep.c, kd.c: use boolean instead of an int + * i386/i386at/kd.c (rebootflag): Use boolean instead of an int. + Remove duplicate variable declaration. + * i386/i386at/model_dep.c (rebootflag): Use boolean instead of an int. + + i386/i386at/immc.c, kd.c: use boolean instead of an int + * i386/i386at/immc.c (immediate_console_enable): Use boolean instead of an int. + * i386/i386at/kd.c (immediate_console_enable): Likewise. + + i386/i386/user_ldt.c: remove unused variable + * i386/i386/user_ldt.c (acc_type): Remove unused variable. + + i386/i386/trap.c: remove unused variables + * i386/i386/trap.c (v86_assist_on, v86_unsafe_ok, v86_do_sti_cli, v86_do_sti_immediate, cli_count, sti_count): Remove unused variables. + + i386/i386/trap.c: remove unused variable + * i386/i386/trap.c (brb): Remove unused variable. + + i386/i386/pit.c: remove unused variables + * i386/i386/pit.c (pitctr1_port, pitctr2_port): Remove unused variables. + + i386/i386/pic.c: remove unused variables + * i386/i386/pic.c (nintr, npics): Remove unused variables. + + i386/i386/mp_desc.c: remove unused variable + * i386/i386/mp_desc.c (avail_start): Remove unused variable. + +2013-12-08 Marin Ramesa + + i386/i386/ipl.h: remove ifdef and add ifndef + This code is used even if KERNEL is not defined. Remove the ifdef. + + * i386/i386/ipl.h [_I386_IPL_H_]: Add ifndef. + +2013-12-08 Marin Ramesa + + i386/i386/db_interface.c: use boolean instead of an int + * i386/i386/db_interface.c (kernel_dr): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + device/tty.h, chario.h: move prototype + Now that we have device/chario.h move the chario_init() prototype + from device/tty.h to device/chario.h. + + * device/chario.h (chario_init): Add prototype. + * device/device_init.c: Include device/chario.h. + * device/tty.h (chario_init): Remove prototype. + +2013-12-08 Marin Ramesa + + device/kmsg.c: use boolean instead of an int + * device/kmsg.c (kmsg_init_done): Use boolean instead of an int. + + device/kmsg.c: use boolean instead of an int + * device/kmsg.c (kmsg_in_use): Use boolean instead of an int. + + device/if_ether.h: remove unused variable + * device/if_ether.h (etherbroadcastaddr): Remove unused variable. + * device/subrs.c (etherbroadcastaddr): Remove initialization. + + device/dev_lookup.c: remove unused lock + * device/dev_lookup.c (dev_port_lock): Remove unused lock. + + device/cirbuf.c: use boolean instead of an int + * device/cirbuf.c (cb_check_enable): Use boolean instead of an int. + + device/chario.c: use boolean instead of an int + * device/chario.c (pdma_default): Use boolean instead of an int. + +2013-12-08 Marin Ramesa + + ddb/db_output.c: remove duplicate function + Function kdbprintf() and db_printf() are the same function. Remove + kdbprintf() and define kdbprintf to db_printf. + + * ddb/db_output.c (kdbprintf): Remove function. + * ddb/db_output.h: Define kdbprintf to db_printf. + (kdbprintf): Remove prototype. + +2013-12-08 Marin Ramesa + + ddb/db_output.c: remove call to nonexistent db_printf_enter() + * ddb/db_output.c [db_printf_enter] (db_printf_enter): Remove call to nonexistent function. + + ddb/db_command.h: remove duplicate variable declaration + * ddb/db_command.h (db_recover): Remove duplicate variable declaration. + + ddb/db_command.c: remove forward declaration + * ddb/db_command.c (db_skip_to_eol): Remove forward declaration. + +2013-12-08 Marin Ramesa + + i386/i386/setjmp.h: remove ifdef + Function _longjmp() is used even if __GNUC__ is not defined. Avoid + implicit declaration in that case by removing the ifdef. + + * i386/i386/setjmp.h [__GNUC__] (_longjmp): Remove ifdef. + +2013-12-08 Marin Ramesa + + kern/machine.c: remove __volatile__ + Shutdown can be optimised. Remove __volatile__. + + * kern/machine.c [__GNUC__] (processor_doshutdown): Remove volatile function qualifier. + +2013-12-08 Marin Ramesa + + ipc/ipc_port.c: trivial stylistic fix for consistency + * ipc/ipc_port.c (indent): Trivial stylistic fix for consistency. + +2013-12-08 Samuel Thibault + + Make unsigned character constants unsigned + Thanks Marin Ramesa for the report. + + * i386/i386at/kd.h (K_DONE, NC, K_SCAN): Make constants unsigned. + +2013-12-08 Samuel Thibault + + Always make Assert trigger debugger + * kern/debug.c (Assert): Always call Debugger, even if db_breakpoints_insert + is not set. + +2013-12-08 Samuel Thibault + + Fix implicit declaration of function + Thanks Marin Ramesa for the report. + + * device/ds_routines.h (device_deallocate): Move declaration to... + * include/device/device_types.h (device_deallocate): ... here. + +2013-12-08 Marin Ramesa + + device/device_types_kernel.h: remove redeclaration of dev_port_lookup() + * device/device_types_kernel.h (dev_port_lookup): Remove prototype. + + Add ifndefs + * i386/i386at/cram.h [_CRAM_H_]: Add ifndef. + * i386/i386at/disk.h [_DISK_H_]: Likewise. + * i386/i386at/i8250.h [_I8250_H_]: Likewise. + * i386/include/mach/i386/asm.h [_MACH_I386_ASM_H_]: Likewise. + * i386/include/mach/i386/disk.h [_MACH_I386_DISK_H_]: Likewise. + + Add comments after endifs + * device/cons.c [MACH_KMSG]: Likewise. + [CONSBUFSIZE > 0]: Likewise. + * i386/i386/trap.c [MACH_KDB]: Likewise. + [MACH_PV_PAGETABLES]: Likewise. + * i386/i386at/kd.c [ENABLE_IMMEDIATE_CONSOLE]: Likewise. + * ipc/ipc_kmsg_queue.h [_IPC_KMSG_QUEUE_H_]: Likewise. + * kern/act.c [ACTWATCH]: Likewise. + * kern/refcount.h [MACHINE_REFCOUNT]: Likewise. + * kern/task.c [FAST_TAS]: Likewise. + +2013-12-04 Samuel Thibault + + Add missing include + * ddb/db_variables.h: Include . + +2013-12-04 Marin Ramesa + + i386/i386at/com.h: include chips/busses.h for struct bus_device + * i386/i386at/com.h: Include chips/busses.h. + + ddb/db_variables.c: fix near initialization + * ddb/db_task_thread.c (db_set_default_thread): New parameter. + * ddb/db_task_thread.h (db_set_default_thread): Likewise. + + kern/mach_clock.c: remove forward declaration + * Makefrag.am: Include kern/priority.h. + * kern/mach_clock.c (thread_quantum_update): Remove forward declaration. + Include kern/priority.h. + * kern/priority.h: New file. + Add copyright. + [_KERN_PRIORITY_H_]: Add ifndef. + (thread_quantum_update): Add prototype. + + ipc/mach_port.c: remove forward declaration + * ipc/mach_port.c (mach_port_get_receive_status): Remove forward declaration. + * ipc/mach_port.h (mach_port_get_receive_status): Add prototype. + + ipc/ipc_entry.c: remove forward declaration + * ipc/ipc_entry.c (db_ipc_object_by_name): Remove forward declaration. + * ipc/ipc_entry.h (db_ipc_object_by_name): Add prototype. + + i386/i386at/model_dep.c: remove forward declaration + * i386/i386at/model_dep.c (init_alloc_aligned): Remove forward declaration. + * i386/i386at/model_dep.h (init_alloc_aligned): Add prototype. + + kern/time_stamp.c: remove multimax code + * kern/time_stamp.c [multimax]: Remove code. + +2013-12-04 Samuel Thibault + + Remove unnecessary file + * i386/Makefrag.am: Don't include i386/include/mach/i386/rpc.h. + * i386/include/mach/i386/rpc.h: Remove file. + +2013-12-04 Marin Ramesa + + vm/vm_user.c: remove forward declaration + * vm/vm_user.c (vm_map_machine_attribute): Remove forward declaration. + +2013-12-04 Marin Ramesa + + vm/vm_resident.c: correct comment + This is vm_resident.c, not vm_page.c. + + * vm/vm_resident.c: Correct comment. + +2013-12-04 Marin Ramesa + + vm/vm_map.c: remove forward declarations + * vm/vm_map.c (_vm_map_clip_start, _vm_map_copy_clip_start, _vm_map_clip_end, _vm_map_copy_clip_end): Remove forward declarations. + * vm/vm_map.h (_vm_map_clip_end): Correct prototype. + + vm/vm_kern.c: remove forward declarations + * vm/vm_kern.c (kmem_alloc_pages, kmem_remap_pages): Remove forward declarations. + * vm/vm_kern.h (kmem_alloc_pages, kmem_remap_pages): Add prototypes. + + vm/vm_fault.c: remove forward declaration + * vm/vm_fault.c (vm_fault_wire_fast): Remove forward declaration. + * vm/vm_fault.h (vm_fault_wire_fast): Add prototype. + +2013-12-04 Marin Ramesa + + ipc/ipc_kmsg.h: update comment + Struct ipc_kmsg_queue is not defined in kern/thread.h. + + * ipc/ipc_kmsg.h: Update comment. + +2013-12-04 Marin Ramesa + + kern: remove forward declaration + * kern/xpr.c (db_printf): Remove forward declaration. + [MACH_KDB] Include ddb/db_output.h. + + kern/thread.c: remove forward declaration + * i386/i386/pcb.h (pcb_module_init): Add prototype. + * kern/thread.c (pcb_module_init): Remove forward declaration. + + kern/task.c: remove forward declarations + * ipc/ipc_mqueue.h: Include ipc/ipc_kmsg_queue.h. + * kern/ipc_kobject.h: Move includes into ifndef. + * kern/syscall_emulation.h: Include kern/task.h. + (eml_init, eml_task_reference, eml_task_deallocate): Add prototypes. + * kern/task.c: Include kern/syscall_emulation.h. + (eml_init, eml_task_reference, eml_task_deallocate): Remove forward declarations + + kern/syscall_sw.c: remove forward declarations + * kern/eventcount.h (evc_wait_clear): Add prototype. + * kern/ipc_mig.h: Include device/device_types.h. + (syscall_vm_map, syscall_vm_allocate, syscall_vm_deallocate, syscall_task_create, syscall_task_terminate, syscall_task_suspend, syscall_task_set_special_port, syscall_mach_port_allocate, syscall_mach_port_deallocate, syscall_mach_port_insert_right, syscall_mach_port_allocate_name, syscall_thread_depress_abort, syscall_device_write_request, syscall_device_writev_request): Add prototypes. + * kern/syscall_sw.c (syscall_vm_map, syscall_vm_allocate, syscall_vm_deallocate, syscall_task_create, syscall_task_terminate, syscall_task_suspend, syscall_task_set_special_port, syscall_mach_port_allocate, syscall_mach_port_deallocate, syscall_mach_port_insert_right, syscall_mach_port_allocate_name, syscall_thread_depress_abort, evc_wait, evc_wait_clear, syscall_device_write_request, syscall_device_writev_request): Remove forward declarations. + Include kern/ipc_mig.h. + Include kern/eventcount.h. + + kern/syscall_subr.c: remove forward declaration + * kern/syscall_subr.c (thread_depress_priority): Remove forward declaration. + * kern/syscall_subr.h (thread_depress_priority): Add prototype. + + kern/startup.c: remove forward declarations + * Makefrag.am: Include kern/bootstrap.h. + Include vm/vm_init.h. + Include device/device_init.h. + * device/device_init.h: New file. + Add copyright. + [_DEVICE_DEVICE_INIT_H_]: Add ifndef. + (device_service_create): Add prototype. + * i386/i386/mp_desc.h (start_other_cpus): Add prototype. + * kern/bootstrap.h: New file. + Add copyright. + [_KERN_BOOTSTRAP_H_]: Add ifndef. + (bootstrap_create): Add prototype. + * kern/sched_prim.h (idle_thread, sched_thread): Add prototypes. + * kern/startup.c: Include kern/bootstrap.h. + Include kern/startup.h. + Include vm/vm_init.h. + Include vm/vm_pageout.h. + Include device/device_init.h. + (vm_mem_init, vm_mem_bootstrap, init_timeout, machine_init, idle_thread, vm_pageout, reaper_thread, swapin_thread, sched_thread, bootstrap_create, device_service_create, cpu_launch_first_thread, start_kernel_threads, start_other_cpus, action_thread): Remove forward declarations. + [NCPUS > 1] Include machine/mp_desc.h and kern/machine.h. + * kern/startup.h: Include kern/thread.h. + (cpu_launch_first_thread, start_kernel_threads): Add prototypes. + * vm/vm_init.h: New file. + Add copyright. + [_VM_VM_INIT_H_]: Add ifndef. + (vm_mem_init, vm_mem_bootstrap): Add prototypes. + * vm/vm_pageout.h (vm_pageout): Add prototype. + + kern/sched_prim.c: remove forward declarations + * kern/sched_prim.c (set_pri, do_thread_scan, choose_pset_thread, checkrq, thread_check): Remove forward declarations. + * kern/sched_prim.h (set_pri, do_thread_scan, choose_pset_thread, checkrq, thread_check): Add prototypes. + + kern/processor.c: remove forward declarations + * kern/processor.c (quantum_set, pset_init, processor_init): Remove forward declarations. + * kern/processor.h (quantum_set, pset_init, processor_init): Add prototypes. + + kern/ipc_mig.c: remove forward declarations + * device/ds_routines.h (ds_device_write_trap, ds_device_writev_trap): Add prototypes. + * kern/ipc_mig.c (ds_device_write_trap, ds_device_writev_trap): Remove forward declarations. + + kern/debug.c: remove forward declaration + * kern/debug.c (cnputc): Remove forward declaration. + Include device/cons.h. + + kern/bootstrap.c: remove forward declarations + * i386/i386/pcb.h: Include mach/thread_status.h. + Include machine/thread.h. + * kern/bootstrap.c: Include machine/pcb.h. + (user_stack_low, set_user_regs): Remove forward declarations. + + ipc/mach_msg.c: remove forward declarations + * ipc/mach_msg.c: Include kern/exception.h. + (exception_raise_continue, exception_raise_continue_fast): Remove forward declarations. + * kern/exception.h: Include ipc/ipc_types.h. + Include ipc/ipc_kmsg.h. + + ipc/ipc_table.c: remove forward declaration + * ipc/ipc_table.c (ipc_table_fill): Remove forward declaration. + * ipc/ipc_table.h (ipc_table_fill): Add prototype. + + ipc/ipc_kmsg.c: remove forward declarations + * ipc/ipc_kmsg.c (copyinmap, copyoutmap, ipc_msg_print): Remove forward declarations. + * ipc/ipc_kmsg.h (ipc_msg_print): Add prototype. + + i386/intel/pmap.c: remove forward declarations + * i386/intel/pmap.c (pmap_remove_range, signal_cpus): Remove forward declarations. + * i386/intel/pmap.h (pmap_remove_range, signal_cpus): Add prototypes. + +2013-12-04 Samuel Thibault + + Drop duplicate declaration + * i386/i386/model_dep.h (halt_cpu, halt_all_cpus): Remove duplicate + declaration. + * i386/i386at/model_dep.h (halt_cpu, halt_all_cpus): Add comments. + +2013-12-04 Marin Ramesa + + i386/i386at: remove forward declarations + * Makefrag.am: Include kern/startup.h. + * i386/i386at/model_dep.c: Include kern/startup.h. + Include i386at/model_dep.h. + (setup_main, halt_all_cpus, halt_cpu, inittodr): Remove forward declarations. + * i386/i386at/model_dep.h (halt_all_cpus, halt_cpu, inittodr): Add prototypes. + * kern/startup.h: New file. + Add copyright. + [_KERN_STARTUP_H_]: Add ifndef. + (setup_main): Add prototype. + + i386/i386at/kd_mouse.c: remove forward declarations + * i386/i386at/kd_mouse.c (mouseintr, mouse_enqueue, mouse_read_done): Remove forward declarations. + (mouseintr): Define argument type. + * i386/i386at/kd_mouse.h (mouseintr, mouse_enqueue, mouse_read_done): Add prototypes. + + i386/i386at/kd_event.c: remove forward declarations + * i386/i386at/kd_event.c (kbd_enqueue, X_kdb_enter_init, X_kdb_exit_init, kbd_read_done): Remove forward declarations. + * i386/i386at/kd_event.h (kbd_enqueue, X_kdb_enter_init, X_kdb_exit_init, kbd_read_done): Add prototypes. + + i386/i386at/kd.c: remove forward declarations + * i386/i386at/kd.c (kd_enqsc, kdcheckmagic, do_modifier, bmpch2bit, bmppaintcsr, bit2fbptr): Remove forward declarations. + * i386/i386at/kd.h: Include device/buf.h. + Include i386at/kdsoft.h. + (kdcheckmagic, do_modifier, bmpch2bit, bmppaintcsr, bit2fbptr): Add prototypes. + * i386/i386at/kd_event.h (kd_enqsc): Add prototype. + + i386/i386at/conf.c: remove forward declarations + * i386/Makefrag.am: Include i386/i386at/model_dep.h and i386/i386at/mem.h. + * i386/i386at/com.h (comgetstat, comsetstat): Declare as extern. + (comopen, comclose, comread, comwrite, comportdeath): Add prototypes. + * i386/i386at/conf.c: Include kern/mach_clock.h and i386at/model_dep.h. + (timeopen, timeclose, timemmap): Remove forward declarations. + (kdopen, kdclose, kdread, kdwrite, kdgetstat, kdsetstat, kdportdeath, kdmmap): Likewise. + (comopen, comclose, comread, comwrite, comportdeath, comgetstat, comsetstat): Likewise. + (lpropen, lprclose, lprread, lprwrite, lprportdeath, lprgetstat, lprsetstat): Likewise. + (kbdopen, kbdclose, kbdread, kbdgetstat, kbdsetstat): Likewise. + (mouseopen, mouseclose, mouseread, mousegetstat): Likewise. + (memmmap): Likewise. + (kmsgopen, kmsgclose, kmsgread, kmsggetstat): Likewise. + (hypcnopen, hypcnclose, hypcnread, hypcnwrite, hypcnportdeath, hypcngetstat, hypcnsetstat): Likewise. + Include i386at/kd.h. + Include i386at/com.h. + Include i386at/lpr.h. + Include i386at/kd_event.h. + Include i386at/kd_mouse.h. + Include i386at/mem.h. + Include device/kmsg.h. + Include xen/console.h. + * i386/i386at/kd.h: Include device/io_req.h. + (kdopen, kdclose, kdread, kdwrite, kdgetstat, kdsetstat, kdportdeath, kdmmap): Add prototypes. + * i386/i386at/kd_event.h (kbdopen, kbdclose, kbdread, kbdgetstat, kbdsetstat): Likewise. + * i386/i386at/kd_mouse.h (mouseopen, mouseclose, mouseread, mousegetstat): Likewise. + * i386/i386at/lpr.h (lpropen, lprclose, lprread, lprwrite, lprportdeath): Likewise. + (lprgetstat, lprsetstat): Declare as extern. + * i386/i386at/mem.h: New file. + Add copyright. + [_MEM_H_]: Add ifndef. + (memmmap): Add prototype. + * i386/i386at/model_dep.c: Include i386/i386at/model_dep.h. + (timemmap): Fix argument list. + * i386/i386at/model_dep.h: New file. + Add copyright. + [_MODEL_DEP_H_]: Add ifndef. + (timemmap): Add prototype. + * kern/mach_clock.h (timeopen, timeclose): Add prototypes. + * xen/console.h (hypcnopen, hypcnclose, hypcnread, hypcnwrite, hypcnportdeath, hypcngetstat, hypcnsetstat): Add prototypes. + + i386/i386at/autoconf.c, com.c, lpr.c: remove forward declarations + * i386/i386/autoconf.c (comintr, lprintr): Remove forward declarations. + Include i386at/com.h. + Include i386at/lprreg.h. + * i386/i386at/com.c (comprobe, commctl, comstart, comstop, comattach, comintr, comgetstat, comsetstat): Remove forward declarations. + * i386/i386at/com.h: Include device/tty.h. + (comprobe, commctl, comstart, comstop, comattach, comintr, comgetstat, comsetstat): Add prototypes. + * i386/i386at/lpr.c (lprprobe, lprstop, lprintr, lprstart, lprattach, lprgetstat, lprsetstat, lprpr_addr): Remove forward declarations. + (lprprobe): Fix argument list. + (lprpr): Define argument type. + lprpr_addr): Likewise. + * i386/i386at/lprreg.h (lprprobe, lprstop, lprintr, lprstart, lprattach, lprgetstat, lprsetstat, lprpr_addr): Add prototypes. + + kern/exception.c: remove forward declarations + * i386/i386/trap.h (thread_kdb_return): Add prototype. + * kern/exception.c (thread_kdb_return, db_printf): Remove forward declarations. + Include machine/trap.h. + Include ddb/db_output.h. + + kern: new header file exception.h + * Makefrag.am: Include kern/exception.h. + * i386/i386/trap.c: Include kern/exception.h. + (exception, thread_exception_return): Remove forward declarations. + * kern/exception.c: Include kern/exception.h. + (exception, exception_try_task, exception_no_server, exception_raise, exception_parse_reply, exception_raise_continue, exception_raise_continue_slow, exception_raise_continue_fast): Remove forward declarations. + * kern/exception.h: New file. + Add copyright. + [_KERN_EXCEPTION_H_]: Add ifndef. + (exception, exception_try_task, exception_no_server, exception_raise, exception_parse_reply, exception_raise_continue, exception_raise_continue_slow, exception_raise_continue_fast): Add prototypes. + + i386/i386/pcb.c: remove forward declarations + * i386/i386/pcb.c (Load_context, Switch_context, Thread_continue, user_ldt_free): Remove forward declarations. + * i386/i386/pcb.h (Load_context, Switch_context, Thread_continue): Add prototypes. + * i386/i386/user_ldt.h (user_ldt_free): Add prototype. + + i386/i386/io_perm.c: remove forward declaration + * i386/i386/io_perm.c: Include pcb.h. + (update_ktss_iopb): Remove forward declaration. + * i386/i386/pcb.h (update_ktss_iopb): Add prototype. + + i386/i386/fpu.c, trap.c: remove forward declarations + * i386/i386/fpu.c: Include i386/trap.h. + (void i386_exception, fp_save, fp_load): Remove forward declaration. + * i386/i386/trap.c (void i386_exception): Remove forward declaration. + * i386/i386/trap.h (void i386_exception): Add prototype. + + i386/i386/db_trace.c: remove forward declaration + * i386/i386/db_interface.h: Include ddb/db_variables.h. + (db_i386_reg_value): Add prototype. + * i386/i386/db_trace.c (db_i386_reg_value): Remove forward declaration. + + device/device_init.c: remove forward declarations + * device/dev_lookup.c: Include device/ds_routines.h. + * device/device_init.c: Include device/ds_routines.h. + Include device/net_io.h. + (mach_device_init, dev_lookup_init, net_io_init, device_pager_init, io_done_thread, net_thread): Remove forward declarations. + * device/ds_routines.h (mach_device_init, dev_lookup_init, device_pager_init, io_done_thread): Add prototypes. + * device/net_io.h (net_io_init, net_thread): Add prototypes. + + ddb/db_variables.c: remove forward declarations + * ddb/db_task_thread.h: Include ddb/db_variables.h. + (db_set_default_thread, db_get_task_thread): Add prototypes. + * ddb/db_variables: Include ddb/db_macro.h. + (db_set_default_thread, db_get_task_thread, db_arg_variable): Remove forward declarations. + + ddb/db_trap.c: remove forward declarations + * ddb/db_run.h (db_restart_at_pc, db_stop_at_pc): Add prototypes. + * ddb/db_trap.c (db_restart_at_pc, db_stop_at_pc): Remove forward declarations. + Include ddb/db_run.h. + + ddb/db_command.c: remove useless forward declaration without definition + * ddb/db_command.c (ddb_display): Remove forward declaration. + Remove ddb_display call. + + ddb/db_command.c: remove forward declaration + * ddb/db_command.c (db_reset_cpu): Remove forward declaration. + * i386/i386/db_interface.h (db_reset_cpu): Add prototype. + * i386/i386at/model_dep.c: Include i386/db_interface.h. + + ddb/db_sym.c: fix argument list + * ddb/db_sym.c (dummy_db_free_symbol): Fix argument list. + + ddb/db_sym.c: remove useless forward declarations without definitions + * ddb/db_sym.c (coff_db_sym_init, coff_db_line_at_pc, db_sym_t coff_db_lookup, coff_db_search_symbol, coff_db_symbol_values): Remove forward declarations. + (x_db): Modify field definition. + + ddb: new header file db_aout.h + * Makefrag.am: Include ddb/db_aout.h. + * ddb/db_aout.c: Include ddb/db_aout.h. + * ddb/db_aout.h: New file. + Add copyright. + [_DDB_DB_AOUT_H_]: Add ifndef. + Include ddb/db_sym.h. + Include machine/db_machdep.h. + (aout_db_line_at_pc, aout_db_lookup, aout_db_search_symbol, aout_db_symbol_values): Add prototypes. + * ddb/db_sym.c: Include ddb/db_aout.h. + (db_search_in_task_symbol, aout_db_line_at_pc, aout_db_lookup, aout_db_search_symbol, aout_db_symbol_values): Remove forward declarations. + * ddb/db_sym.h (db_search_in_task_symbol): Add prototype. + + ddb/db_aout.c: trivial stylistic fix for consistency + * ddb/db_aout.c: Trivial stylistic fix for consistency. + + ddb/db_run.c: add comment after endif + * ddb/db_run.c [FIXUP_PC_AFTER_BREAK]: Add comment after endif. + + ddb/db_mp.c: add comment after else and endif + * ddb/db_mp.c [CONSOLE_ON_MASTER]: Add comment after else and endif. + + ddb/db_input.c: add comment after endif + * ddb/db_input.c [DB_HISTORY_SIZE]: Add comment after endif. + + ddb/db_command.c: remove forward declarations + * ddb/db_command.c: Include machine/db_interface.h. + (db_help_cmd, db_stack_trace_cmd): Remove forward declarations. + * ddb/db_command.h (db_help_cmd): Add prototype. + * i386/i386/db_interface.h (db_stack_trace_cmd): Add prototype. + + device/net_io.c: initialize hash_entp to NULL + * device/net_io.c (hash_entp): Initialize to NET_HASH_ENTRY_NULL. + +2013-11-24 Marin Ramesa + + Modify struct db_variable + * ddb/db_macro.c (db_arg_variable): Make function void. + * ddb/db_macro.h (db_arg_variable): Declare void return. + * ddb/db_task_thread.c (db_set_default_thread): Make function void. + (db_get_task_thread): Make function void. + * ddb/db_variables.c (db_set_default_thread, db_get_task_thread, db_arg_variable): Declare void return. + (db_read_write_variable): Use void in initialization. + * ddb/db_variables.h (db_variable): Make third member return void. + [FCN_NULL]: Define void. + * i386/i386/db_trace.c (db_i386_reg_value): Make function void. + + device: new header file chario.h + * Makefrag.am: Include device/chario.h. + * device/chario.c (queue_delayed_reply, tty_output, char_open_done, char_read_done, char_write_done): Remove forward declarations. + * device/chario.h: New file. + Add copyright. + [_DEVICE_CHARIO_H_]: Add ifndef. + Include device/tty.h. + (queue_delayed_reply, tty_output, char_open_done, char_read_done, char_write_done): Add prototypes. + + ddb/db_examine.c: trivial stylistic fix for consistency + * ddb/db_examine.c: Trivial stylistic fix for consistency. + + ddb: move forward declarations into a header file + * ddb/db_examine.c (db_disasm, db_search): Remove forward declarations. + * ddb/db_examine.h (db_disasm, db_search): Add prototypes. + + ddb: move forward declaration into a header file + * ddb/db_sym.c (db_lookup): Remove forward declaration. + * ddb/db_sym.h (db_lookup): Add prototype. + + ddb: create new header file db_mp.h + * Makefrag.am: Include ddb/db_mp.h. + * ddb/db_mp.c (remote_db, lock_db, unlock_db): Remove forward declarations. + * ddb/db_mp.h: New file. + Add copyright. + [_DDB_DB_MP_H_]: Add ifndef. + (remote_db, lock_db, unlock_db): Add prototypes. + + ddb: move forward declarations into a header file + * ddb/db_run.c (db_set_task_single_step, db_clear_task_single_step): Remove forward declarations. + * ddb/db_run.h (db_set_task_single_step, db_clear_task_single_step): Add prototypes. + +2013-11-24 Samuel Thibault + + Simplify test + * ddb/db_sym.c (db_name_is_ambiguous): Simplify test for value returned by + X_db_lookup. + + Drop spurious volatile qualifier + * kern/processor.h (processor_doshutdown): Drop spurious volatile qualifier. + +2013-11-24 Marin Ramesa + + kern: move forward declarations into a header file + * kern/machine.c (processor_doaction, processor_doshutdown): Remove forward declarations. + * kern/processor.h (processor_doaction, processor_doshutdown): Add prototypes. + + kern: move forward declaration into a header file + * kern/eventcount.c [NCPUS] (simpler_thread_setrun): Remove forward declaration. + * kern/eventcount.h [NCPUS] (simpler_thread_setrun): Add prototype. + + kern: move forward declaration into a header file + * kern/timer.c (timer_init): Remove forward declaration. + * kern/timer.h (timer_init): Add prototype. + + kern: move forward declaration into a header file + * kern/mach_clock.c (softclock): Remove forward declaration. + * kern/timer.h (softclock): Add prototype. + + kern: move forward declarations into a header file + * kern/thread.c [MACH_DEBUG] (stack_init, stack_finalize): Remove forward declarations. + * kern/thread.h [MACH_DEBUG] (stack_init, stack_finalize): Add prototypes. + + vm: move forward declarations into a header file + * vm/vm_map.c (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Remove forward declarations. + * vm/vm_map.h (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard, vm_map_lookup_entry): Add prototypes. + + vm: move forward declarations into a header file + * vm/vm_object.c (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Remove forward declarations. + * vm/vm_object.h (memory_object_release, vm_object_deactivate_pages, vm_object_copy_delayed): Add prototypes. + +2013-11-24 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-11-24 Marin Ramesa + + Remove leftover register qualifiers + * ddb/db_break.c: Remove register qualifiers. + * i386/i386/pcb.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/intel/pmap.c: Likewise. + * kern/machine.c: Likewise. + * kern/queue.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/sched_prim.h: Likewise. + * kern/timer.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_resident.h: Likewise. + +2013-11-24 Richard Braun + + New RPC for thread destruction + A new call, thread_terminate_release, is added to support self + destruction in threading libraries. + + * include/mach/gnumach.defs (thread_terminate_release): New + simpleroutine declaration. + * kern/thread.c: Include vm/vm_user.h and ipc/mach_port.h. + (thread_terminate_release): New function. + * kern/thread.h (thread_terminate_release): New prototype. + +2013-11-24 Richard Braun + + Export mach_port_destroy declaration + * ipc/mach_port.h (mach_port_destroy): Add prototype. + +2013-11-22 Marin Ramesa + + ddb/db_break.c: remove duplicate include + * ddb/db_break.c: Don't include ddb/db_access.h. + +2013-11-21 Marin Ramesa + + i386/i386/db_interface.h: fix implicit declaration of function + * i386/i386/db_interface.h (cnpollc): Add prototype. + + ddb/db_sym.c: move assignment outside if + * ddb/db_sym.c: Move assignment outside of if. + (db_lookup): New variable. + + i386/i386at/kd.h: fix implicit declaration of function + * i386/i386at/kd.h [MACH_KDB] (kdb_kintr): Add prototype. + + ddb/db_break.c: fix implicit declaration of functions + * ddb/db_break.c: Include machine/db_interface.h. + +2013-11-20 Marin Ramesa + + i386/i386/trap.c: fix implicit declaration of function + * i386/i386/trap.c: Include machine/db_interface.h. + + i386/i386/db_trace.c: don't cast to db_addr_t + * i386/i386/db_trace.c (db_check_thread_address_valid): Don't cast argument 1 to db_addr_t. + +2013-11-20 Samuel Thibault + + Comment out db_search_null + * i386/i386/db_interface.c (db_search_null) [!GNU]: Do not define + db_search_null. + +2013-11-20 Marin Ramesa + + i386/i386/db_interface.c: add comments after else and endif + * i386/i386/db_interface.c [GNU]: Add comments after else and endif. + +2013-11-20 Marin Ramesa + + i386/i386/db_interface.c: remove return value + Void function returns with FALSE. Remove return value. + + * i386/i386/db_interface.c (db_task_name): Remove return value. + +2013-11-20 Marin Ramesa + + i386/i386/db_trace.c: fix implicit declaration of function + * i386/i386/db_trace.c: Include machine/db_interface.h. + + i386/i386/db_interface.c: fix implicit declaration of function + * i386/i386/db_interface.c: Include string.h. + + i386/i386/db_interface.c: fix implicit declaration of function + * i386/i386/db_interface.c: Include vm/vm_fault.h. + + Fix implicit declaration of function + * ddb/db_sym.c (aout_db_sym_init): Remove forward declaration. + * ddb/db_sym.h (aout_db_sym_init): Add prototype. + * i386/i386at/model_dep.c (aout_db_sym_init): Fix call. + [MACH_KDB]: Include ddb/db_sym.h. + [MACH_KDB]: Add comment after else and endif. + + kern/xpr.c: quiet warning about uninitialized variable + * kern/xpr.c (s): Initialize. + + kern/startup.c: fix implicit declaration of function + * kern/startup.c [MACH_KDB]: Include device/cons.h. + + ipc/ipc_print.h: include ipc/ipc_pset.h for ipc_pset_t + * ipc/ipc_print.h: Include ipc/ipc_pset.h for ipc_pset_t. + + ddb/db_variables.c: fix initializations from incompatible pointer type + * ddb/db_variables.c (db_set_default_thread, db_get_task_thread, db_arg_variable, fcn): Declare long return type. + + ddb/db_run.c: move declaration of brpc into SOFTWARE_SSTEP + * ddb/db_run.c (brpc): Move declaration into SOFTWARE_SSTEP code. + + ddb/db_run.c: trivial stylistic fix for consistency + * ddb/db_run.c: Trivial stylistic fix for consistency. + + ddb/db_run.c: remove set but unused variable + * ddb/db_run.c (ins): Remove variable. + + ddb: fix implicit declaration of function + * ddb/db_variables.c (db_read_write_variable): Remove forward declaration. + * ddb/db_variables.h (db_read_write_variable): Add prototype. + + ddb/db_examine.c: add missing cast + ddb/db_examine.c (addr, count): Cast to (db_expr_t *). + + Add comment + * ddb/db_command.c [DB_MACHINE_COMMANDS]: Add comment after endif. + +2013-11-20 Samuel Thibault + + Drop volatile function qualifier + * i386/i386/setjmp.h (_longjmp): Drop volatile function qualifier. + +2013-11-20 Marin Ramesa + + ddb/db_break.c: quiet GCC warning about uninitialized variable + * ddb/db_break.c (bkpt): Initialize. + +2013-11-19 Marin Ramesa + + kern/slab.c: initialize info_size + info_size is initialized to a random value. Quiet the warning by + initializing to zero. + + * kern/slab.c (info_size): Initialize to zero. + +2013-11-19 Marin Ramesa + + kern/slab.c: initialize optimal_embed + optimal_embed is initialized to a random value. Quiet the warning by + initializing to zero. + + * kern/slab.c (optimal_embed): Initialize to zero. + +2013-11-19 Marin Ramesa + + Add copyright + * ddb/db_write_cmd.h: Add copyright. + * ipc/ipc_print.h: Likewise. + * vm/vm_print.h: Likewise. + +2013-11-18 Marin Ramesa + + Add ifndefs + Finish up with the addition of ifndefs. + + * device/buf.h: Add ifndef. + * device/dev_master.h: Likewise. + * include/device/tty_status.h: Likewise. + * include/mach/version.h: Likewise. + * ipc/ipc_machdep.h: Likewise. + +2013-11-17 Marin Ramesa + + ddb/stab.h: add ifndef + * ddb/stab.h: Add ifndef. + + ddb/db_write_cmd.c: remove register qualifiers + * ddb/db_write_cmd.c: Remove register qualifiers. + + ddb/db_watch.c: remove register qualifiers + * ddb/db_watch.c: Remove register qualifiers. + + ddb/db_variables.c: remove register qualifiers + * ddb/db_variables.c: Remove register qualifiers. + + ddb/db_task_thread.c: remove register qualifiers + * ddb/db_task_thread.c: Remove register qualifiers. + + ddb/db_sym.h: add comment after endif + * ddb/db_sym.h: Add comment after endif. + + ddb/db_sym.c: remove register qualifiers + * ddb/db_sym.c: Remove register qualifiers. + + ddb/db_run.h: add ifndef + * ddb/db_run.h: Add ifndef. + + ddb/db_run.c: remove register qualifiers + * ddb/db_run.c: Remove register qualifiers. + + ddb/db_print.c: remove register qualifiers + * ddb/db_print.c: Remove register qualifiers. + + ddb/db_output.h: add ifndef + * ddb/db_output.h: Add ifndef. + + ddb/db_output.c: remove register qualifiers + * ddb/db_output.c: Remove register qualifiers. + + ddb/db_mp.c: remove register qualifier + * ddb/db_mp.c: Remove register qualifier. + + ddb/db_macro.c: remove register qualifiers + * ddb/db_macro.c: Remove register qualifiers. + + ddb/db_lex.h: add ifndef + * ddb/db_lex.h: Add ifndef. + + ddb/db_lex.c: remove register qualifiers + * ddb/db_lex.c: Remove register qualifiers. + + ddb/db_input.c: remove register qualifiers + * ddb/db_input.c: Remove register qualifiers. + + ddb/db_expr.c: remove register qualifier + * ddb/db_expr.c: Remove register qualifier. + + ddb/db_examine.c: remove register qualifiers + * ddb/db_examine.c: Remove register qualifiers. + + ddb/db_cond.c: remove register qualifiers + * ddb/db_cond.c: Remove register qualifiers. + + ddb/db_command.h: add ifndef + * ddb/db_command.h: Add ifndef. + + ddb/db_command.c: remove register qualifiers + * ddb/db_command.c: Remove register qualifiers. + + ddb/db_break.c: remove register qualifiers + * ddb/db_break.c: Remove register qualifiers. + + ddb/db_aout.c: remove register qualifiers + * ddb/db_aout.c: Remove register qualifiers. + + ddb/db_access.h: add ifndef + * ddb/db_access.h: Add ifndef. + + ddb/db_access.c: remove register qualifiers + * ddb/db_access.c: Remove register qualifiers. + +2013-11-17 Samuel Thibault + + Remove dead code + Thanks Marin Ramesa for the report. + + * i386/i386/user_ldt.c (selector_check): Remove function. + * i386/i386/user_ldt.h (S_CODE, S_STACK, S_DATA): Remove macros. + (selector_check): Remove declaration. + +2013-11-15 Marin Ramesa + + i386/intel/read_fault.c: remove register qualifier + * i386/intel/read_fault.c: Remove register qualifier. + + i386/intel/pmap.h: remove register qualifiers + * i386/intel/pmap.h: Remove register qualifiers. + + i386/intel/pmap.c: remove register qualifiers + * i386/intel/pmap.c: Remove register qualifiers. + + i386/i386at/rtc.h: remove register qualifiers + * i386/i386at/rtc.h: Remove register qualifiers. + + i386/i386at/rtc.c: remove register qualifier + * i386/i386at/rtc.c: Remove register qualifier. + + i386/i386at/lpr.c: remove register qualifier + * i386/i386at/lpr.c: Remove register qualifier. + + i386/i386at/kd_mouse.c: remove register qualifiers + * i386/i386at/kd_mouse.c: Remove register qualifiers. + + i386/i386at/kd.c: remove register qualifiers + * i386/i386at/kd.c: Remove register qualifiers. + + i386/i386at/kd_event.c: remove register qualifiers + * i386/i386at/kd_event.c: Remove register qualifiers. + + i386/i386at/int_init.h: add comment after endif + * i386/i386at/int_init.h (__ASSEMBLER__): Add comment after endif. + + i386/i386at/idt.h: add comment after endif + * i386/i386at/idt.h (__ASSEMBLER__): Add comment after endif. + + i386/i386at/com.c: remove register qualifiers + * i386/i386at/com.c: Remove register qualifiers. + + i386/i386at/com.c: trivial stylistic fix for consistency + * i386/i386at/com.c: Trivial stylistic fix for consistency. + + i386/i386at/autoconf.c: remove register qualifiers + * i386/i386at/autoconf.c: Remove register qualifiers. + + i386/i386/trap.c: remove register qualifiers + * i386/i386/trap.c: Remove register qualifiers. + + i386/i386/thread.h: add comment after endif + * i386/i386/thread.h (LINUX_DEV): Add comment after endif. + + i386/i386/pic.h: add comment after endif + * i386/i386/pic.h (__ASSEMBLER__): Add comment after endif. + + i386/i386/pcb.c: remove register qualifiers + * i386/i386/pcb.c: Remove register qualifiers. + + i386/i386/mp_desc.c: remove register qualifiers + * i386/i386/mp_desc.c: Remove register qualifiers. + + i386/i386/machine_routines.h: add comment after endif + * i386/i386/machine_routines.h (_I386_MACHINE_ROUTINES_H_): Add comment after endif. + + i386/i386/loose_ends.c: remove unused variable + * i386/i386/loose_ends.c (boothowto): Remove unused variable. + + i386/i386/loose_ends.c: add comment after endif + * i386/i386/loose_ends.c (NDEBUG): Add comment after endif. + + i386/i386/lock.h: remove register quaalifier + * i386/i386/lock.h: Remove register qualifier. + + i386/i386/kttd_interface.c: trivial stylistic fix for consistency + * i386/i386/kttd_interface.c: Trivial stylistic fix for consistency. + + i386/i386/hardclock.c: add comment after endif + * i386/i386/hardclock.c (LINUX_DEV): Add comment after endif. + + i386/i386/fpu.h: remove register qualifiers + * i386/i386/fpu.h: Remove register qualifiers. + + i386/i386/fpu.c: remove register qualifiers + * i386/i386/fpu.c: Remove register qualifiers. + + i386/i386/db_trace.c: qualify constants with const + * i386/i386/db_trace.c: Qualify constants with const. + + i386/i386/db_trace.c: remove register qualifiers + * i386/i386/db_trace.c: Remove register qualifiers. + + i386/i386/db_interface.c: remove register qualifiers + * i386/i386/db_interface.c: Remove register qualifiers. + + Fix typo + + i386/i386/vm_tuning.h: remove file + * i386/Makefrag.am: Remove i386/i386/vm_tuning.h. + * i386/i386/vm_tuning.h: Remove file. + * vm/vm_pageout.c: Don't include i386/i386/vm_tuning.h. + + i386/i386at: add ifndefs + * i386/i386at/kd_queue.h: Add ifndef. + * i386/i386at/kdsoft.h: Likewise. + * i386/i386at/lprreg.h: Likewise. + * i386/i386at/rtc.h: Likewise. + + chips/busses.c: remove register qualifiers + * chips/busses.c: Remove register qualifiers. + + chips/busses.c: use boolean instead of an int + * chips/busses.c (found): Constrain range of values to a boolean. + + vm/vm_user.c: remove register qualifiers + * vm/vm_user.c: Remove register qualifiers. + + vm/vm_resident.c: remove register qualifiers + * vm/vm_resident.c: Remove register qualifiers. + + vm/vm_pageout.c: remove register qualifiers + * vm/vm_pageout.c: Remove register qualifiers. + + vm/vm_object.c: remove register qualifiers + * vm/vm_object.c: Remove register qualifiers. + + vm/vm_map.c: remove register qualifiers + * vm/vm_map.c: Remove register qualifiers. + + vm/vm_map.c: trivial stylistic fix for consistency + * vm/vm_map.c: Trivial stylistic fix for consistency. + + vm/vm_kern.c: remove register qualifiers + * vm/vm_kern.c: Remove register qualifiers. + + vm/vm_fault.c: remove register qualifiers + * vm/vm_fault.c: Remove register qualifiers. + + vm/vm_fault.c: remove unused variable + * vm/vm_fault.c: Remove unused variable. + + vm/memory_object_proxy.h: fix definition + * vm/memory_object_proxy.h (_VM_MEMORY_OBJECT_PROXY_H_): Fix definition. + + vm/memory_object.c: remove register qualifiers + * vm/memory_object.c: Remove register qualifiers. + +2013-11-13 Marin Ramesa + + kern: remove register qualifiers + * kern/xpr.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/timer.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/timer.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/thread_swap.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/thread.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/task.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/syscall_subr.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/syscall_emulation.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/strings.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/startup.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/sched_prim.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/sched.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/queue.h: Remove register qualifiers. + + kern: remove register qualifiers + * kern/queue.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/processor.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/priority.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/printf.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/pc_sample.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/machine.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/mach_factor.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/mach_clock.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/lock_mon.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/lock.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_tt.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_sched.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ipc_mig.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/host.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/exception.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/eventcount.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/bootstrap.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/ast.c: Remove register qualifiers. + + kern: remove register qualifiers + * kern/act.c: Remove register qualifiers. + +2013-11-11 Marin Ramesa + + ipc: remove register qualifiers + * ipc/ipc_thread.h: Remove register qualifiers. + + ipc: remove register qualifiers + * ipc/mach_msg.c: Remove register qualifiers. + + ipc: qualify constants with const + * ipc/ipc_table.c: Qualify constants with const. + + ipc: trivial stylistic fix for consistency + * ipc/ipc_pset.c: Trivial stylistic fix for consistency. + +2013-11-11 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-11-11 Marin Ramesa + + ipc: remove register qualifiers + * ipc/ipc_kmsg.c: Remove register qualifiers. + +2013-11-11 Justus Winter <4winter@informatik.uni-hamburg.de> + + kern: fix the error handling in exec_load + Found using the Clang Static Analyzer. + + * kern/elf-load.c (exec_load): Properly propagate errors. + +2013-11-10 Marin Ramesa + + kern: comment unused variable + Variable reply_port is never used. There is indication in the comments + that it might be used in future function call, so comment it. + + * kern/ipc_mig.c (syscall_device_writev_request): Comment variable. + +2013-11-10 Marin Ramesa + + device: initialize to zero offset + Initialize addr to zero offset to quiet warnings about uninitialized + deallocation. + + * device/chario.c (addr): Initialize to zero. + +2013-11-10 Marin Ramesa + + remove register qualifiers + * device/subrs.c: Remove register qualifiers. + + remove register qualifiers + * device/net_io.c: Remove register qualifiers. + + remove definitions of ETHERMTU and ETHERMIN + * device/if_ether.h (ETHERMTU, ETHERMIN): Remove unused definitions. + + remove register qualifiers + * device/blkio.c: Remove register qualifiers. + +2013-11-09 Vladimir 'φ-coder/phcoder' Serbinenko + + Fix overflow in Xen clock computation + * xen/time.c (hyp_get_stime): Split `delta` into `delta_high` and + `delta_low`, as it may overflow 4 second timing nowadays. + +2013-11-09 Marin Ramesa + + Remove lint code + +2013-10-10 Richard Braun + + Increase kernel map entry pool size + * vm/vm_map.h (KENTRY_DATA_SIZE): Set to 256 pages. + +2013-09-28 Samuel Thibault + + Add files missing in distrib tarball + * Makefrag.am (libkernel_a_SOURCES): Add ddb/db_write_cmd.h, + ipc/ipc_print.h, vm/vm_print.h + * linux/Makefrag.am (EXTRA_DIST): Add linux/src/drivers/scsi/FlashPoint.c, + linux/src/drivers/scsi/eata_pio_proc.c, linux/src/drivers/scsi/scsiiom.c. + +2013-09-27 Thomas Schwinge + + Merge remote-tracking branch 'savannah/master' into master + + GNU Mach 1.4. + * version.m4 (AC_PACKAGE_VERSION): Set to 1.4. + * NEWS: Finalize changes for 1.4. + * README: Update. + + * configure.ac (AM_INIT_AUTOMAKE): Add dist-bzip2. + + Generate ChangeLog files for distributions. + * gitlog-to-changelog: New file; import from gnulib's + 9fc81090f6c5590bd1b0e0fa5087577a2ee43a3e:build-aux/gitlog-to-changelog. + * Makefile.am (gen-ChangeLog): New target. + (dist-hook): Depend on it. + + dist-hook extensibility. + * Makefile.am (dist-hook): Rename to... + (dist-rm-CVS): ... this new target. + (dist-hook): Depend on it. + + * README: Simplify build instructions. + Follow-up to commit 471e5b080f7790c2cf95e3069d9fed1173c9ec17. + +2013-09-27 Svante Signell + + Fix typo + * README: Fix typo. + +2013-09-26 Samuel Thibault + + Fix gpl.texi build + texinfo does not support @heading/@center in the middle of an enumerate. + + * doc/gpl.texi: Move "NO WARRANTY" to item heading. + +2013-09-26 Samuel Thibault + + Really update README + * README: Network drivers are actually enabled by default. + + Update README + * README: Update default drivers notice. Mention cross-compilation flags + for 64bit systems. + +2013-09-24 Samuel Thibault + + Drop Invariant, Front-Cover and Back-Cover references + The referenced Invariant sections does not exist, and the front and back + covers do not hold much information. + +2013-09-22 Marin Ramesa + + device: remove unused file dk_label.c + * device/dk_label.c: Remove file. + +2013-09-21 Marin Ramesa + + add comments after endifs + * device/ds_routines.c [CONFIG_PCMCIA, CONFIG_INET, LINUX_DEV, MACH_HYP]: Add comments after endifs. + + remove lint code + * device/ds_routines.c [lint]: Remove ifdefs and associated code. + + remove register qualifiers + * device/ds_routines.c: Remove register qualifiers. + + remove lint code + * device/dev_pager.c [lint]: Remove ifdefs and associated code. + + Coding style trivial fixes + + remove register qualifiers + * device/dev_pager.c: Remove register qualifiers. + +2013-09-16 Marin Ramesa + + another small change in style for consistency + * device/dev_name.c: Change in coding style. + +2013-09-16 Marin Ramesa + + use boolean_t instead of an int + Variable 'found' already receives values TRUE and FALSE, so why not make + it a boolean. + + * device/dev_name.c: Use boolean_t instead of an int. + +2013-09-16 Marin Ramesa + + remove preprocessor comments + The first one is a message that name lookup has been called, which + I think is safe to remove, or maybe add #if DEBUG. Second one is a + alternate calculation that I doubt it will ever be used, so I think + it's safe to remove it. + + * device/dev_name.c: Remove preprocessor comments. + +2013-09-16 Marin Ramesa + + another small change in style for consistency + * device/dev_name.c: Change in coding style. + + small style changes for consistency + * device/dev_name: Changes in coding style. + + remove register qualifiers + * device/dev_name.c: Remove register qualifiers. + +2013-09-15 Marin Ramesa + + remove definition of NDEVICES + NDEVICES is never used. Judging by the position and the comments + it was once used in initialization, but it's not anymore. I think + it's safe to remove it. + + * device/dev_lookup.c (NDEVICES): Remove definition. + +2013-09-15 Marin Ramesa + + remove register qualifiers + * device/dev_lookup.c: Remove register qualifiers. + +2013-09-11 Marin Ramesa + + remove register qualifiers. + * device/cirbuf.c: Remove register qualifiers. + +2013-09-11 Marin Ramesa + + track the console init with a boolean instead of an int + A variable that keeps track if the console init has been called. It should + never receive values other than 0 and 1, so constrain it's possible range of + values to a boolean. + + * device/cons.c (cn_inited): Use boolean_t instead of an int. + +2013-09-11 Marin Ramesa + + track the console buffer usage with a boolean instead of an int + A variable that keeps track of the console buffer usage should never receive + values other than 0 and 1, so constrain it's value range to boolean. Plus, it's + more readable this way. + + * device/cons.c (consbufused): Use boolean_t instead of an int. + +2013-09-11 Marin Ramesa + + drop unused CONSMAJOR + CONSMAJOR is never used. I'm guessing that in the past it was + a part of some problematic code. I don't see a reason to keep + it's definition. + + * device/cons.h (CONSMAJOR): Remove definition. + +2013-09-09 Marin Ramesa + + Remove register qualifiers + * device/chario.c: Remove register qualifiers. + + Add const qualifiers. + * device/chario.c (tty_inq_size, tty_outq_size): Qualify constants as const. + + Drop useless forward declaration + * device/chario.c (tty_flush): Remove forward declaration (prototype is in tty.h). + + Drop luna88k bits + * device/tty.h [luna88k]: Remove ifdef and include for nonexistent header files. + * kern/debug.c: Remove check for luna88k. + +2013-08-28 Samuel Thibault + + Drop FXSR initialization message + * i386/i386/fpu.c (init_fpu): Drop FXSR initialization message + +2013-07-18 Marin Ramesa + + kern: add missing prototype + * kern/lock.h (db_show_all_slocks): Add prototype. + + ipc: organize ipc print function prototypes + * ipc/ipc_print.h: New file. + [MACH_KDB] Include . + [MACH_KDB] Include . + [MACH_KDB] Include . + (ipc_port_print): Add prototype. + (ipc_pset_print): Likewise. + (ipc_kmsg_print): Likewise. + (ipc_msg_print): Likewise. + * ipc/ipc_port.h (ipc_port_print): Remove prototype. + * ipc/ipc_port.c [MACH_KDB]: Include . + * ipc/ipc_pset.h (ipc_pset_print): Remove prototype. + * ipc/ipc_pset.c [MACH_KDB]: Include . + * ipc/ipc_kmsg.c [MACH_KDB]: Include . + + vm: organize vm print function prototypes + * vm/vm_print.h: New file. + Include . + Include . + (vm_map_print): Add prototype. + (vm_map_copy_print): Likewise. + (vm_object_print): Likewise. + (vm_page_print): Likewise. + Include . + Include + * vm/vm_map.h (vm_map_print): Remove prototype. + * vm/vm_map.c [MACH_KDB]: Include . + * vm/vm_object.h (vm_object_print): Remove prototype. + * vm/vm_object.c [MACH_KDB]: Include . + * vm/vm_resident.c [MACH_KDB]: Include . + + ddb: cleanup db_command.c + * ddb/db_command.c (_longjmp): Remove prototype. + (vm_map_print): Likewise. + (vm_object_print): Likewise. + (vm_page_print): Likewise. + (vm_map_copy_print): Likewise. + (ipc_port_print): Likewise. + (ipc_pset_print): Likewise. + (db_show_all_slocks): Likewise. + (ipc_kmsg_print): Likewise. + (ipc_msg_print): Likewise. + Include . + Include . + Include . + * i386/i386/setjmp.h [__GNUC__] (_longjmp): Add prototype. + +2013-07-07 Marin Ramesa + + fix implicit declarations + * ddb/db_trap.c: Include . + * i386/i386/setjmp.h (_setjmp): Add prototype. + +2013-07-07 Samuel Thibault + + Restore db_help_cmd + * ddb/db_command.c (db_help_cmd): Restore function. + +2013-07-06 Marin Ramesa + + ddb: cleanup db_command.c + * ddb/db_write_cmd.h: New file. + (db_write_cmd): Add prototype. + Include . + Include . + * ddb/db_break.h (db_listbreak_cmd): Add prototype. + (db_delete_cmd): Likewise. + (db_breakpoint_cmd): Likewise. + * ddb/db_watch.h (db_listwatch_cmd): Likewise. + (db_deletewatch_cmd): Likewise. + (db_watchpoint_cmd): Likewise. + * ddb/db_print.h (db_show_one_thread): Likewise. + (db_show_all_threads): Likewise. + * ddb/db_examine.h (db_print_cmd): Likewise. + (db_examine_forward): Likewise. + (db_examine_backward): Likewise. + (db_search_cmd): Likewise. + * ddb/db_variables.h (db_set_cmd): Likewise. + * ddb/db_run.h (db_trace_until_call_cmd): Likewise. + (db_trace_until_matching_cmd): Likewise. + (db_continue_cmd): Likewise. + * ddb/db_command.h (db_fncall): Likewise. + * ddb/db_command.c: Include . + Include . + Include . + Include . + Include . + Include . + (db_listbreak_cmd): Remove prototype. + (db_listwatch_cmd): Likewise. + (db_show_one_thread): Likewise. + (db_show_all_threads): Likewise. + (db_show_macro): Likewise. + (db_show_help): Likewise. + (db_print_cmd): Likewise. + (db_examine_cmd): Likewise. + (db_set_cmd): Likewise. + (db_examine_forward): Likewise. + (db_examine_backward): Likewise. + (db_search_cmd): Likewise. + (db_write_cmd): Likewise. + (db_delete_cmd): Likewise. + (db_breakpoint_cmd): Likewise. + (db_deletewatch_cmd): Likewise. + (db_watchpoint_cmd): Likewise. + (db_single_step_cmd): Likewise. + (db_trace_until_call_cmd): Likewise. + (db_trace_until_matching_cmd): Likewise. + (db_continue_cmd): Likewise. + (db_cond_cmd): Likewise. + (db_help_cmd): Likewise. + (db_def_macro_cmd): Likewise. + (db_del_macro_cmd): Likewise. + (db_fncall): Likewise. + +2013-07-05 Marin Ramesa + + ddb: use and cleanup db_print.h + * ddb/db_command.c: Include db_print.h. + Remove extern db_show_regs(). + Remove extern db_show_one_task(). + Remove extern db_show_port_id(). + * ddb/db_print.c: Include db_print.h + * ddb/db_print.h (db_show_all_acts): Remove prototype. + (db_show_one_act): Likewise. + (db_show_shuttle): Likewise. + (db_show_one_task_vm): Likewise. + (db_show_all_task_vm): Likewise. + (db_show_one_space): Likewise. + (db_show_all_spaces): Likewise. + (db_sys): Likewise. + (db_port_kmsg_count): Likewise. + (db_show_one_simple_lock): Likewise. + (db_show_one_mutex): Likewise. + (db_show_subsystem): Likewise. + (db_show_runq): Likewise. + +2013-07-04 Marin Ramesa + + ddb: fix implicit declarations + * ddb/db_break.c: Include ddb/db_access.h. + * ddb/db_examine.h (db_xcdump): Add prototype. + * ddb/db_ext_symtab.c: Include vm/vm_user.h. + * ddb/db_input.c: Include device/cons.h. + * ddb/db_output.c: Likewise. + +2013-06-29 Marin Ramesa + + (slab_info): fix format warnings + * kern/slab.c (slab_info): Fix format for vm_size_t. + + Add device_pager_setup prototype + * device/ds_routines.h (device_pager_setup): Add prototype. + + Add [nh]to[hn][ls] prototypes + * device/net_io.h (ntohl, htonl, ntohs, htons): Add prototypes. + +2013-06-29 Samuel Thibault + + Fix int/long discrepancy + * device/net_io.c (bpf_match): Make the `keys' parameter a pointer to + unsigned int instead of unsigned long. + (bpf_do_filter): Make `A', `B' and `mem' unsigned ints instead of unsigned + longs. Also turn long casts into int casts. + +2013-06-24 Samuel Thibault + + Add partitioning reload support to ahci + * linux/dev/drivers/block/ahci.c (port): Add `gd' field. + (ahci_ioctl): New function. + (ahci_fops): Fill `ioctl' field with `ahci_ioctl'. + (ahci_probe_pci): Fill `gd' field with `gd'. + + Fix printing ahci PCI dev and fun + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Compute `dev' and `fun' + earlier so they can be printed. + +2013-06-10 Samuel Thibault + + Add missing 4KiB memory + * i386/i386at/model_dep.c (init_alloc_aligned): Let allocated area last + until end of memory map. + + Add non-contiguous mmap support + * i386/include/mach/i386/multiboot.h (multiboot_mmap): New structure + * i386/i386at/model_dep.c (mem_size_init): Parse boot_info.mmap_addr if + available. + (init_alloc_aligned): Likewise. + +2013-06-09 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-06-09 Samuel Thibault + + Do not skip AHCI controller without HOST_CAP_ONLY + We rather rely on the announced PCI type to determine whether to use IDE or + AHCI. + + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Do not skip AHCI + controller without HOST_CAP_ONLY. + +2013-06-09 Samuel Thibault + + Add timeout to ahci IDENTIFY + * linux/dev/drivers/block/ahci.c (identify_timeout): New function. + (identify_timer): New variable. + (ahci_probe_port): Add timer to abandon identify command. + + Fix printf format + * linux/dev/drivers/block/ahci.c (ahci_do_request): Cast capacity into unsigned + long and use %lu format. + (ahci_probe_port): Cast size into unsigned and use %u format. + + Fix format + +2013-06-09 Richard Braun + + Fix object construction in the slab allocator + There is currently no actual use of constructors, which is why this bug has + been long overlooked. + + * kern/slab.c (kmem_cpu_pool_fill): Call constructor on buffers unless + verification is enabled for the cache, or the constructor is NULL. + +2013-06-04 Marin Ramesa + + Comment unused variable + * kern/ipc_mig.c (syscall_device_write_request): Comment unused variable. + +2013-06-04 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2013-06-04 Miguel Figueiredo + + Fix format warnings + * vm/vm_resident.c (pmap_startup): Fix printf format. + * xen/block.c (hyp_block_init, device_write): Likewise. + * xen/net.c (hyp_net_init): Likewise. + +2013-06-02 Miguel Figueiredo + + Remove unused variable + * kern/act.c (act_create): Remove unused variable. + +2013-06-02 Richard Braun + + Fix yet another locking error in the slab allocator + * kern/slab.c (kmem_cache_free): Relock cache before retrying releasing + an object to the CPU pool layer. + +2013-06-02 Miguel Figueiredo + + Remove unused variable + * ipc/mach_port.c (mach_port_set_syscall_right): Remove unused variable. + +2013-05-30 Samuel Thibault + + Add LBA48 support to AHCI driver + * linux/dev/drivers/block/ahci.c (port): Extend `capacity' field type to + unsigned long long. Add `lba48' field. Make `identify' field unsigned. + (ahci_do_port_request): When `lba48' is true, use WIN_READDMA_EXT and + WIN_WRITEDMA_EXT commands. + (ahci_probe_port): Test lba48 flag, read capacity and set `lba48' + accordingly. Display size in GiB above 10GiB. + * linux/src/include/linux/hdreg.h (WIN_READDMA_EXT, WIN_WRITEDMA_EXT): New + macros + (hd_driveid): Add `command_set_2' and lba_capacity_2' fields. + +2013-05-27 Miguel Figueiredo + + Remove old elevator algorithm function + * device/blkio.c (disksort): remove unused function + +2013-05-19 Miguel Figueiredo + + Remove unneeded variable initialization + * kern/thread.c (thread_force_terminate): Remove unneeded variable + initialization. + +2013-05-19 Samuel Thibault + + Remove duplicate line + Reported by Miguel Figueiredo + + * kern/thread.c (thread_create): Remove duplicate reset of + new_thread->pc_sample.buffer to 0. + +2013-05-16 Richard Braun + + Reduce fragmentation in the slab allocator + This reverts a change brought when reworking slab lists handling that made + the allocator store slabs in LIFO order, whatever their reference count. + While it's fine for free slabs, it actually increased fragmentation for + partial slabs. + + * kern/slab.c (kmem_cache_alloc_from_slab): Insert slabs that become partial + at the end of the partial slabs list. + +2013-05-16 Richard Braun + + Rename list_insert to list_insert_head + This change increases clarity. + + * kern/list.h (list_insert): Rename to ... + (list_insert_head): ... this. + * kern/slab.c: Update calls to list_insert. + +2013-05-15 Richard Braun + + Fix itemization errors in the texinfo documentation + * doc/mach.texi: Replace @itemx with @item for --enable-tulip and + --enable-epic100. + +2013-05-13 Miguel Figueiredo + + Drop unused variables + * kern/slab.c (kalloc_init): Remove unused variables. + +2013-05-11 Samuel Thibault + + Add missing parameters to printf + * linux/dev/drivers/block/ahci.c (ahci_probe_dev): Add missing parameters to + printf. + +2013-05-10 Samuel Thibault + + Fix ahci.h path + * linux/Makefrag.am (liblinux_a_SOURCES): Fix path to ahci.h + + Add AHCI driver + * linux/dev/glue/kmem.c (vmtophys): New function. + * linux/dev/include/linux/mm.h (vmtophys): New prototype. + * linux/src/include/linux/pci.h (PCI_CLASS_STORAGE_SATA, + PCI_CLASS_STORAGE_SATA_AHCI): New macros. + * linux/dev/drivers/block/ahci.c: New file. + * linux/dev/include/ahci.h: New file. + * linux/Makefrag.am (liblinux_a_SOURCES): Add linux/dev/drivers/block/ahci.c + and linux/dev/drivers/block/ahci.h. + * linux/src/drivers/block/ide.c: Include . + (probe_for_hwifs): Call ahci_probe_pci. + +2013-05-02 Samuel Thibault + + Fix non-block-aligned-offset reads + This fixes grave issues when device_read is called with non-block-aligned + offset, e.g. when using grub-probe with a non-block-aligned partition table. + + * linux/dev/glue/block.c (rdwr_full): Use current position instead of base + buffer position to check for alignment. + +2013-05-01 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix macro name + * linux/dev/glue/block.c (device_get_status): Use + DEV_GET_RECORDS_RECORD_SIZE for DEV_GET_RECORDS instead of + DEV_GET_SIZE_RECORD_SIZE. + +2013-04-21 Richard Braun + + Optimize slab reaping + Instead of walking the list of free slabs while holding the cache lock, + detach the list from the cache and directly compute the final count values, + and destroy slabs after releasing the cache lock. + + * kern/slab.c (kmem_cache_reap): Optimize. + +2013-04-21 Richard Braun + + Rework slab lists handling + Don't enforce strong ordering of partial slabs. Separating partial slabs + from free slabs is already effective against fragmentation, and sorting + would sometimes cause pathological scalability issues. In addition, store + new slabs (whether free or partial) in LIFO order for better cache usage. + + * kern/slab.c (kmem_cache_grow): Insert new slab at the head of the slabs list. + (kmem_cache_alloc_from_slab): Likewise. In addition, don't sort partial slabs. + (kmem_cache_free_to_slab): Likewise. + * kern/slab.h: Remove comment about partial slabs sorting. + +2013-04-21 Richard Braun + + Fix locking error in the slab allocator + * kern/slab.c (kmem_cache_free): Lock cache before releasing an object to + the slab layer. + +2013-04-08 Samuel Thibault + + Add -fno-optimize-sibling-calls option for better kdb traces + * Makefrag.am (AM_CFLAGS) [enable_kdb]: Add -fno-optimize-sibling-calls + option. + +2013-03-11 Samuel Thibault + + Update BASEPRI_USER + * kern/sched.h (BASEPRI_USER): Increase to 25. + + Fix build without kdb + * i386/i386/db_interface.h [! MACH_KBD] (db_set_hw_watchpoint, + db_clear_hw_watchpoint, db_dr): Do not declare functions. + +2013-03-06 Samuel Thibault + + Increase number of priorities + * kern/sched.h (NRQS): Increase to 50. + +2013-03-05 Samuel Thibault + + Do not hardcode maximum priority value + * kern/sched_prim.c (do_priority_computation): Replace 31 with NRQS - 1. + idle_thread: Likewise. + +2013-02-04 Samuel Thibault + + Include machine/db_interface instead of hardcoding function prototypes + * ddb/db_access.c: Include . + (db_read_bytes, db_write_bytes): Remove functions prototypes. + (db_get_task_value): Fix calling db_read_bytes. + (db_put_task_value): Fix calling db_write_bytes. + * ddb/db_watch.c: Include . + (db_set_hw_watchpoint, db_clear_hw_watchpoint): Remove functions prototypes. + +2013-02-04 Samuel Thibault + + Plug hw debug register support into kdb + Make the `watch' command use hw debug registers whenever possible. + + * ddb/db_watch.c (db_set_hw_watchpoint, db_clear_hw_watchpoint): Add + functions prototypes. + (db_set_watchpoints): Try to call db_set_hw_watchpoint. + (db_clear_watchpoints): Call db_clear_hw_watchpoint. + * i386/i386/db_interface.c: Include + (db_set_hw_watchpoint): Take a db_watchpoint_t WATCH parameter instead of + its content. Remove support for clearing a debug register. + (db_clear_hw_watchpoint): Add function. + * i386/i386/db_interface.h: Include . + (db_set_hw_watchpoint): Fix function prototype. + (db_clear_hw_watchpoint): Add function prototype. + * i386/i386/db_machdep.h: Do not include + +2013-02-04 Samuel Thibault + + Document dwatch + * doc/mach.texi: Add dwatch documentation. + +2013-02-04 Samuel Thibault + + Add x86 hardware debugging register support + This adds using the x86 hardware debugging registers, either from the kernel + through db_set_hw_watchpoint, or from userland through i386_DEBUG_STATE. + While the kernel is using the registers, the userland values are ignored. + + * i386/i386/db_interface.c (kernel_dr, ids): New variables. + (db_load_context, db_get_debug_state, db_set_debug_state, db_dr, + db_set_hw_watchpoint): New functions. + (kdb_trap): Use get_dr* instead of dr_addr[]. + * i386/i386/db_interface.h (db_user_to_kernel_address, db_set_hw_watchpoint) + (db_dr, db_get_debug_state, db_set_debug_state, db_load_context): Add functions + prototypes. + (dr0, dr1, dr2, dr3): Remove functions prototypes. + * i386/i386/locore.S (dr6, dr0, dr1, dr2, dr3): Remove functions. + (dr_msk, dr_addr): Remove variables. + * i386/include/mach/i386/thread_status.h (i386_DEBUG_STATE): Add macro. + (i386_debug_state): Add structure. + (i386_DEBUG_STATE_COUNT): Add macro. + * i386/i386/thread.h: Include . + (i386_machine_state): Add `struct i386_debug_state ids' field. + * i386/i386/pcb.c: Include . + (switch_ktss): Call db_load_context. + (thread_setstatus, thread_getstatus): Add I386_DEBUG_STATE case. + * i386/i386/proc_reg.h (get_dr0, set_dr0, get_dr1, set_dr1, get_dr2, + set_dr2, get_dr3, set_dr3, get_dr6, set_dr6, get_dr7, set_dr7): Add macros. + +2013-02-03 Samuel Thibault + + Prevent the kernel from making any FPU use + * i386/Makefrag.am (AM_CFLAGS): Add -mno-3dnow -mno-mmx -mno-sse -mno-sse2. + +2013-01-31 Samuel Thibault + + Implement pmap_map_mfn for the PVH case + * i386/intel/pmap.c (pmap_map_mfn) [MACH_XEN && !MACH_PV_PAGETABLES]: + Implement. + + Make the PVH variant get sure that the support is available in the hypervisor + * i386/xen/xen_boothdr.S (FEATURES): Mark PVH features as required. + +2013-01-30 Samuel Thibault + + Add comment for TODO + + Do not use 4gb segment assistance in PVH + * i386/i386/gdt.c (gdt_init) [MACH_PV_DESCRIPTORS && !MACH_PV_PAGETABLES]: + Do not enable VMASST_TYPE_4gb_segments. + * i386/i386/trap.c (user_trap): Do not handle trap 15, 4gb segment + assist notification. + + Drop spurious inclusion + * i386/i386/vm_param.h [MACH_XEN && !MACH_PV_PAGETABLES]: Do not include + . + + Increase VM_MAX_KERNEL_ADDRESS for PVH case + * i386/i386/vm_param.h (VM_MAX_KERNEL_ADDRESS) [MACH_XEN && + !MACH_PV_PAGETABLES]: Remove hypervisor area from VM_MAX_KERNEL_ADDRESS + restriction. + +2013-01-28 Samuel Thibault + + More ifdef fixes for ring1 support and pv descriptors support + * i386/i386/idt_inittab.S: Turn MACH_XEN test into MACH_PV_DESCRIPTORS test. + * i386/i386/fpu.c: Turn appropriate MACH_HYP/XEN tests into MACH_RING1 tests. + * i386/i386/ktss.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/proc_reg.h: Likewise. + * i386/i386/trap.c: Likewise. + + Add initial code for disabling PV pagetables + * xen/configfrag.ac (--disable-pv-pagetables): Add option. + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_PV_PAGETABLES]: Add + writable_page_tables. + * i386/i386/gdt.c: Turn appropriate MACH_XEN/MACH_HYP tests into + MACH_PV_PAGETABLES tests. + * i386/i386/i386asm.sym: Likewise + * i386/i386/ldt.c: Likewise + * i386/i386/locore.S: Likewise + * i386/i386/proc_reg.h: Likewise + * i386/i386/user_ldt.c: Likewise + * i386/i386/vm_param.h: Likewise + * i386/i386/xen.h: Likewise + * i386/i386at/model_dep.c: Likewise + * i386/intel/pmap.h: Likewise + * include/mach/xen.h: Likewise + * xen/console.c: Likewise + * xen/store.c: Likewise + * i386/intel/pmap.c: Likewise. Define pmap_map_mfn as TODO stub. + + Fix comments + + Fix build with --disable-pseudo-phys + * i386/i386/i386asm.sym (PFN_LIST) [!MACH_PSEUDO_PHYS]: Do not define. + + Add initial code for disabling ring1 xen execution + * xen/configfrag.ac (--disable-ring1): Add option. + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_RING1]: Add + supervisor_mode_kernel. + * i386/i386/seg.h (KERNEL_RING) [!MACH_RING1]: Set macro to 0. + + Add initial code for disabling PV descriptors + * xen/configfrag.ac (--disable-pv-descriptors): Add option + * i386/xen/xen_boothdr.S (XEN_ELFNOTE_FEATURES) [!MACH_PV_DESCRIPTORS]: Add + writable_descriptor_tables. + * i386/i386/gdt.c: Turn appropriate MACH_XEN/MACH_HYP tests into + MACH_PV_DESCRIPTORS tests. + * i386/i386/gdt.h: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/idt.c: Likewise. + * i386/i386/idt_inittab.S: Likewise. + * i386/i386/ldt.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386/user_ldt.c: Likewise. + * i386/i386/user_ldt.h: Likewise. + +2013-01-22 Richard Braun + + Add the mach_print debugging system call + The purpose of this system call is to help debugging in situations where + it's desirable to bypass the mach_msg call entirely. + + * include/mach/syscall_sw.h (mach_print): Generate system call code. + * kern/syscall_subr.c: Include . + [MACH_KDB] (mach_print): New function. + * kern/syscall_subr.h (mach_print): New prototype. + * kern/syscall_sw.c [MACH_KDB] (mach_trap_table): Declare mach_print + system call. + +2013-01-13 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix task stats incrementations + * vm/vm_fault.c (vm_fault_page): Properly increment + current_task()->zero_fills and cow_faults. + +2013-01-13 David Höppner <0xffea@gmail.com> + + Add statistics for task_events_info + * ipc/ipc_mqueue.c (ipc_mqueue_send, ipc_mqueue_receive): Increment + counters for message sent and received. + * kern/ipc_kobject.c (ipc_kobject_server): Increment sent and received + counters for the kernel task. + * kern/task.c (task_create): Zero statistics. + * kern/task.c (task_info): Add task_events_info call. + * kern/task.h: Add statistics. + * vm/vm_fault.c (vm_fault_page): Increment zero_fills, pageins, + reactivations and cow_faults counters. + * vm/vm_fault.c (vm_fault_wire_fast): Increment faults counters. + * vm/vm_pageout.c (vm_pageout_scan): Increment reactivations counter. + +2013-01-08 Richard Braun + + Fix slab cache list locking + This problem was overlooked because of simple locks being no-ops. + + * kern/slab.c (slab_collect): Fix lock name to kmem_cache_list_lock. + (host_slab_info): Likewise. + +2013-01-08 Richard Braun + + Add function to dump a raw summary of the slab allocator state + The purpose of this function is to allow kernel code to display the state + of the slab caches in situations where the host_slab_info RPC wouldn't be + available, e.g. before a panic. + + * kern/slab.c (slab_info): New function. + * kern/slab.h: Add declaration for slab_info. + +2013-01-06 Samuel Thibault + + Double KENTRY_DATA_SIZE + * vm/vm_map.h (KENTRY_DATA_SIZE): Bump from 32 pages to 64 pages. + +2013-01-04 David Höppner <0xffea@gmail.com> + + Fix compilation warning implicit function declaration kdbprintf + When kernel debugger support is requested ipc and vm need + the prototype for the debugger function kdbprintf. + + * ddb/db_output.h: Add prototype for kdbprintf. + * ipc/ipc_object.c: Add include file ddb/db_output.h + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2012-12-27 Samuel Thibault + + Fix slow boot in virtualbox + By disabling some of the most slow drivers by default, and giving progress + feedback to the user. + + * linux/configfrag.ac (CONFIG_SCSI_NCR53C7xx, CONFIG_SCSI_AIC7XXX, + CONFIG_SCSI_GDTH): Disable by default + * linux/src/drivers/scsi/eata.c (__initfunc): Don't feed line in probe + message. + * linux/src/drivers/scsi/hosts.c (scsi_init): Print SCSI probe progress. + +2012-12-27 Samuel Thibault + + Fix spurious error on accessing fd1 + Cherry picked from Linux kernel commit 76c25284e0d845bff4ee1031721556148af4db1c + + * linux/dev/drivers/block/floppy.c (config_types): Clear from + `allowed_drive_mask' floppy drives whose cmos type is 0. + +2012-12-23 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2012-12-23 Samuel Thibault + + Make thread_suspend wait for !TH_UNINT + 0a55db5 made thread_suspend return KERN_FAILURE when the target thread is in + TH_UNINT state. That however is not currently handled by libc, and it's more + useful to just wait for the thread to get interruptible. + + * kern/sched_prim.c (thread_invoke): Wake NEW_THREAD->STATE for thread_suspend. + * kern/thread.c (thread_suspend): Wait on NEW_THREAD->STATE as long as THREAD + has TH_UNINT. + +2012-12-21 David S. Miller + + ide: Increase WAIT_DRQ to accomodate some CF cards and SSD drives. + Based upon a patch by Philippe De Muyter, and feedback from Mark + Lord and Robert Hancock. + + As noted by Mark Lord, the outdated ATA1 spec specifies a 20msec + timeout for setting DRQ but lots of common devices overshoot this. + + (cherry picked from Linux kernel commit 602da297e293eb2cbd28dcdbbe247593a46a853a) + + * linux/src/drivers/block/ide.h (WAIT_DRQ): Increase to 1 s. + +2012-12-21 Thomas Schwinge + + IDE disk drives with unusual C/H/S. + * linux/src/drivers/block/ide.c: Partially update to Linux 2.0.40 code. + +2012-12-05 Richard Braun + + Fix kernel task creation time + The mapable_time_init function is called before machine_init, but the + latter sets the system boot time. Fix their calling order. + + * kern/startup.c (setup_main): Call machine_init before mapable_time_init. + +2012-12-04 Richard Braun + + Strongly reduce risks of name capture in rbtree macros + * kern/rbtree.h (rbtree_lookup): Prefix local variable names with three + underscores. + (rbtree_lookup_nearest): Likewise. + (rbtree_insert): Likewise. + (rbtree_lookup_slot): Likewise. + (rbtree_insert_slot): Rewrite as an inline function. + +2012-11-21 Richard Braun + + Fix calls to vm_map when size is 0 + * vm/vm_map.c (vm_map_enter): return KERN_INVALID_ARGUMENT if size is 0. + * vm/vm_user.c (vm_map): Likewise. + +2012-11-19 Matthew Leach + + Fix compilation error with older versions of GCC + Some versions of GCC will error if you define a type twice (even if + the definition is the same). The NCR53C8XX SCSI driver defines + 'vm_offset_t', this is also defined in vm_types.h and will therefore + cause a compilation error depending on the GCC version. + + * linux/src/drivers/scsi/ncr53c8xx.c [!MACH] (vm_offset_t, vm_size_t): Don't + define types. + +2012-09-23 Samuel Thibault + + Fix gnumach_server_routine prototype + * kern/ipc_kobject.c (ipc_kobject_server): Set gnumach_server_routine + prototype to mig_routine_t. + +2012-09-23 Richard Braun + + Add missing file for page statistics + * kern/gnumach.srv: New file. + + Add missing file for page statistics + * include/mach/vm_cache_statistics.h: New file + +2012-09-23 Gianluca Guida + + Fix panic on irq >= 16 + * linux/src/drivers/net/pci-scan.c (pci_drv_register): Skip device + if we are getting an invalid IRQ >= 16 and different from 255 (it + happens in some motherboard). + +2012-09-23 Sergio Lopez + + Update DMA auto-enabling, make forcing DMA an option + * linux/configfrag.ac (--enable-ide-forcedma): Add option. + * linux/src/drivers/block/ide.c (ide_probe_promise_20246): Do not call + ide_init_promise. + (probe_for_hwifs): Add SI, VIA, AL PCI probing. + * linux/src/drivers/block/ide.h (hwif_chipset_t): Add hpt343, udma and + ultra66 chipsets. + * linux/src/drivers/block/triton.c: Update to upstream 1.14 version. + * linux/src/include/linux/hdreg.h (HDIO_GET_IDENTITY): Rename to ... + (HDIO_OBSOLETE_IDENTITY): ... new macro. + (HDIO_GET_IDENTITY): New macro. + (hd_driveid): Add fields for extended identification. + +2012-09-23 Alexey Dejneka + + Fix CDROM door unlock on closure without device_close + * linux/dev/glue/block.c + (device_open): Properly return devp on multiple opens. + (device_close_forced): Renamed from device_close, when force parameter is 1, do + not wait for open_count to become 0 before closing. + (device_close): New function. + (device_no_senders): New function. + linux_block_emulation_ops: Use (device_no_senders). + +2012-09-23 Richard Braun + + Provide basic page cache statistics + * Makefrag.am (EXTRA_DIST): Add kern/gnumach.srv. + (include_mach_HEADERS): Add include/mach/gnumach.defs and + include/mach/vm_cache_statistics.h + (nodist_libkernel_a_SOURCES): Add kern/gnumach.server.defs.c, + kern/gnumach.server.h, kern/gnumach.server.c, kern/gnumach.server.msgids, + kern/gnumach.server.defs. + * include/mach/mach_types.h: Add #include . + * kern/ipc_kobject.c (ipc_kobject_server): Declare and call + gnumach_server_routine. + * vm/vm_object.c (vm_object_cached_pages): New variable. + (vm_object_cached_pages_lock_data): Likewise. + (vm_object_deallocate): Update number of cached pages. + (vm_object_lookup): Likewise. + (vm_object_lookup_name): Likewise. + (vm_object_destroy): Likewise. + (vm_object_enter): Likewise. + * vm/vm_object.h (ref_count): Declare as int. + (resident_page_count): Likewise. + (vm_object_cached_count): Add extern declaration. + (vm_object_cached_pages): Likewise. + (vm_object_cached_pages_lock_data): Likewise. + (vm_object_cached_pages_update): New macro. + * vm/vm_resident.c (vm_page_insert): Assert resident page count doesn't + overflow, update number of cached pages as appropriate. + (vm_page_replace): Likewise. + (vm_page_remove): Update number of cached pages as appropriate. + * vm/vm_user.c: Add #include . + (vm_cache_statistics): New function. + * vm/vm_user.h: Add #include . + (vm_cache_statistics): New declaration. + * include/mach/gnumach.defs: New file. + +2012-08-24 Richard Braun + + Store threads waiting on a message queue in LIFO order + * ipc/ipc_thread.h (ipc_thread_enqueue_macro): Insert thread at the + head of the list instead of the tail. + +2012-07-14 Samuel Thibault + + Fix Xen boot at linear address 0xC0000000 + * i386/intel/pmap.c (pmap_bootstrap): Interate over linear addresses and compute + l3 and l2 offsets from it instead of assuming nul l3 offset. + +2012-07-08 Richard Braun + + Fix slab collection timing + The slab garbage collector uses sched_tick as its time reference, which + is increased every seconds, while the interval is expressed in clock + ticks. Use the proper time reference instead. + + * kern/slab.c (kmem_gc_last_tick): Declare as unsigned long. + (slab_collect): Use elapsed_ticks instead of sched_tick. + +2012-07-08 Richard Braun + + Increase the slab collection interval + * kern/slab.c (KMEM_GC_INTERVAL): Increase to 5 seconds. + +2012-07-07 Richard Braun + + Allocate kernel thread stacks out of kmem_map + The kernel submaps eat most of the available kernel space. Using the + main kernel map for thread stacks sometimes lead to exhaustion when many + threads are created. Use kmem_map instead to increase this limit. + + * kern/thread.c (stack_alloc): Use kmem_map instead of kernel_map for + stack allocation. + (stack_collect): Likewise for release. + +2012-07-07 Richard Braun + + Merge kalloc_map into kmem_map + * ipc/ipc_table.c: Add #include . + (ipc_table_alloc): Use kmem_map instead of kalloc_map when allocating + a table. + (ipc_table_realloc): Likewise for reallocation. + (ipc_table_free): Likewise for release. + * kern/kalloc.h (kalloc_map): Remove declaration. + * kern/slab.c (KMEM_MAP_SIZE): Increase to 128 MiB. + (KALLOC_MAP_SIZE): Remove macro. + (kalloc_map_store): Remove variable. + (kalloc_map): Likewise. + (kalloc_pagealloc): Use kmem_map instead of kalloc_map for general + purpose allocations. + (kalloc_pagefree): Likewise. + (kalloc_init): Remove the creation of kalloc_map. + +2012-06-10 Samuel Thibault + + Permit to select/deselect whole driver groups + * linux/configfrag.ac (AC_OPTION_Linux_group): New function + (AC_OPTION_Linux_ix86_at): Do not enable driver by default if the group was + explicitly disabled. + (scsi, net, pcmcia, wireless): Define groups. + +2012-05-17 Samuel Thibault + + Offset bios32 entry + * linux/src/arch/i386/kernel/bios32.c (check_pcibios, pcibios_init): Convert + physical bios32 entry address to kernel virtual address. + +2012-05-17 Samuel Thibault + + Clear direction flag after bios32 call + Linux does this, there are probably wild BIOSes out there. + + * linux/src/arch/i386/kernel/bios32.c (bios32_service, check_pcibios, + pci_bios_find_class, pci_bios_find_device, pci_bios_read_config_byte, + pci_bios_read_config_word, pci_bios_read_config_dword, + pci_bios_write_config_byte, pci_bios_write_config_word, + pci_bios_write_config_dword): Clear direction flag after lcall to bios32. + +2012-05-05 Samuel Thibault + + Offset kernel addresses by 3GiB + This permits better trace support in kdb. + + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS): Set to 0xC0000000 + * i386/Makefrag.am (_START): Set to 0xC0100000. + +2012-05-05 Samuel Thibault + + Document how to offset the kernel to get better debugging + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS): Document that it can be + changed, but _START has to be offset too. + (INIT_VM_MIN_KERNEL_ADDRESS): Document that it should remain 0. + +2012-04-27 Richard Braun + + Augment VM maps with a red-black tree + * vm/vm_map.c: Add #include . + (vm_map_setup): Initialize the map red-black tree. + (vm_map_entry_cmp_lookup): New function. + (vm_map_entry_cmp_insert): Likewise. + (_vm_map_entry_link): Insert map entry in the red-black tree. + (_vm_map_entry_unlink): Remove map entry from the red-black tree. + (vm_map_lookup_entry): Rework the way the VM map hint is used, and + replace the linear search with a binary search tree lookup. + (vm_map_copy_insert): Move map entries from the map copy tree to the + destination map tree. + (vm_map_copyin): Initialize the map copy red-black tree. + * vm/vm_map.h: Add #include . + (vm_map_entry): Add `tree_node' member. + (vm_map_header): Add `tree' member. + +2012-04-22 Richard Braun + + Update comments. + Literature about red-black trees vary concerning the cases numbering, + and the implementation doesn't make all of them clearly appear. Remove + cases numbering references to avoid confusion. + +2012-04-22 Richard Braun + + Fix copyright assignment + Maksym and I have assigned copyright to the Free Software Foundation. + In addition, restore the original upstream copyrights for correctness. + + * kern/list.h: Fix copyright assignment. + * kern/rbtree.c: Likewise. + * kern/rbtree.h: Likewise. + * kern/rbtree_i.h: Likewise. + * kern/slab.c: Likewise. + * kern/slab.h: Likewise. + +2012-04-06 Samuel Thibault + + Check hyp_stack_switch return + * i386/i386/pcb.c (switch_ktss): Check value returned by hyp_stack_switch. + + Fix integer type + * kern/thread.c (host_stack_usage): Set `total' type to natural_t. + +2012-04-06 Samuel Thibault + + Do not take address of va_list variable + This breaks on x86_64, where it is an array and thus gets bogus results. + + * ddb/db_output.c (db_printf, kdbprintf): Pass copy of va_list variable instead + of its address. + * kern/debug.c (panic, log): Likewise. + * kern/printf.c (vprintf, iprintf, sprintf, vsnprintf): Likewise. + (_doprnt): Take va_list instead of va_list *, fix usage and comment accordingly. + * kern/printf.h (_doprnt): Take va_list instead of va_list *. + +2012-03-24 Samuel Thibault + + Fix Xen boot after c74adfe + * i386/Makefrag.am (_START_MAP): Define symbol to 0x100000. + * i386/xen/Makefrag.am (_START_MAP): Define symbol to 0xC0000000. + * i386/ldscript: Use _START_MAP instead of hardcoding 0x100000. + +2012-03-24 Samuel Thibault + + Relocate kernel at bootup + Grub is not able to map us at high addresses. We can however make it load us at + low addresses (through the linker script mapping), then use segmentation to move + ourselves to high addresses, and switch to C which uses high addresses + (through _START definition). + + * i386/ldscript: Force mapping kernel at 0x100000, regardless of the value + of _START. + * i386/i386at/boothdr.S (boot_entry): Set up initial segments to project the + bootstrap linear space to high addresses. + +2012-03-24 Samuel Thibault + + Make sure BIOS area is mapped in kernel threads + * i386/i386at/model_dep.c (i386at_init): Map BIOS memory at 0. + * i386/intel/pmap.c (pmap_create): Do not map BIOS memory in user tasks. + +2012-03-24 Samuel Thibault + + Separate INIT_VM_MIN_KERNEL_ADDRESS from VM_MIN_KERNEL_ADDRESS + The former is the initial value set by the bootloader. It may not be the + same as what Mach will set up. + + * i386/i386/vm_param.h (INIT_VM_MIN_KERNEL_ADDRESS): New macro. + * i386/i386at/model_dep.c (i386at_init): Use INIT_VM_MIN_KERNEL_ADDRESS + instead of VM_MIN_KERNEL_ADDRESS. + +2012-03-24 Samuel Thibault + + Add missing phystokv/kvtophys calls + * i386/i386/vm_param.h [!MACH_XEN]: Do not include . + * i386/i386at/model_dep.c (init_alloc_aligned): Use phystokv to compare physical + memory addresses with kernel start, end, and symbol table. + * i386/intel/pmap.c (pmap_enter): Use kvtophys to convert ptp pointer to pte + entry. + * linux/dev/init/main.c (alloc_contig_mem, linux_init): Use phystokv to convert + allocated pages to virtual pointer. + * linux/src/include/asm-i386/io.h: Include . + (virt_to_phys): Call _kvtophys. + (phys_to_virt): Call phystokv. + * linux/src/include/linux/compatmac.h: Include . + (ioremap): Use phys_to_virt to convert physical address to virtual pointer. + (my_iounmap): Likewise. + * linux/dev/include/asm-i386/page.h: Include . + (PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Remove macros. + * linux/src/drivers/scsi/ncr53c8xx.c (vm_size_t): Remove type. + * linux/dev/glue/net.c: Include + (device_write): Call phystokv to convert from physical page address to + virtual pointer. + * linux/dev/glue/block.c (alloc_buffer, free_buffer, rdwr_full): Likewise. + + Fix issig crash at boot + * linux/dev/glue/misc.c (issig): Return 0 if current_thread() is NULL. + + Fix wrap-around in pmap bootstrap + * i386/intel/pmap.c (pmap_bootstrap): Check against `va' wrap around + 0xffffffff. + +2012-03-23 Samuel Thibault + + Fix boot with big values of _start + When _start is not close to 0, just using init_alloc_aligned() is not enough + to know how much should be duplicated between linear and virtual mappings. + Just mapping everything that can be is not very costly and should just work + when it can work. + + * i386/i386at/model_dep.c (i386at_init) [VM_MIN_KERNEL_ADDRESS != + LINEAR_MIN_KERNEL_ADDRESS]: Extend `nb_direct' to VM_MIN_KERNEL_ADDRESS - + LINEAR_MIN_KERNEL_ADDRESS. + +2012-03-22 Ludovic Courtès + + Refer to `PFN_LIST' on Xen only. + * i386/i386/i386asm.sym (PFN_LIST): Enclose in #ifdef MACH_XEN. Thanks + to Samuel Thibault for the suggestion. + +2012-03-20 Samuel Thibault + + Use long types + * ddb/db_examine.c (db_xcdump): Do not cast addr before passing to + db_read_bytes. + * ddb/db_macro.c (db_arg_variable): Return long. + * ddb/db_macro.h (db_arg_variable): Likewise. + * ddb/db_sym.c (db_maxoff): Set type to unsigned long. + * ddb/db_task_thread.c (db_set_default_thread, db_get_task_thread): Return + long. + * ddb/db_variables.h (db_variable): Make fcn function field to return long. + (FCN_NULL): Make function type return long. + * i386/i386/db_interface.c (int_regs): Set field sizes to long. + * i386/i386/db_machdep.h (db_expr_t): Set type to long. + * i386/i386/db_trace.c (db_i386_reg_value): Return long. Use long types. + (i386_frame, i386_kregs, interrupt_frame, db_nextframe): Set field sizes to + long. + (db_regs, i386_kregs): Use long * pointers. + (db_lookup_i386_kreg): Return long *. + (db_numargs, db_nextframe, db_stack_trace_cmd, db_i386_stack_trace): Use long + types. + * i386/i386/debug_i386.c (dump_ss): Fix format. + * i386/i386/ktss.c (ktss_init): Use long type. + * i386/i386/pcb.c (set_user_regs): Likewise. + * i386/i386/thread.h (i386_saved_state, v86_segs, i386_kernel_state, + i386_interrupt_state): Set field sizes to long. + * i386/i386/trap.c (kernel_trap, user_trap): Fix formats. + * kern/ast.h (ast_t): Set type to long. + * kern/boot_script.c (create_task, resume_task, prompt_resume_task, + boot_script_set_variable): Use long types. + * kern/boot_script.h (boot_script_set_variable): Use long type. + * kern/bootstrap.c (bootstrap_create): Pass long type. + * kern/lock.c (simple_lock, simple_lock_try): Use long type. + * linux/dev/kernel/softirq.c (linux_soft_intr): Fix format. + + Complain about Xen console smash only once at a time + * xen/console.c (hypputc): Warning only once per console write about console + ring smash. + + Make xchgl arch-neutral + * i386/i386/xen.h (xchgl): Use xchg instruction instead of xchgl, so the + assembler can detect unsigned long size. + +2012-03-20 Guillem Jover + + Use compiler defined __i386__ symbol instead of use defined i386 + * i386/configfrag.ac (i386): Remove definition. + * i386/intel/pmap.c (pmap_update_interrupt): Rename i386 to __i386__. + * i386/intel/pmap.h: Likewise. + * kern/debug.c (Debugger): Likewise. + * kern/lock.c (simple_lock, simple_lock_try, db_show_all_slocks): Likewise. + +2012-03-20 Guillem Jover + + Change types holding cpu flags from int to long + On amd64 the cpu flags is a 64-bit word, and long on 32-bit systems is + 32-bit wide anyway. + + * linux/dev/glue/kmem.c (linux_kmalloc, linux_kfree, __get_free_pages, + free_pages): Use unsigned long instead of unsigned. + * linux/dev/include/asm-i386/system.h (__save_flags, __restore_flags): + Likewise. + * linux/dev/kernel/printk.c (printk): Likewise. + * linux/src/drivers/scsi/advansys.c (DvcEnterCritical, DvcLeaveCritical, + advansys_queuecommand, advansys_abort, advansys_reset, advansys_interrupt, + interrupts_enabled, AdvISR): Likewise. + * linux/src/drivers/scsi/aha152x.c (aha152x_intr): Likewise. + * linux/src/drivers/scsi/aha1542.c (aha1542_intr_handle): Likewise. + * linux/src/drivers/scsi/aic7xxx.c (aic7xxx_done_cmds_complete): Likewise. + * linux/src/drivers/scsi/ultrastor.c (log_ultrastor_abort, + ultrastor_queuecommand, ultrastor_abort): Likewise. + +2012-03-20 Guillem Jover + + Match type for count with tty_get_status and tty_set_status + * i386/i386at/com.c (comgetstat): Use natural_t instead of `unsigned int'. + (comsetstat): Likewise. + * i386/i386at/kd.c (kdgetstat, kdsetstat): Likewise. + * i386/i386at/lpr.c (lprgetstat, lprsetstat): Likewise. + +2012-03-19 Samuel Thibault + + Use unsigned int for ELF 32bit values + * i386/include/mach/i386/exec/elf.h (Elf32_Addr, Elf32_Off, Elf32_Sword, + Elf32_Word): Use int type instead of long. + +2012-03-18 Samuel Thibault + + Fix assembly snippet portability + * xen/evt.c (hyp_c_callback): Do not set assembly instruction suffixes, + using 1UL constant instead. + + Use unsigned long types for addresses + * i386/include/mach/i386/vm_param.h (i386_btop, i386_ptob, i386_round_page, + i386_trunc_page): Cast to unsigned long. + + Use unsigned long for registers + * i386/i386/proc_reg.h (get_eflags, get_esp, get_eflags, get_cr0, get_cr2, + get_cr3, get_cr4): Return unsigned long type. + (set_eflags, set_cr0, set_cr3, set_cr4): Take unsigned long type. + + Do not hardcode structure offset + * i386/i386/i386asm.sym (R_EDI): Define macro. + * i386/i386/locore.S (t_page_fault): Use R_CR2-R_EDI instead of hardcoded + 12. + +2012-03-18 Samuel Thibault + + Set Xen kernel virtual address to 0xC0000000 + That makes the virtual addressing equal to linear addressing, thus optimizing + some computations away. + + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to + 0xC0000000UL. + * i386/xen/Makefrag.am (gnumach_LINKFLAGS): Set _START to 0xC0000000. + * i386/xen/xen_boothdr.S (VIRT_BASE, ELF_PADDR_OFFSET): Set to 0xC0000000. + +2012-03-18 Samuel Thibault + + Fix access above 4GiB in bootstrap page table + * i386/intel/pmap.c (pmap_set_page_readonly_init) [PAE]: Access the bootstrap + dirbase with PTEMASK (1 page) instead of PDEMASK (4 pages) through pmap_pde. + +2012-03-15 Thomas Schwinge + + Fix build error introduced in 5f701793f63f16d111db3e3d2e91134fcc179c5b. + * linux/src/include/linux/interrupt.h (intr_count): Declare as unsigned int. + +2012-03-14 Samuel Thibault + + Simplify splx + * i386/i386/spl.S (splx): Use S_ARG0 instead of reimplementing it. + + Fix variable types according to assembly use + * linux/dev/arch/i386/kernel/irq.c (intr_count): Set to int type. + * linux/dev/kernel/softirq.c (bh_active, bh_mask): Likewise. + (linux_soft_intr: active, mask, left): Likewise + * linux/src/include/linux/interrupt.h (bh_active, bh_mask): Likewise. + * linux/src/kernel/softirq.c (intr_count, bh_active, bh_mask): Likewise. + (do_bottom_half: active, mask, left): Likewise + + Stick to binutils ELF scripts + * i386/ldscript: Reformat to follow binutils version + + Fix PAE page frame number mask. + * i386/intel/pmap.h (INTEL_PTE_PFN): Keep only 47bits, others are not usable. + + Fix Xen bootstrap at virtual address above 1GiB + * i386/intel/pmap.h (lin2pdpnum): New macro. + * i386/intel/pmap.c (pmap_set_page_readonly_init): Use lin2pdpnum macro + instead of hardcoding 0. + + Simplify i386at_init + * i386/i386at/model_dep.c (i386at_init): Do not copy linear into virtual kernel + mapping when they are equal, and do not drop the former either. Use the + function `i' variable. + + Simplify kvtophys + * i386/i386/phys.c (kvtophys): Use pte_to_pa macro instead of reimplementing + it. + +2012-03-09 Samuel Thibault + + Use unsigned long for addresses and sizes + TODO: remonter formats + + * i386/include/mach/i386/vm_types.h (vm_offset_t): Define to unsigned long. + (signed32_t): Define to signed int. + (unsigned32_t): Define to unsigned int. + * i386/include/mach/sa/stdarg.h (__va_size): Use sizeof(unsigned long)-1 + instead of 3. + * include/mach/port.h (mach_port_t): Define to vm_offset_t instead of + natural_t. + * include/sys/types.h (size_t): Define to unsigned long instead of + natural_t. + * linux/src/include/asm-i386/posix_types.h (__kernel_size_t): Define to + unsigned long. + (__kernel_ssize_t): Define to long. + * linux/src/include/linux/stddef.h (size_t): Define to unsigned long. + + * device/dev_pager.c (dev_pager_hash): Cast port to vm_offset_t insted of + natural_t. + (device_pager_data_request): Fix format. + + * device/ds_routines.c (ds_no_senders): Fix format. + * i386/i386/io_map.c (io_map): Likewise. + * i386/i386at/autoconf.c (take_dev_irq): Likewise. + * i386/i386at/com.c (comattach): Likewise. + * i386/i386at/lpr.c (lprattach): Likewise. + * i386/i386at/model_dep.c (mem_size_init, mem_size_init, c_boot_entry): + Likewise. + * i386/intel/pmap.c (pmap_enter): Likewise. + * ipc/ipc_notify.c (ipc_notify_port_deleted, ipc_notify_msg_accepted, + ipc_notify_dead_name): Likewise. + * ipc/mach_port.c (mach_port_destroy, mach_port_deallocate): Likewise. + * kern/ipc_kobject.c (ipc_kobject_destroy): Likewise. + * kern/slab.c (kalloc_init): Likewise. + * vm/vm_fault.c (vm_fault_page): Likewise. + * vm/vm_map.c (vm_map_pmap_enter): Likewise. + * xen/block.c (device_read): Likewise. + + * device/net_io.c (bpf_match): Take unsigned long * instead of unsigned int + *. + (bpf_do_filter): Make mem unsigned long instead of long. + * i386/i386/ktss.c (ktss_init): Cast pointer to unsigned long instead of + unsigned. + * i386/i386/pcb.c (stack_attach, switch_ktss): Cast pointers to long instead of + int. + * i386/i386/trap.c (dump_ss): Likewise. + * ipc/ipc_hash.c (IH_LOCAL_HASH): Cast object to vm_offset_t. + * ipc/mach_msg.c (mach_msg_receive, mach_msg_receive_continue): Cast kmsg to + vm_offset_t instead of natural_t. + * kern/pc_sample.c (take_pc_sample): Cast to vm_offset_t instead of + natural_t. + * kern/boot_script.c (sym, arg): Set type of `val' field to long instead of int. + (create_task, builtin_symbols, boot_script_parse_line, + boot_script_define_function): Cast to long instead of int. + * kern/bootstrap.c (bootstrap_create): Likewise. + * kern/sched_prim.c (decl_simple_lock_data): Likewise. + * kern/printf.c (vsnprintf): Set size type to size_t. + * kern/printf.h (vsnprintf): Likewise. + * vm/vm_map.h (kentry_data_size): Fix type to vm_size_t. + * vm/vm_object.c (vm_object_pmap_protect_by_page): Fix size parameter type + to vm_size_t. + +2012-03-08 Samuel Thibault + + Move kentry_data_size initial value to header + * vm/vm_map.h (KENTRY_DATA_SIZE): Define macro. + * vm/vm_map.c (kentry_data_size): Initialize to KENTRY_DATA_SIZE. + +2012-03-03 Gabriele Giacone <1o5g4r8o@gmail.com> + + Set default serial parameters to 8N1 instead of 7E1 + * i386/i386at/com.c (comcninit): Set LINE_CTL register to i8BITS instead of + i7BITS|iPEN. + +2012-02-19 Samuel Thibault + + Fix format for string print + * linux/src/drivers/net/3c505.c (elp_sense): Use %s format for printing a mere + string, not the string. + + Fix format for string print + * linux/src/drivers/net/8390.c: Use %s format for printing a mere string, not + the string. + + Fix format for string print + * linux/src/drivers/net/3c503.c (el2_probe1): Use %s format for printing a mere + string, not the string. + + Fix format for string print + * linux/src/drivers/scsi/aha1542.c (aha1542_setup): Use %s format for printing a + mere string, not the string. + + Fix format for string print + * linux/src/drivers/scsi/advansys.c (asc_prt_line): Use %s format for + printing a mere string, not the string. + + Fix format for string print + * i386/i386at/model_dep.c (c_boot_entry): Use %s format for printing a mere + string, not the string. + +2012-01-28 Samuel Thibault + + Merge branch 'master' into master-slab + +2012-01-22 Samuel Thibault + + Fix build on 64bit host + When stealing the memset function from the 32bit host libc on a 64bit host + system, glibc tends to bring unwanted references to _Unwind_Resume, + __gcc_personality_v0, etc. So let's stop stealing memset. + + * kern/strings.c (memset): New function. + * Makefile.am (clib_routines): Remove memset. + +2012-01-09 Richard Braun + + Improve ipc hash/marequest init readability + Use macros instead of raw numeric values. + + * ipc/ipc_hash.h (IPC_HASH_GLOBAL_SIZE): New macro. + * ipc/ipc_hash.c (ipc_hash_init): Directly set the global hash table + size to IPC_HASH_GLOBAL_SIZE. + * ipc/ipc_marequest.h (IPC_MAREQUEST_SIZE): New macro. + * ipc/ipc_marequest.c (ipc_marequest_init): Directly set the marequest + hash table size to IPC_MAREQUEST_SIZE. + +2011-12-30 Samuel Thibault + + Cope with dom0s which do not respect feature-no-csum-offload + Event with feature-no-csum-offload=1, some dom0s (such as Debian Squeeze's + 2.6.32) send packets with a blank checksum. Recompute them before givin the + packet to pfinet. + + * xen/net.c (recompute_checksum): New function. + (hyp_net_intr): Call recompute_checksum when the checksum is blank but the + data is validated. + +2011-12-29 Samuel Thibault + + Fix typo + + Upgrade number of event queues + * kern/sched_prim.c (NUMQUEUES): Increase to 1031 + +2011-12-17 Richard Braun + + Remove arbitrary limits used by the zone system + The zone allocator could limit the size of its zones to an arbitrary + value set at zinit() time. There is no such parameter with the slab + module. As a result of removing those limits, the kern/mach_param.h + header becomes empty, and is simply removed altogether. + + * Makefrag.am (libkernel_a_SOURCES): Remove kern/mach_param.h. + * i386/i386/fpu.c: Remove #include . + * i386/i386/machine_task.c: Likewise. + * i386/i386/pcb.c: Likewise. + * ipc/ipc_init.c: Likewise. + (ipc_space_max): Remove variable. + (ipc_tree_entry_max): Likewise. + (ipc_port_max): Likewise. + (ipc_pset_max): Likewise. + * ipc/ipc_init.h (IPC_ZONE_TYPE): Remove macro. + (ipc_space_max): Remove extern declaration. + (ipc_tree_entry_max): Likewise. + (ipc_port_max): Likewise. + (ipc_pset_max): Likewise. + * ipc/ipc_hash.c (ipc_hash_init): Don't use ipc_tree_entry_max to + compute ipc_hash_global_size. + * ipc/ipc_marequest.c: Remove #include . + (ipc_marequest_max): Remove variable. + (ipc_marequest_init): Don't use ipc_marequest_max to compute + ipc_marequest_size. + (ipc_marequest_info): Return (unsigned int)-1 in maxp. + * kern/act.c: Remove #include . + * kern/mach_clock.c: Likewise. + * kern/priority.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * vm/memory_object_proxy.c: Likewise. + * vm/vm_fault.c: Likewise. + +2011-12-17 Richard Braun + + Remove the defunct kernel_task_create() function + The kmem_suballoc() function, which has been replaced with + kmem_submap(), is called by kernel_task_create(). Rather than update it, + remove this now unused function. + + * kern/task.c (kernel_task_create): Remove function. + * kern/task.h (kernel_task_create): Remove prototype. + +2011-12-17 Richard Braun + + Fix kern/kalloc.h includes + * device/dev_pager.c: Remove #include . + * i386/i386/io_perm.c: Add #include . + * kern/bootstrap.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/processor.c: Likewise. + * kern/server_loop.ch: Likewise. + * kern/thread.c: Likewise. + * linux/dev/glue/block.c: Likewise. + * linux/dev/glue/net.c: Likewise. + * vm/vm_map.c: Likewise. + * xen/block.c: Likewise. + * xen/net.c: Likewise. + * xen/store.c: Likewise. + +2011-12-17 Richard Braun + + Adjust VM initialization + Unlike the zone allocator, the slab code can't be fed with an initial + chunk of memory. Some VM objects used early during startup now have to + be statically allocated, and kernel map entries need a special path + to avoid recursion when being allocated. + + * vm/vm_map.c (vm_submap_object_store): New variable. + (vm_submap_object): Point to vm_submap_object_store. + (kentry_data_size): Initialize to arbitrary value. + (kentry_count): Remove variable. + (kentry_pagealloc): New function. + (vm_map_setup): Likewise. + (vm_map_create): Replace initialization with a call to vm_map_setup(). + * vm/vm_map.h (vm_map_setup): New prototype. + * vm/vm_kern.c (kernel_map_store): New variable. + (kernel_map): Point to kernel_map_store. + (kmem_suballoc): Remove function. Replaced with... + (kmem_submap): New function. + (kmem_init): Call vm_map_setup() instead of vm_map_create(). + * vm/vm_kern.h (kmem_suballoc): Remove prototype. + (kmem_submap): New prototype. + * vm/vm_object.c (kernel_object_store): New variable. + (kernel_object): Point to kernel_object_store. + (vm_object_template): Change type from vm_object_t to struct vm_object. + (_vm_object_setup): New function. + (_vm_object_allocate): Replace initialization with a call to + _vm_object_setup(). + (vm_object_bootstrap): Don't allocate vm_object_template, and use it as + a structure instead of a pointer. Initialize kernel_object and + vm_submap_object with _vm_object_setup() instead of + _vm_object_allocate(). + * vm/vm_resident.c (vm_page_bootstrap): Don't initialize + kentry_data_size. + * device/ds_routines.c (device_io_map_store): New variable. + (device_io_map): Point to device_io_map_store. + (mach_device_init): Call kmem_submap() instead of kmem_suballoc(). + * ipc/ipc_init.c (ipc_kernel_map_store): New variable. + (ipc_kernel_map): Point to ipc_kernel_map_store. + +2011-12-17 Richard Braun + + Adjust the kernel to use the slab allocator + * device/dev_lookup.c: Replace zalloc header, types and function calls + with their slab counterparts. + * device/dev_pager.c: Likewise. + * device/ds_routines.c: Likewise. + * device/io_req.h: Likewise. + * device/net_io.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_perm.c: Likewise. + * i386/i386/machine_task.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/task.h: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Remove #include . + * include/mach_debug/mach_debug.defs (host_zone_info): Replace + routine declaration with skip directive. + (host_slab_info): New routine declaration. + * include/mach_debug/mach_debug_types.defs (zone_name_t) + (zone_name_array_t, zone_info_t, zone_info_array_t): Remove types. + (cache_info_t, cache_info_array_t): New types. + * include/mach_debug/mach_debug_types.h: Replace #include + with . + * ipc/ipc_entry.c: Replace zalloc header, types and function calls with + their slab counterparts. + * ipc/ipc_entry.h: Likewise. + * ipc/ipc_init.c: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/ipc_table.c (kalloc_map): Remove extern declaration. + * kern/act.c: Replace zalloc header, types and function calls with their + slab counterparts. + * kern/kalloc.h: Add #include . + (MINSIZE): Remove definition. + (kalloc_map): Add extern declaration. + (kget): Remove prototype. + * kern/mach_clock.c: Adjust comment. + * kern/processor.c: Replace zalloc header, types and function calls with + their slab counterparts. + * kern/startup.c: Remove #include . + * kern/task.c: Replace zalloc header, types and function calls with + their slab counterparts. + * kern/thread.c: Likewise. + * vm/memory_object_proxy.c: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_init.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_page.h: Remove #include . + * vm/vm_pageout.c: Replace zalloc header, types and function calls with + their slab counterparts. + * vm/vm_resident.c: Likewise. + (zdata, zdata_size): Remove declarations. + (vm_page_bootstrap): Don't steal memory for the zone system. + +2011-12-17 Richard Braun + + Import the slab allocator + As it is intended to completely replace the zone allocator, remove it on + the way. So long to the venerable code ! + + * Makefrag.am (libkernel_a_SOURCES): Add kern/slab.{c,h}, remove kern/kalloc.c + and kern/zalloc.{c,h}. + * configfrag.ac (SLAB_VERIFY, SLAB_USE_CPU_POOLS): Add defines. + * i386/Makefrag.am (libkernel_a_SOURCES): Remove i386/i386/zalloc.h. + * i386/configfrag.ac (CPU_L1_SHIFT): Remove define. + * include/mach_debug/slab_info.h: New file. + * kern/slab.c: Likewise. + * kern/slab.h: Likewise. + * i386/i386/zalloc.h: Remove file. + * include/mach_debug/zone_info.h: Likewise. + * kern/kalloc.c: Likewise. + * kern/zalloc.c: Likewise. + * kern/zalloc.h: Likewise. + +2011-12-17 Richard Braun + + Import utility files + * Makefrag.am (libkernel_a_SOURCES): Add kern/list.h, kern/rbtree.c, + kern/rbtree.h and kern/rbtree_i.h. + * kern/list.h: New file. + * kern/rbtree.c: Likewise. + * kern/rbtree.h: Likewise. + * kern/rbtree_i.h: Likewise. + * kern/macro_help.h (MACRO_BEGIN): Use GNU C compound statement + enclosed in parentheses. + (MACRO_END): Likewise. + +2011-11-27 Samuel Thibault + + Keep frame pointer when debugger is enabled + * Makefrag.am (AM_CFLAGS) [enable_kdb]: Add -fno-omit-frame-pointer. + +2011-10-16 Samuel Thibault + + Merge branch 'master' of callisto:gnumach + +2011-10-16 Samuel Thibault + + Do not map xen driver pages + * xen/block.c (hyp_block_init): Use vm_page_grab_phys_addr instead of + kmem_alloc_wired to allocate driver pages. + * xen/net.c (hyp_net_init): Likewise. + +2011-10-16 Samuel Thibault + + Increase kmem area for the Xen case. + Kernel tacks are 4 pages in the Xen case, so we need more kmem space. + + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE) [MACH_XEN]: Increase to 224MiB. + +2011-10-10 Samuel Thibault + + Raise block device interrupt level to SPL6 + * linux/dev/drivers/block/genhd.c (device_setup): Set linux_intr_pri to + SPL6. + * linux/dev/glue/block.c (init_partition, device_open): Likewise. + + Raise Linux kmem memory size + * linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 32. + +2011-10-10 Samuel Thibault + + Leave interrupts enabled in sym53c8xx driver + The driver can work with them, and request_irq works fine with them. + + * linux/src/drivers/scsi/sym53c8xx.c (ncr_attach): Do not pass SA_INTERRUPT to + request_irq(). + +2011-10-09 Samuel Thibault + + Define BITS_PER_LONG for Linux code + * linux/src/include/asm-i386/types.h (BITS_PER_LONG): Define to 32. + +2011-10-08 Samuel Thibault + + Add sym53c8xx driver from linux 2.2 + This driver supports qemu's SCSI host device. + Unfortunately it seems to be breaking the network device, so test with care. + + * linux/Makefrag.am (liblinux_a_SOURCES): Add + linux/src/drivers/scsi/sym53c8xx{.c,_comm.h,.h,_defs.h} + * linux/configfrag.ac: Add AC_Linux_DRIVER([sym53c8xx] to enable + CONFIG_SCSI_SYM53C8XX. + * linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 16. + * linux/src/drivers/scsi/hosts.c [CONFIG_SCSI_SYM53C8XX]: Include "sym53c8xx.h". + (builtin_scsi_hosts): include SYM53C8XX. + +2011-09-28 Sergio Lopez + + fix copy out-of-line data when length >= 512MB + * ipc/ipc_kmsg.c (ipc_kmsg_copyin_body): Change length type to + unsigned64_t. Cast number to unsigned64_t. + (ipc_kmsg_copyout_body): Likewise. + +2011-09-28 Sergio López + + Make thread_suspend honor the TH_UNINT flag + Interrupting a thread without a continuation, puts it in a + inconsistent state. This is the cause for the bug described in + https://lists.gnu.org/archive/html/bug-hurd/2011-09/msg00148.html + + * kern/thread.c (thread_suspend): Fail with KERN_FAILURE if thread is + uninterruptible. + +2011-09-12 Guillem Jover + + Remove unused [!MACH_KERNEL] driver code + Use «unifdef -DMACK_KERNEL=1» as a starting point, but only remove + the code not exposed on public headers, the rest is needed to build + properly from userland. + + * device/cons.c [!MACH_KERNEL]: Remove includes. + [!MACH_KERNEL] (constty): Remove variable. + (cninit, cnmaygetc) [MACH_KERNEL]: Remove preprocessor conditionals. + [!MACH_KERNEL] (cnopen, cnclose, cnread, cnwrite, cnioctl, cnselect) + (cncontrol): Remove functions. + * device/cons.h (struct consdev) [MACH_KERNEL]: Remove preprocessor + conditional. + * device/kmsg.h [MACH_KERNEL]: Likewise. + * i386/i386at/autoconf.c [!MACH_KERNEL]: Remove includes. + * i386/i386at/kd_event.c [!MACH_KERNEL]: Likewise. + [!MACH_KERNEL] (kbd_sel, kbdpgrp, kbdflag): Remove variables. + [!MACH_KERNEL] (KBD_COLL, KBD_ASYNC, KBD_NBIO): Remove macros. + (kbdopen, kbdclose, kbd_enqueue) [!MACH_KERNEL]: Remove code. + [!MACH_KERNEL] (kbdioctl, kbdselect, kbdread): Remove functions. + [!MACH_KERNEL] (X_kdb_enter_init, X_kdb_exit_init: Likewise. + * i386/i386at/kd_mouse.c [!MACH_KERNEL]: Remove includes. + [!MACH_KERNEL] (mouse_sel, mousepgrp, mouseflag): Remove variables. + [!MACH_KERNEL] (MOUSE_COLL, MOUSE_ASYNC, MOUSE_NBIO): Remove macros. + (mouseopen, mouseclose, kd_mouse_read, mouse_enqueue) [!MACH_KERNEL]: Remove + code. + [!MACH_KERNEL] (mouseioctl, mouseselect, mouseread): Remove functions. + * i386/i386at/lpr.c [!MACH_KERNEL]: Remove includes. + (lpropen) [MACH_KERNEL]: Remove preprocessor conditionals. + (lpropen, lprclose, lprstart) [!MACH_KERNEL]: Remove code. + [!MACH_KERNEL] (lprwrite, lprioctl, lprstop): Remove functions. + * i386/i386at/rtc.c (readtodc, writetodc) [!MACH_KERNEL]: Remove code. + * kern/mach_factor.c [MACH_KERNEL]: Remove preprocessor conditional. + * xen/time.c (readtodc) [!MACH_KERNEL]: Remove code. + +2011-09-09 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2011-09-09 Guillem Jover + + Do not take unused strpbrk() from libc + * Makefile.am (clib_routines): Remove strpbrk. + +2011-09-06 Thomas Schwinge + + * .gitignore: Tighten some rules, and distribute others to... * doc/.gitignore: ... here; * i386/i386/.gitignore: ... here; * tests/.gitignore: ..., and here. + + * i386/i386/pcb.h (stack_attach): Parameterize the continuation parameter's parameter list. * i386/i386/pcb.c (stack_attach): Likewise. + + Move i386/i386/locore.S declarations. + * i386/i386/trap.c (recover_table, recover_table_end, retry_table) + (retry_table_end): Move declarations to... + * i386/i386/locore.h: ... here. + +2011-09-06 Thomas Schwinge + + Further prototyping work for memory_object_proxy.c functions. + * vm/memory_object_proxy.h: Add #includes. + (memory_object_proxy_lookup): New declaration. + * vm/memory_object_proxy.c: #include . + * vm/vm_user.c: Likewise. + (memory_object_proxy_lookup): Drop declaration. + + Parts based on a patch by Fridolín Pokorný . + +2011-09-05 Samuel Thibault + + Drop module memory free verbosity + * kern/bootstrap.c (bootstrap_create): Do not show freed module memory. + + Free memory used by boot modules + * vm/vm_resident.c (pmap_startup): Warn when some pages could not be included + in the allocator due to bad estimation. + * kern/bootstrap.c: Include . + (bootstrap_create): Call vm_page_create on bootstrap modules content. + +2011-09-03 Fridolín Pokorný + + Add prototypes for memory_object_proxy.c functions + * vm/memory_object_proxy.h: Add file. + * vm/vm_init.c: Include . + * kern/ipc_kobject.c: Likewise. + * Makefile.am (libkernel_a_SOURCES): Add vm/memory_object_proxy.h. + +2011-09-03 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + +2011-09-02 Guillem Jover + + Remove long obsolete RPC routines + * kern/compat_xxx_defs.h: Remove file. + * Makefrag.am (libkernel_a_SOURCES): Remove `kern/compat_xxx_defs.h'. + + * include/mach/mach_types.defs (xxx_emulation_vector_t): Remove type. + + * device/device.srv: Do not simport . + * kern/mach.srv: Likewise. + * kern/mach_host.srv: Likewise. + + * include/device/device.defs [MACH_KERNEL]: Do not simport + . + (xxx_device_set_status, xxx_device_get_status) + (xxx_device_set_filter): Replace routine declarations with skip + directives. + * include/mach/mach.defs [MACH_KERNEL]: Do not simport + . + (xxx_memory_object_lock_request, xxx_task_get_emulation_vector) + (xxx_task_set_emulation_vector, xxx_host_info, xxx_slot_info) + (xxx_cpu_control, xxx_task_info, xxx_thread_get_state) + (xxx_thread_set_state, xxx_thread_info): Replace routine declarations + with skip directive. + * include/mach/mach_host.defs [MACH_KERNEL]: Do not simport + . + (yyy_host_info, yyy_processor_info, yyy_processor_control) + (xxx_processor_set_default_priv, yyy_processor_set_info): Replace + routine declarations with skip directive. + + * kern/ipc_host.c (xxx_processor_set_default_priv): Remove function. + * kern/machine.c (xxx_host_info, xxx_slot_info) + (xxx_cpu_control): Likewise. + * kern/syscall_emulation.c (xxx_task_set_emulation_vector) + (xxx_task_get_emulation_vector): Likewise. + * vm/memory_object.c (xxx_memory_object_lock_request): Likewise. + +2011-09-02 Guillem Jover + + Do not remap errno codes from E* to LINUX_E* + Mach no longer uses any of the old and clashing errno E* codes, so + it's safe to use them now w/o namespacing. This also means one less + modification needed to the Linux code. + + * linux/dev/include/asm-i386/errno.h: Remove file. + * linux/dev/kernel/dma.c (notifier_chain_unregister) [MACH_INCLUDE]: Remove + code. + * linux/dev/include/linux/notifier.h: Likewise. + * linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Rename LINUX_EBUSY + to EBUSY. + (request_irq): Rename LINUX_EINVAL to EINVAL. + * linux/dev/glue/block.c (register_blkdev): Rename LINUX_EBUSY to EBUSY + and LINUX_EINVAL to EINVAL. + (unregister_blkdev): Rename LINUX_EINVAL to EINVAL. + (rdwr_partial) Rename LINUX_ENOMEM to ENOMEM and LINUX_EIO to EIO. + * linux/dev/glue/misc.c (linux_to_mach_error): Rename LINUX_EPERM to + EPERM, LINUX_EIO to EIO, LINUX_ENXIO to ENXIO, LINUX_EACCES to EACCES, + LINUX_EFAULT to EFAULT, LINUX_EBUSY to EBUSY, LINUX_EINVAL to EINVAL, + LINUX_EROFS to EROFS, LINUX_EWOULDBLOCK to EWOULDBLOCK and LINUX_ENOMEM + to ENOMEM. + (verify_area): Rename LINUX_EFAULT to EFAULT. + * linux/dev/kernel/resource.c (check_region): Rename LINUX_EBUSY to + EBUSY. + * linux/dev/kernel/sched.c (__do_down): Rename LINUX_EINTR to EINTR. + +2011-09-02 Guillem Jover + + Use Mach native error codes instead of POSIX errno E* ones + * device/errno.h: Remove file. + * Makefrag.am (libkernel_a_SOURCES): Remove `device/errno.h'. + * i386/i386at/com.c: Include instead of + . + (comopen): Replace ENXIO with D_NO_SUCH_DEVICE. + * i386/i386at/kd_event.c: Include instead of + . + * i386/i386at/kd_mouse.c: Likewise. + (mouseopen): Replace ENODEV with D_NO_SUCH_DEVICE and EBUSY with + D_ALREADY_OPEN. + * i386/i386at/lpr.c: Include instead of + . + (lpropen): Replace ENXIO with D_NO_SUCH_DEVICE and EBUSY with + D_ALREADY_OPEN. + +2011-09-02 Guillem Jover + + Change argument name to match function body usage + Otherwise the function wrongly uses the global symbol. + + * linux/src/drivers/scsi/ppa.c (ppa_nibble_in): Rename `str_p' argument + to `base'. + +2011-09-02 Guillem Jover + + Disable set but unused variable + * linux/src/drivers/scsi/gdth.c (gdth_detect): Conditionalize `b' on + [LINUX_VERSION_CODE < 0x020000]. Do not preset it to 0, it's initialized + later on when needed. + + Remove set but unused variables + * linux/dev/drivers/block/floppy.c (setup_rw_floppy): Remove `dflags'. + (floppy_eject): Remove `dummy'. + * linux/src/drivers/net/8390.c (ethdev_init): Remove `ei_local'. + * linux/src/drivers/scsi/ppa.c (ppa_detect): Remove `ppb'. + + Cast addr argument to vm_offset_t + * linux/dev/glue/kmem.c (vfree): Cast `addr' argument on kfree_mem + function to vm_offset_t. + + Add vsnprintf prototype + * kern/printf.h (vsnprintf): New prototype. + + Add missing headers + * linux/dev/init/main.c: Include . + * linux/dev/kernel/printk.c: Include . + +2011-09-01 Ludovic Courtès + + Add missing header file to the distribution. + * linux/Makefrag.am (liblinux_a_SOURCES): Add `linux/dev/glue/glue.h', + which appeared in commit 2b4bff9914d57bff600ac70194b8b1aab3485bee + ("Fix declarations"). + +2011-09-01 Samuel Thibault + + Fix documentation + + Close kernel stacks. + * i386/i386/pcb.c (stack_attach): Initialize ebp to 0. + +2011-09-01 Samuel Thibault + + Fix PC sampling + interrupt.S now saves the IRQ on the stack to acknowledge it later. + + * i386/i386/hardclock.c (hardclock): Add irq parameter. + * i386/i386at/kd.c (kdintr, kdcheckmagic): Remove regs parameter. + * i386/i386at/kd.h (kdintr): Likewise. + +2011-08-31 Guillem Jover + + Add silent rules support if available and disable it by default + * configure.ac (AM_SILENT_RULES): Add silent rules support if available, + and disable it by default. + * Makefile.am (AWK_V, AWK_V_, AWK_V_0): New variables. + (NM_V, NM_V_, NM_V_0): Likewise. + (GZIP_V, GZIP_V_, GZIP_V_0): Likewise. + (MIGCOM_V, MIGCOM_V_, MIGCOM_V_0): Likewise. + (gnumach-undef): Use NM_V in front of NM. + (gnumach-undef-bad): Use AM_V_GEN in front of sed. + (clib-routines.o): Use AM_V_at in fron of undefined symbols check. + Use AM_V_CCLD in front of CCLD. + * Makefrag.am (gnumach.msgids): Use AM_V_GEN in front of cat. + * Makerules.am (%.symc): Use AWK_V in front of AWK. + (%.symc.o): Use AM_V_CC in front of COMPILE. + (%.h): Use AM_V_GEN in front of sed. + (%.gz): Use GZIP_V in front of GZIP. + * Makerules.mig.am (%.user.defs.c): Use AM_V_GEN in front of command. + (%.server.defs.c): Likewise. + (%.user.h %.user.c %.user.msgids): Use MIGCOM_V in front of MIGCOM. + (%.server.h %.server.c %.server.msgids): Likewise. + +2011-08-31 Samuel Thibault + + Optimize copyout path + * i386/i386/locore.S (copyout): Remove RETRY() use from >=i486 variant. Move + copyout_ret and copyout_fail. + + Fix copyout retry on lazy allocation on >= i486 + * i386/i386/locore.S (copyout): Add a >=i486 variant of copyout which uses + no loop, but simply retries rep mov. + + Disable global page while writing in kernel space + * i386/i386/db_interface.c (db_write_bytes): If CPU has PGE feature, disable + CR4_PGE before enabling kernel page write access, and re-enable the former after + disabling the latter. + +2011-08-31 Samuel Thibault + + Protect set_cr3 against compiler assignment optimizations + This fixes the kdb `break' command. + + i386/i386/proc_reg.h (set_cr3): Add "memory" clobber. + +2011-08-31 Guillem Jover + + Fix undefined operation on assigning self pre-incremented variable + * linux/src/drivers/scsi/wd7000.c (mail_out): Add `1' instead of + pre-incrementing self assigned variable. + * linux/src/drivers/net/de4x5.c (de4x5_sw_reset, de4x5_queue_pkt, de4x5_rx) + (de4x5_tx, de4x5_rx_ovfc, set_multicast_list, ping_media, mii_get_phy) + (de4x5_ioctl): Likewise. + * linux/src/drivers/net/depca.c (depca_rx, depca_tx, load_packet): Likewise. + + Honour type promotion on variable argument handling + * linux/dev/lib/vsprintf.c (linux_vsprintf): Use `int' when retrieving + a `short' through `va_arg'. + + Correct MiG Mach types to fix compilation warnings + * include/mach/mach_types.defs (thread_info_t): Change from array of + natural_t to integer_t. + (task_info_t): Likewise. + (host_info_t): Likewise. + (processor_info_t): Likewise. + (processor_set_info_t): Likewise. + + Denote __exit symbols as used + * linux/src/include/linux/init.h: Include . + (__exitused): New macro. + (__exit): Define to ` __exitused __cold notrace'. + * linux/src/include/linux/kcomp.h (__exit): Remove. + + Move from linux/pcmcia-cs to linux/src + * linux/pcmcia-cs/include/linux/init.h: Move to ... + * linux/src/include/linux/init.h: ... here. + + Import Linux 3.1 compiler definitions + * linux/src/include/linux/compiler.h: New file. + * linux/src/include/linux/compiler-gcc.h: Likewise. + * linux/src/include/linux/compiler-gcc3.h: Likewise. + * linux/src/include/linux/compiler-gcc4.h: Likewise. + * linux/dev/include/linux/kernel.h (barrier): Remove definition and + include instead. + + Import Linux 3.1 ctype code + * linux/src/include/linux/ctype.h: Update file. + * linux/src/lib/ctype.c: Likewise. + + Remove unused and non-functional string specialization header + * linux/src/include/asm-i386/string-486.h: Remove. + + Fix memcmp prototype + * include/string.h (memcmp): Remove bogus `*' from return type. + +2011-08-31 Samuel Thibault + + Fix declarations + * device/ds_routines.h (io_done_list): Add variable declaration. + (device_io_map): Keep variable declaration and move definition to... + * device/ds_routines.c: ... here. + * i386/i386/fpu.c: Include + (curr_ipl): Remove declaration. + (fpintr): Add int unit parameter. + * linux/dev/glue/glue.h: New header. + * i386/i386/fpu.h (fpintr): Add function prototype. + * i386/i386/hardclock.c (clock_interrupt, linux_timer_intr): Remove prototypes. + [LINUX_DEV]: Include + * i386/i386/ipl.h (curr_ipl): Add declaration. + * i386/i386/pic.h (curr_pic_mask, pic_mask, prtnull, intnull): Add + declarations. + * i386/i386at/kd.h (kdintr): Add declaration. + * i386/i386at/pic_isa.c: Include and + (intnull, fpintr, hardclock, kdintr, prtnull): Remove prototypes. + * i386/xen/xen.c: Include + (clock_interrupt): Remove prototype. + * linux/dev/arch/i386/kernel/irq.c: Include and + + (linux_timer_intr, splhigh, spl0, curr_ipl, curr_pic_mask, pic_mask, + get_options): Remove declarations. + * linux/dev/drivers/block/floppy.c: Include + (issig, get_options): Remove declarations. + * linux/dev/drivers/block/genhd.c: Include + (linux_intr_pri): Remove declaration. + * linux/dev/glue/block.c: Include and + . + (device_io_map, blksize_size): Remove declarations. + * linux/dev/glue/kmem.c: Include and + (alloc_contig_mem, printf): Remove declarations. + * linux/dev/glue/misc.c: Include and + (vm_map_lookup_entry, printf): Remove prototypes. + * linux/dev/glue/net.c: Include , and + . + (linux_intr_pri, io_done_list): Remove declarations. + * linux/dev/init/main.c: Include and + . + (phys_last_addr, alloc_contig_mem, free_contig_mem, init_IRQ, + restore_IRQ, startrtclock, linux_version_init, linux_kmem_init, pci_init, + linux_net_emulation_init, device_setup, linux_printk, linux_timer_intr, spl0, + splhigh, form_pic_mask, linux_bad_intr, prtnull, intnull, linux_sched_init, + pcmcia_init): Remove declarations. + * linux/dev/kernel/sched.c: Include , and + . + (alloc_contig_mem, free_contig_mem, splhigh, splx, linux_soft_intr, issig, + printf, linux_auto_config): Remove prototypes. + * linux/dev/kernel/softirq.c: Include . + * linux/src/drivers/block/floppy.c: Include . + (get_options): Remove prototype. + * linux/src/init/main.c: Include + (init_IRQ): Remove prototype. + +2011-08-30 Guillem Jover + + Add linux_timer_intr function declaration + * i386/i386/hardclock.c [LINUX_DEV] (linux_timer_intr): New prototype. + + Add missing headers + * device/dev_pager.c: Include . + * linux/pcmcia-cs/glue/wireless_glue.h: Include . + + Remove unused variable + * i386/i386at/rtc.c (rtc): Remove variable. + + Cast host_get_time() arguments to fix warnings + * linux/dev/glue/misc.c (do_gettimeofday): Cast arguments to + `host_get_time'. + + Cast function timeout() argument to fix a warning + * kern/mach_clock.h (timer_func_t): New function type. + (struct timer_elt): Change fcn type to timer_func_t. + * i386/i386at/com.c (comstart): Cast `ttrstrt' to `timer_funct_t *' in + `timeout' call. + * i386/i386at/lpr.c (lprstart): Likewise, + + Return a value on non-void function + * i386/i386at/com.c (comcnprobe, comcninit, comcnputc): Return 0. + +2011-08-30 Samuel Thibault + + Fix copyright assignment + I have assigned copyright to the Free Software Foundation. + + * i386/i386/xen.h: Fix copyright assignment + * i386/xen/xen.c: Likewise. + * i386/xen/xen_boothdr.S: Likewise. + * i386/xen/xen_locore.S: Likewise. + * include/mach/xen.h: Likewise. + * xen/block.c: Likewise. + * xen/block.h: Likewise. + * xen/console.c: Likewise. + * xen/console.h: Likewise. + * xen/evt.c: Likewise. + * xen/evt.h: Likewise. + * xen/grant.c: Likewise. + * xen/grant.h: Likewise. + * xen/net.c: Likewise. + * xen/net.h: Likewise. + * xen/ring.c: Likewise. + * xen/ring.h: Likewise. + * xen/store.c: Likewise. + * xen/store.h: Likewise. + * xen/time.c: Likewise. + * xen/time.h: Likewise. + * xen/xen.c: Likewise. + * xen/xen.h: Likewise. + +2011-08-30 Samuel Thibault + + Console declaration cleanup + * device/cons.h: Add multiple inclusion _DEVICE_CONS_H macro protector. + (struct consdev): Add function members prototypes. + * i386/i386/xen.h: Include . + * i386/i386at/com.c (comcnprobe, comcninit, comcngetc, comcnputc): Move + prototypes... + * i386/i386at/com.h: ... here. Include . + * i386/i386at/cons_conf.c [MACH_HYP]: Include . + [!MACH_HYP]: Include "kd.h". + [!MACH_HYP && NCOM > 0]: Include "com.h". + (hypcnprobe, hypcninit, hypcngetc, hypcnputc, kdcnprobe, kdcninit, kdcngetc, + kdcnputc comcnprobe, comcninit, comcngetc, comcnputc): Remove prototypes. + * i386/i386at/kd.c (kdcnputc): Make it return int, -1 on error, 0 on + success. + (kdcnprobe, kdcninit, kdcngetc, kdcnputc): Move prototypes... + * i386/i386at/kd.h: ... here. Include . + * xen/console.c (hypcnprobe): Remove unused `my_console' local variable. + * xen/console.h: Include + (hypcnputc, hypcngetc, hypcnprobe, hypcninit): Add prototypes. + +2011-08-30 Guillem Jover + + Move Linux module macros to their original header + * linux/pcmcia-cs/glue/wireless_glue.h (EXPORT_SYMBOL) + (SET_MODULE_OWNER): Move to ... + * linux/src/include/linux/module.h [!MODULE]: ... here. + + Move cdrom_sleep() definition to its original source file + * linux/dev/kernel/sched.c (cdrom_sleep): Move to ... + * linux/src/drivers/block/ide-cd.c [MACH]: ... here, make it static. + Include . + +2011-08-29 Samuel Thibault + + Make copyout run in 1 loop on >= i486 + * i386/i386/locore.S (copyout): On >= i486, skip WP-check loop split and just + use byte count. + +2011-08-28 Samuel Thibault + + Skip kernel WP check on i486 and above + * i386/i386/i386asm.sym (machine_slot.sub_type): Define. + * i386/i386/locore.S (copyout_retry): Skip if machine_slot[0].cpu_type > 3. + + Enable >4GiB cr3 + * i386/xen/xen_boothdr.S (__xen_guest): Add [extended-cr3] to PAE + (XEN_ELFNOTE_PAE_MODE): Likewise. + +2011-08-28 Samuel Thibault + + Disable ( + + Fix pmap_clear_bootstrap_pagetable with >4G mfns + * i386/intel/pmap.c (pmap_clear_bootstrap_pagetable): Use pte_to_pa instead + of atop. + + Rework memory mapping reservation + * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE): Define to 192MiB. + * i386/i386at/model_dep.c (mem_size_init): Use VM_KERNEL_MAP_SIZE instead of + 1/6 factor. + * i386/intel/pmap.c (morevm): Remove. + (pmap_bootstrap): Use VM_KERNEL_MAP_SIZE instead of morevm. + + Move free_skbuffs declaration to the top + * device/ds_routines.c (free_skbuffs): Move declaration to the top. + +2011-08-27 Guillem Jover + + Initialize the new map entry when it's a projected buffer + * vm/vm_map.c (vm_map_fork): Call vm_map_entry_create for projected_on + buffers too. + + Fix initialization from incompatible pointer type + * linux/dev/glue/block.c (device_get_status): Cast `hg' to `unsigned long' + in ioctl call. + + Match signedness of char pointer comparisons and assignments + * linux/dev/drivers/block/genhd.c (msdos_partition): Cast `data' assignment + to `unsigned char *'. + * linux/src/drivers/block/ide-cd.c (cdrom_queue_request_sense): Cast + `buffer' assignment to `unsigned char *'. + (cdrom_transfer_packet_command): Change `cmd_buf' argument type to + `unsigned char *'. + (cdrom_read_capacity): Cast `pc.buffer' assignments to `unsigned char *'. + Use temporary `model' and `fw_rev' `const char *' variables to compare + against literal strings and characters. + * linux/src/drivers/block/ide.c (execute_drive_cmd): Cast `args' + assignment to `byte *'. + (ide_open): Cast `rq.buffer' assignment to `char *'. + (ide_release): Likewise. + (ide_ioctl): Likewise. + (do_identify): Cast variables being compared against literal string to + `char *'. + (probe_for_drive): Likewise. + * linux/src/drivers/block/ide.h (struct packet_command): Change `buffer' + type to `unsigned char *'. + + Always initialize A and X variables in BPF code + * device/net_io.c (bpf_do_filter): Remove lint conditional. + + Disable unused variables + * i386/i386at/com.c (comstart): Disable `i' variable. + * linux/src/drivers/net/at1700.c (net_close): Disable `lp' variable. + * linux/dev/include/linux/blk.h (end_request): Disable `nsect' variable + on MACH. + + Remove unused variables + * vm/memory_object_proxy.c (memory_object_create_proxy): Remove unused + `kr' variable. + * linux/dev/glue/block.c (free_buffer): Remove unused `i' variable. + (register_blkdev): Remove unused `err' variable. + (unregister_blkdev): Likewise. + (bread): Likewise. + (init_partition): Likewise. + * linux/dev/glue/net.c (device_write): Likewise. + + Remove ident tags producing preprocessor warnings + * linux/src/drivers/scsi/FlashPoint.c: Remove #ident tags. + + Add header for printf prototype + * vm/memory_object_proxy.c: Include . + + Add prototype for free_skbuffs function + * device/ds_routines.c [LINUX_DEV && CONFIG_INET] (free_skbuffs): Add + prototype. + + Add prototype for log function + * kern/debug.h (log): New prototype. + +2011-08-27 Samuel Thibault + + * Makefile.am (AM_CFLAGS): Add -fno-builtin-log. + +2011-08-27 Guillem Jover + + Add prototypes for locore functions + * i386/i386at/model_dep.c (discover_x86_cpu_type): Move ... + * i386/i386/locore.h: ... here. + (inst_fetch, cpu_shutdown): New prototypes. + * i386/i386at/kd.c: Include . + + Do not take obsolete and unused bcopy and bzero from libc + * Makefile.am (clib_routines): Remove bcopy and bzero. + + Use AC_LANG_SOURCE inside AC_LANG_CONFTEST to fix autoconf warning + * configure.ac (AC_LANG_CONFTEST): Wrap the source into a AC_LANG_SOURCE + call. + + Add a .gitignore file + * .gitignore: New file. + +2011-08-22 Samuel Thibault + + Make ipc_space_zone not exhaustible + Users of ipc_space_create() actually assume that it succeeds. + + * ipc/ipc_init.c (ipc_bootstrap): Create ipc_space_zone without EXHAUSTIBLE + flag. + +2011-08-22 Samuel Thibault + + Add more details to "zone exhausted" panics. + * kern/zalloc (zalloc): Add more details to "zone exhausted" panics. + +2011-08-21 Samuel Thibault + + Add 8byte breakpoint macro + * i386/i386/db_interface.h (I386_DB_LEN_8): Define macro. + +2011-08-18 Samuel Thibault + + Add compiler barrier to update_mapped_time + * kern/mach_clock.c (update_mapped_time): Add compiler barriers between + writes to shared memory. Update comment: on SMP, write barriers are + required. + +2011-08-10 Samuel Thibault + + Do not warn for cross-space spurious port deallocation + These are harmless (the target is stopped) and difficult to fix anyway. + + * ipc/mach_port.c (mach_port_destroy): Do not warn about spurious port + deallocation when SPACE is not equal to current_space(). + (mach_port_deallocate): Likewise. + +2011-08-10 Samuel Thibault + + Add more spurious deallocation debugging + * ipc/mach_port.c (mach_port_destroy): Print the current space and the + target space on spurious deallocation. + (mach_port_deallocate): Likewise. + +2011-07-21 Samuel Thibault + + Whitelist QEMU Hard-Drive for DMA. + PIO has become very slow in Linux 2.6.35+, so we do not really have the + choice any more. + + * linux/src/drivers/block/triton.c (good_dma_drives): Re-whitelist QEMU hard + drive. + +2011-05-19 Samuel Thibault + + Fix gcc 4.6 build + * linux/dev/include/linux/skbuff.h (skb_put, skb_push): Do not print the + address of a local label, gcc 4.6 does not build this and the debugger can + output it anyway. + * linux/src/include/linux/skbuff.h (skb_put, skb_push): Likewise. + +2011-05-18 Samuel Thibault + + Merge two asm constraints + * linux/src/drivers/scsi/ultrastor.c (find_and_clear_bit_16): Use + modifier + instead of using both a read and a write constraint. + +2011-05-09 Samuel Thibault + + Do not warn on vm_map_enter with fixed address failing + * vm/vm_map.c (vm_map_enter): Warn about missing room in map only if + anywhere is set. + +2011-04-24 Samuel Thibault + + Update constants to nowadays standards + Follow-up to fa6c711d + + * ipc/ipc_init.c (ipc_kernel_map_size): Increase to 8MiB. + +2011-04-23 Samuel Thibault + + Enable all caches + * i386/i386at/model_dep.c (i386at_init): Set CR0_CD and CR0_NW in CR0 + register. + + Drop spurious warning + * ipc/ipc_entry.c (ipc_entry_get): Do not warn when ipc_entry_get returns + KERN_NO_SPACE. + +2011-04-22 Samuel Thibault + + Warn once when part of the kernel is lacking space + * ipc/ipc_entry.c (ipc_entry_get, ipc_entry_grow_table): Warn when returning + KERN_NO_SPACE. + * vm/vm_map.c (vm_map_find_entry, vm_map_enter, vm_map_copyout, + vm_map_copyout_page_list): Warn when returning KERN_NO_SPACE. + +2011-04-22 Samuel Thibault + + Update constants to nowadays standards + Follow-up to fa6c711d + + * vm/vm_object.c (DEVICE_IO_MAP_SIZE): Increase to 16MiB. + * kern/kalloc.c (kalloc_map_size): Increase to 64MiB. + * i386/intel/pmap.c (morevm): Increase to 128MiB. + +2011-04-20 Samuel Thibault + + Warn once when part of the kernel is lacking memory + * kern/printf.h (printf_once): New macro. + * ipc/mach_port.c (mach_port_names, mach_port_get_set_status): Warn when + returning KERN_RESOURCE_SHORTAGE. + * vm/vm_kern.c: Include printf.h. + (kmem_alloc, kmem_realloc, kmem_alloc_wired, kmem_alloc_aligned, + kmem_alloc_pageable): Warn when failing. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Warn when returning + KERN_RESOURCE_SHORTAGE. + +2011-04-19 Samuel Thibault + + Close call stack on continuation + * i386/i386/locore.S (call_continuation): Push dummy return address instead + of letting the callee get a random one. + +2011-04-18 Arne Babenhauserheide + + Removed deprecated LINTLIBRARY #ifdefs + mach/mach_traps.h: Removed LINTLIBRARY #ifdefs. + mach/message.h: Removed LINTLIBRARY #ifdefs. + +2011-04-03 Samuel Thibault + + Fix build with kdb from make dist-generated tarball + * Makefrag.am (libkernel_a_SOURCES): Add ddb/db_cond.h, ddb/db_examine.h, + ddb/db_input.h, ddb/db_macro.h, ddb/db_trap.h. + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386/db_interface.h + +2011-03-21 Samuel Thibault + + Fix typo + * i386/i386at/kd.c (key_map): Fix K_PERIOD typo. + +2011-03-20 Samuel Thibault + + Clean kd.[ch] + * i386/i386at/kd.h (NUMSTATES): Fix comment about NORM_STATE. + * i386/i386at/kd.c (key_map): Use K_* macros instead of numeric values. + +2011-03-14 Samuel Thibault + + Also warn about mach_port_destroy on invalid ports + * ipc/mach_port.c (mach_port_destroy): Warn (and possibly call debugger) when + ipc_right_lookup_write didn't find the port name. + +2011-03-11 Samuel Thibault + + Fix continuation after keyboard debugger invocation + According to stack layout change in 5da1aea7 + + * i386/i386/locore.S [!MACH_XEN] (RET_OFFSET): Define to 12 instead of 8. + +2011-03-06 Samuel Thibault + + Enable global pages after enabling paging + * i386/i386at/model_dep.c (i386at_init): Enable CR4_PGE after enabling + CR0_PG. + +2011-03-05 Samuel Thibault + + Fix temporary direct mapping during page table enabling + * i386/i386at/model_dep.c (i386at_init): Count the number of actually + needed temporary L1 direct mapping by getting the last used address from + init_alloc_aligned(), instead of hardcoding it to 1 or 3, and then use a for + loop. + +2011-03-03 Samuel Thibault + + Keep supplementary L1 pages read-only + * i386/intel/pmap.c (pmap_bootstrap): Fix loop which keeps supplementary L1 + pages read-only: break as soon as one of the L1 supplementary pages has been + recognized, so that its pte does not get rewritten read-write. + +2011-02-27 Samuel Thibault + + Refuse to share IRQs at different interrupt levels + * linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Return -LINUX_EBUSY when + trying to share an IRQ between two different interrupt levels. + +2011-02-27 Samuel Thibault + + Re-enable updating pvlist for kernel_pmap + This partially reverts 0744feb6 + + * i386/intel/pmap.c (pmap_remove_range): Update pvlist for kernel_pmap too. + +2011-02-27 Samuel Thibault + + Acknoledge interrupt after handler call + This fixes interrupt overflows when software interrupts processing gets slower + than hardware. + + * i386/i386at/interrupt.S (interrupt): Issue EOI to PICs after having called + the interrupt handler and disabled interrupts through cli. + +2011-02-27 Samuel Thibault + + Detect interrupt overflow + * i386/i386/locore.S (int_from_instack): Check %esp against _intstack, issue + ud2 on stack overflow. + + Add x86 debug register Xen support + * i386/xen/xen_boothdr.S: Add global visibility to __hyp_* symbols. + * i386/i386/locore.S [MACH_XEN] (dr6,dr0,dr1,dr2,dr3): Make get_debugreg and + set_debugreg hypercalls to manipulate debug registers. + (dr0,dr1,dr2,dr3): Fix dr7 field shift. + * i386/i386/xen.h (hyp_set_debugreg, hyp_get_debugreg): New prototypes. + + Add prototypes for x86 debug registers + * i386/i386/db_interface.h (I386_DB_TYPE_X, I386_DB_TYPE_W, I386_DB_TYPE_RW, + I386_DB_LEN_1, I386_DB_LEN_2, I386_DB_LEN_4, I386_DB_LOCAL, + I386_DB_GLOBAL): New macros. + (dr0, dr1, dr2, dr3): New function prototypes. + + Fix for kdb watch command + * i386/intel/pmap.c (pmap_remove_range): Do not update pvlist for + kernel_map. + [MACH_KBD] (pmap_enter): Allow physical memory remapping. + +2011-02-26 Samuel Thibault + + Add console=comN boot option to enable serial console + * i386/configfrag.ac (RCLINE, RCADDR): Remove defines. + * i386/i386at/com.c: Include and + [!RCLINE] (RCBAUD, comcndev, comcnprobe, comcninit, comcngetc, comcnputc): + Declare and define macro, variable, and functions. + (rcline): New variable. + (kernel_cmdline): New declaration. + (comcnprobe): Detect "console=comN" option and set rcline accordingly, use + rcline instead of RCLINE for serial console selection. + * i386/i386at/cons_conf.c [NCOM>0 && !RCLINE] (comcnprobe, comcninit, + comcngetc, comcnputc): Declare functions. + [NCOM>0 && !RCLINE] (constab): Enable "com" console. + * i386/i386at/kd_event.c (kbdopen): Call kdinit function, for when the + VGA+pckbd console was not initialized. + +2011-02-09 Samuel Thibault + + xen block: Add more legacy hd* name support + * xen/block.c (hyp_block_init): Add IDE 3-10 device number recognition. Skip + unknown block device numbers. + +2011-02-07 Samuel Thibault + + Defer Xen device initialization to device_service_create + * device/device_init.c (device_service_create) [MACH_HYP]: Call + hyp_dev_init. + * xen/xen.c (hyp_init): Do not call hyp_block_init and hyp_net_init, now + called in ... + (hyp_dev_init): New function. + * xen/xen.h (hyp_dev_init): New declaration. + + Add rx-copy support to netfront + * xen/net.c (net_data): Add rx_copy field. + (enqueue_rx_buf): When rx_copy != 0, give grant on buffer to domD instead of + issuing a transfer from domD. + (hyp_net_intr): When rx_copy != 0, take back grant on buffer instead of + finishing transfer. Do not panic on packet error, free kmsg on error. + (hyp_net_init): Check for feature-rx-copy in backend, write 1 to + request-rx-copy in such case. Wait for Connected state before continuing. + Only unmap buffer when rx_copy is 0. + +2011-01-31 Diego Nieto Cid + + * doc/mach.texi (device_set_filter): Document filter header. + Acked-by: Richard Braun + +2011-01-31 Samuel Thibault + + Enable pae_extended_cr3 in pmap_bootstrap + * i386/i386/gdt.c (gdt_init): Do not enable VMASST_TYPE_pae_extended_cr3. + * i386/intel/pmap.c (pmap_bootstrap): Enable VMASST_TYPE_pae_extended_cr3. + + Enable Xen >4GiB physical memory support + * i386/i386/gdt.c (gdt_init): Enable VMASST_TYPE_pae_extended_cr3. + * i386/i386/xen.h: Drop actually-unneeded comment. + * i386/xen/xen_boothdr.S (FEATURES) [MACH_PSEUDO_PHYS]: Add pae_pgdir_above_4gb. + (XEN_ELFNOTE_FEATURES) [MACH_PSEUDO_PHYS]: Add pae_pgdir_above_4gb. + + Drop kbd device on xen + * i386/Makefrag.am (libkernel_a_SOURCES): Move i386/i386at/kd_event.[ch] and + i386/i386at/kd_queue.[ch] to [PLATFORM_at]. + * i386/i386at/conf.c (dev_name_list): Move kbd device to [!MACH_HYP]. + +2011-01-15 Samuel Thibault + + Avoid dropping kd_intr when RCLINE is >= 0 + * i386/i386at/kd.c (kdintr): Return immediately if !kd_initialized. + * i386/i386at/pic_isa.c (ivect) [RCLINE >= 0]: Enable kdintr in that case + too. + +2011-01-15 Samuel Thibault + + Move -d and -H parse to kern/startup.c + The code is arch-independant, and reboot_on_panic, used by kern/debug.c + would be undefined on non-i386. + + * i386/i386at/model_dep.c (reboot_on_panic, c_boot_entry): Move -d and -H parse + to... + * kern/startup.c (reboot_on_panic,setup_main): ... here. Include + +2010-12-09 Samuel Thibault + + memcpy operands are not supposed to overlap + * include/string.h (memmove): Add prototype. + * i386/i386at/immc.c (immc_cnputc): Replace memcpy with memmove. + +2010-10-24 Samuel Thibault + + Avoid harmless warning + * i386/i386at/kd.c (kd_setleds1): Only display unexpected state warning when + debugging is enabled. + +2010-10-23 Samuel Thibault + + Add prototype for strstr + * include/string.h (strstr): Add prototype. + + Add prototype for discover_x86_cpu_type + * i386/i386at/model_dep.c (discover_x86_cpu_type): Add prototype. + + Warn on unknown CPU family + * i386/i386at/model_dep.c (c_boot_entry): Warn in the default case for + cpu_type. + + Recognize P4 and Opteron-like as pentium pro + * i386/i386at/model_dep.c (c_boot_entry): Treat cpu_type 15 as Pentium pro. + +2010-09-19 Samuel Thibault + + Fix device_get/set_status ABI for NET_FLAGS + * linux/dev/glue/net.c (device_get_status): Compare count with 1 instead + of sizeof(short). Access *status instead of *(short *) status. + (device_set_status): Likewise. + +2010-09-14 Thomas Schwinge + + Merge branch 'typo-print' + +2010-09-14 Thomas Schwinge + + Typo fix. + * i386/i386/trap.c (user_trap): Call printf, not print. + +2010-09-14 Samuel Thibault + + Fix ifunc entries + * i386/ldscript: Update to the version from binutils 2.20.51.20100617. + Remove SEARCH_DIR calls. + * Makefile.am (clib_routines): Accept undefined __rel_iplt_start and + __rel_iplt_end as these come from the ldscript. + * i386/i386at/boothdr.S (boot_entry): Call ifunc hooks at boot. + * i386/xen/xen_boothdr.S (start): Likewise. + +2010-09-08 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix non-contiguous PCI functions + * linux/src/drivers/pci/pci.c (scan_bus): Do not set `is_multi' to 0 + when a hole is encountered. Detect 0000:ffff and ffff:0000 vendor ID as + holes too. + +2010-08-27 Guillem Jover + + Fix "make dist" + * Makefile.am (EXTRA_DIST): Remove ChangeLog.0, ChangeLog.00 and + Makefile.correct_output_files_for_.S_files.patch. + * Makefrag.am (libkernel_a_SOURCES): Add ipc/mach_port.h, + kern/ipc_mig.h, kern/machine.h, util/putchar.h, util/atoi.h, + vm/vm_resident.h, vm/vm_types.h and device/subrs.h. + Remove kern/time_out.h. + * i386/Makefrag.am (libkernel_a_SOURCES): Add i386/i386at/autoconf.h, + i386/i386at/com.h, i386/i386at/int_init.h, i386/i386/loose_ends.h, + i386/i386/model_dep.h, i386/intel/read_fault.h and i386/i386/xen.h. + Remove i386/i386/timer.h. + * linux/Makefrag.am (liblinux_a_SOURCES): Add + linux/src/drivers/net/sis900.h. + * xen/Makefrag.am (libkernel_a_SOURCES): Add xen/public/arch-x86_32.h + xen/public/arch-x86_64.h, xen/public/arch-x86/xen.h, + xen/public/arch-x86/xen-mca.h, xen/public/arch-x86/xen-x86_32.h, + xen/public/arch-x86/xen-x86_64.h, xen/public/callback.h, xen/public/COPYING, + xen/public/dom0_ops.h, xen/public/domctl.h, xen/public/elfnote.h, + xen/public/elfstructs.h, xen/public/event_channel.h, xen/public/features.h, + xen/public/grant_table.h, xen/public/io/blkif.h, xen/public/io/console.h, + xen/public/io/fbif.h, xen/public/io/fsif.h, xen/public/io/kbdif.h, + xen/public/io/netif.h, xen/public/io/pciif.h, xen/public/io/protocols.h, + xen/public/io/ring.h, xen/public/io/tpmif.h, xen/public/io/xenbus.h, + xen/public/io/xs_wire.h, xen/public/kexec.h, xen/public/libelf.h, + xen/public/memory.h, xen/public/nmi.h, xen/public/physdev.h, + xen/public/platform.h, xen/public/sched.h, xen/public/sysctl.h, + xen/public/trace.h, xen/public/vcpu.h, xen/public/version.h, + xen/public/xencomm.h, xen/public/xen-compat.h, xen/public/xen.h, + xen/public/xenoprof.h, xen/block.h, xen/console.h, xen/evt.h, + xen/grant.h, xen/net.h, xen/ring.h, xen/store.h, xen/time.h and xen/xen.h. + +2010-08-26 Samuel Thibault + + Do not advice to install libc0.3-xen on 4gb_segment trap + ext2fs.static will trigger some anyway. Instead, provide an easy way to + track how many traps happen. + + * i386/i386/gdt.c [MACH_XEN] (gdt_init): Disable enabling + VMASST_TYPE_4gb_segments_notify. + * i386/i386/trap.c [MACH_XEN] (user_trap): Remove printing libc0.3-xen + installation advice on 4gb_segments trap. Instead, print a count every 10000 + traps, and disable them on the 1000000th. + +2010-08-22 Samuel Thibault + + Disable 4gb segment emulation notification on first notification + i386/i386/trap.c [MACH_XEN] (user_trap): Disable + VMASST_TYPE_4gb_segments_notify on trap 15. + + Report Xen 4gb segment emulation + * i386/i386/gdt.c [MACH_XEN] (gdt_init): Enable VMASST_TYPE_4gb_segments_notify. + * i386/i386/idt_inittab.S [MACH_XEN]: Set trap 15 as pushing an error + code. + * i386/i386/trap.c [MACH_XEN]: Print trap 15 first occurrence. + +2010-08-01 Samuel Thibault + + Fix unexpected irq + irq timeout on write + * linux/src/drivers/block/ide.c (do_rw_disk): Set IRQ handler before + issuing write command. + + Move read-only sections to after text section + +2010-07-31 Samuel Thibault + + Un-whitelist the QEMU harddisk for DMA support + * linux/src/drivers/block/triton.c (good_dma_drives): Remove "QEMU HARDDISK". + + Put a name on the 16MiB magic number + * linux/dev/glue/kmem.c (MEM_DMA_LIMIT): New macro + (linux_kmem_init): Replace 16 * 1024 * 1024 occurrences with + MEM_DMA_LIMIT. + +2010-06-25 Jeremie Koenig + + Route BLKRRPART to partitions layer + * linux/dev/glue/block.c (device_set_status): New function + (linux_block_emulation_ops): Set set_status field to device_set_status. + +2010-04-16 Samuel Thibault + + Add memory clobbers to segment selector loaders + * i386/i386/seg.h (lldt): Add memory clobber to lldt asm + snippet. + * i386/i386/tss.h (ltr): Add memory clobber to ltr asm + snippet. + +2010-04-08 Samuel Thibault + + Fix bootstrap additional mapping + * i386/intel/pmap.c (pmap_bootstrap): Use pt_entry_t type + instead of vm_offset_t to map additional kernel space. + + Extend machine addresses to 64bit for PAE + * i386/i386/pcb.c (switch_ktss): Use uint64_t for descriptor + type instead of unsigned long long. + * i386/i386/seg.h (fill_descriptor): Use uint64_t for descriptor + type instead of unsigned long long. Cast result of kv_to_ma() + into vm_offset_t before printing. + * i386/i386/xen.h (hyp_mmu_update_pte): Use pt_entry_t type + instead of unsigned long long, make pte parameter a pt_entry_t + too. + (hyp_mmu_update_pte): Compute pte address just using pt_entry_t + integers. + (hyp_high): New macro to fix 32bit right shifting. + (hyp_do_update_descriptor): Use pt_entry_t type for machine + address instead of unsigned long. Split it in 32bit parts. Use uint64_t + for descriptor type instead of unsigned long long. + (update_va_mapping): Use pt_entry_t type instead of unsigned + long long. Use hyp_high macro. + (hyp_invlpg): Use uint64_t for time type instead of unsigned + long long. + * i386/intel/pmap.c (pmap_bootstrap): Use ptetokv instead of + pte_to_pa + phystokv. Cast machine addresses into vm_offset_t + before printing. + (pmap_set_page_readwrite): Likewise. + (pmap_set_page_readonly): Likewise + (pmap_set_page_readonly_init): Likewise + (pmap_clear_bootstrap_pagetable): Likewise + (pmap_destroy): Likewise + (pmap_map_mfn): Use pt_entry_t type for machine addresses. Cast + machine addresses into vm_offset_t before printing. + * i386/intel/pmap.h [PAE] (INTEL_PTE_PFN): Set macro to + 0xfffffffffffff000ULL. + * include/mach/xen.h [PAE] (pa_to_ma, ma_to_pa): Use pt_entry_t + type for machine addresses. + [!PAE] (pa_to_ma): Remove cast to vm_offset_t. + (mfn_to_kv): Use mfn_to_pfn + ptoa instead of ptoa + ma_to_pa. + * xen/xen.c (hyp_invalidate_pte): Cast machine addresses into + vm_offset_t before printing. + +2010-04-06 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Fix crash on Xen when no module is provided + * kern/bootstrap.c (bootstrap_create): Iterate over bmods only + if is not NULL. + +2010-03-15 Thomas Schwinge + + Require GNU Automake 1.10.2. + 9ff49d9648debffbe42d18863c739d37bcdb50b4's config.status.dep.patch is fit for + 1.10.2 (released in November 2008) and later, and is no longer suitable for + 1.10.1. + + * configure.ac (AM_INIT_AUTOMAKE): Require 1.10.2. + +2010-03-14 Samuel Thibault + + Fix Xen build without kdb + * xen/console.c (hypcnintr): Use #if MACH_KDB instead of #ifdef + MACH_KDB. + + Add mem device + * i386/Makefrag.am (libkernel_a_SOURCES): Add + i386/i386at/iopl.c. + * i386/i386at/conf.c [!MACH_HYP] (memmmap): Declare function. + (memname): Add macro. + (dev_name_list): Add mem device. + * i386/i386at/mem.c: New file. + +2010-03-02 Samuel Thibault + + whitelist the QEMU harddisk for DMA support + * linux/src/drivers/block/triton.c (good_dma_drives): Add + "QEMU HARDDISK". + +2010-01-04 Samuel Thibault + + ignore bogus FDPT information from BIOS + +2009-12-22 Samuel Thibault + + Align mach_port_deallocate debug flag with usage + * ipc/mach_port.c (debug_mach_port_deallocate): Rename to... + (mach_port_deallocate_debug): ... new name, and set volatile + to permit live changes from ddb. + + Do not systematically debug buggy port deallocation + * ipc/mach_port.c (debug_mach_port_deallocation): New variable, + set to 0. + (mach_port_deallocate): Only call SoftDebugger if + debug_mach_port_deallocation is not 0. + + Merge branch 'master' of debhurd0:xen/gnumach + +2009-12-22 root + + Fix debugger trigger + * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 + * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of + panicing. + +2009-12-21 Samuel Thibault + + Invoke debugger on duplicate port deallocation + * ipc/mach_port.c (mach_port_deallocate): Call SoftDebugger if + ipc_right_lookup_write was not succcessful and `name' is not + MACH_PORT_NULL or MACH_PORT_DEAD. + + Add a SoftDebugger function + * kern/debug.h (SoftDebugger): Add prototype. + * kern/debug.c (Debugger): Move code invoking debugging trap + to... + (SoftDebugger): ... new function. Print the passed message. + * kern/lock_mon.c (decl_simple_lock_data, retry_bit_lock): Call + SoftDebugger instead of Debugger. + * device/ds_routines.c (ds_device_open, device_read, + device_read_inband): Call SoftDebugger instead of Debugger. + * i386/i386at/model_dep.c (c_boot_entry): Call SoftDebugger + instead of Debugger. + * kern/syscall_sw.c (null_port, kern_invalid): Call SoftDebugger + instead of Debugger. + * vm/vm_object.c (vm_object_collapse): Call SoftDebugger instead + of Debugger. + +2009-12-19 Samuel Thibault + + Document kdb_kintr stack manipulation + * i386/i386/locore.S: Document kdb_kintr stack manipulation. + +2009-12-19 root + + Fix debugger trigger + * i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 + * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of + panicing. + +2009-12-18 Guillem Jover + + Add missing casts + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Cast `prevmemp' + assignement to vm_page_t. + + Add missing function prototypes + * i386/i386/pcb.c (Load_context): New prototype. + * i386/i386at/lpr.c (lprpr_addr): Likewise. + + Use `unsigned char *' for byte buffers + * linux/src/drivers/net/apricot.c (struct i596_tbd): Change `data' + member type to `unsigned char *'. + (struct i596_rfd): Change `data' member type to `unsigned char'. + (print_eth): Change argument type to `unsigned char'. Remove + unneeded casts. + (set_multicast_list): Change cast for print_eth to `unsigned char *'. + + Mark macro arguments as used + * i386/intel/pmap.c [!NCPUS > 1] (INVALIDATE_TLB): Mark `pmap', `s' + and `e' arguments as used. + * i386/intel/pmap.h [!NCPUS > 1] (PMAP_ACTIVATE_KERNEL): Mark `my_cpu' + argument as used. + (PMAP_DEACTIVATE_KERNEL): Likewise. + (PMAP_ACTIVATE_USER): Likewise. Mark `th' argument as used. + (PMAP_DEACTIVATE_USER): Mark `thread' and `cpu' arguments as used. + + Missing `*' in assembler indirect lcall + * linux/src/arch/i386/kernel/bios32.c (bios32_service): Add `*' + in indirect lcall. + (check_pcibios, pci_bios_find_class, pci_bios_find_device): Likewise. + (pci_bios_read_config_byte, pci_bios_read_config_word): Likewise. + (pci_bios_read_config_dword, pci_bios_write_config_byte): Likewise. + (pci_bios_write_config_word, pci_bios_write_config_dword): Likewise. + + Interrupt handlers do not return any value + * i386/i386at/kd_mouse.c (kd_mouse_open): Change kdintr return type + to `void'. + (oldvect): Change return type to `void'. + * linux/dev/arch/i386/kernel/irq.c (linux_timer_intr): Likewise. + (intnull, prtnull, linux_intr, linux_bad_intr): Likewise. + (old_clock_handler): Likewise. + + Use selector definitions from Mach for Linux code + * linux/src/include/asm-i386/segment.h [MACH]: Include + and . + [MACH && MACH_HYP] (KERNEL_CS, KERNEL_DS): Remove macros. + [MACH && !MACH_HYP] (KERNEL_CS, KERNEL_DS): Likewise. + [MACH] (USER_CS, USER_DS): Likewise. + + Move linux/dev/include/asm-i386/segment.h to src tree + * linux/dev/include/asm-i386/segment.h: Move to ... + * linux/src/include/asm-i386/segment.h: ... here. + + Match function types with `struct tty' member functions + * i386/i386at/com.c (comstart): Change return type to `void'. + * i386/i386at/lpr.c (lprstop): Likewise. + + Use explicit type int when defining register variables + * linux/src/drivers/scsi/aha1542.c (WAIT, WAITd): Define variables + with explicit type `register int' and not just `register'. + +2009-12-16 Samuel Thibault + + Add Xen support + 2009-03-11 Samuel Thibault + + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to + 0x20000000. + * i386/i386/i386asm.sym (pfn_list) [VM_MIN_KERNEL_ADDRESS == + LINEAR_MIN_KERNEL_ADDRESS]: Define to constant PFN_LIST. + + 2009-02-27 Samuel Thibault + + * i386/intel/pmap.c [MACH_HYP] (INVALIDATE_TLB): Call hyp_invlpg + instead of flush_tlb when e - s is compile-time known to be + PAGE_SIZE. + + 2008-11-27 Samuel Thibault + + * i386/configfrag.ac (enable_pae): Enable by default on the Xen + platform. + + 2007-11-14 Samuel Thibault + + * i386/i386at/model_dep.c (machine_relax): New function. + (c_boot_entry): Refuse to boot as dom0. + + 2007-10-17 Samuel Thibault + + * i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr(). + + 2007-08-12 Samuel Thibault + + * Makefile.am (clib_routines): Add _START. + * i386/xen/xen_boothdr: Use _START for VIRT_BASE and PADDR_OFFSET. Add + GUEST_VERSION and XEN_ELFNOTE_FEATURES. + + 2007-06-13 Samuel Thibault + + * i386/i386/user_ldt.h (user_ldt) [MACH_XEN]: Add alloc field. + * i386/i386/user_ldt.c (i386_set_ldt) [MACH_XEN]: Round allocation of + LDT to a page, set back LDT pages read/write before freeing them. + (user_ldt_free) [MACH_XEN]: Likewise. + + 2007-04-18 Samuel Thibault + + * device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices. + + 2007-02-19 Thomas Schwinge + + * i386/xen/Makefrag.am [PLATFORM_xen] (gnumach_LINKFLAGS): Define. + + * Makefrag.am: Include `xen/Makefrag.am'. + * configure.ac: Include `xen/configfrag.ac'. + (--enable-platform): Support the `xen' platform. + * i386/configfrag.ac: Likewise. + * i386/Makefrag.am [PLATFORM_xen]: Include `i386/xen/Makefrag.am'. + + 2007-02-19 Samuel Thibault + Thomas Schwinge + + * i386/xen/Makefrag.am: New file. + * xen/Makefrag.am: Likewise. + * xen/configfrag.ac: Likewise. + + 2007-02-11 (and later dates) Samuel Thibault + + Xen support + * Makefile.am (clib_routines): Add _start. + * Makefrag.am (include_mach_HEADERS): Add include/mach/xen.h. + * device/cons.c (cnputc): Call hyp_console_write. + * i386/Makefrag.am (libkernel_a_SOURCES): Move non-Xen source to + [PLATFORM_at]. + * i386/i386/debug_trace.S: Include + * i386/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(), + do not enable CR0_EM. + * i386/i386/gdt.c: Include and . + [MACH_XEN]: Make gdt array extern. + [MACH_XEN] (gdt_init): Register gdt with hypervisor. Request 4gb + segments assist. Shift la_shift. + [MACH_PSEUDO_PHYS] (gdt_init): Shift pfn_list. + * i386/i386/gdt.h [MACH_XEN]: Don't define KERNEL_LDT and LINEAR_DS. + * i386/i386/i386asm.sym: Include . + [MACH_XEN]: Remove KERNEL_LDT, Add shared_info's CPU_CLI, CPU_PENDING, + CPU_PENDING_SEL, PENDING, EVTMASK and CR2. + * i386/i386/idt.c [MACH_HYP] (idt_init): Register trap table with + hypervisor. + * i386/i386/idt_inittab.S: Include . + [MACH_XEN]: Set IDT_ENTRY() for hypervisor. Set trap table terminator. + * i386/i386/ktss.c [MACH_XEN] (ktss_init): Request exception task switch + from hypervisor. + * i386/i386/ldt.c: Include and + [MACH_XEN]: Make ldt array extern. + [MACH_XEN] (ldt_init): Set ldt readwrite. + [MACH_HYP] (ldt_init): Register ldt with hypervisor. + * i386/i386/locore.S: Include . Handle KERNEL_RING == 1 + case. + [MACH_XEN]: Read hyp_shared_info's CR2 instead of %cr2. + [MACH_PSEUDO_PHYS]: Add mfn_to_pfn computation. + [MACH_HYP]: Drop Cyrix I/O-based detection. Read cr3 instead of %cr3. + Make hypervisor call for pte invalidation. + * i386/i386/mp_desc.c: Include . + [MACH_HYP] (mp_desc_init): Panic. + * i386/i386/pcb.c: Include . + [MACH_XEN] (switch_ktss): Request stack switch from hypervisor. + [MACH_HYP] (switch_ktss): Request ldt and gdt switch from hypervisor. + * i386/i386/phys.c: Include + [MACH_PSEUDO_PHYS] (kvtophys): Do page translation. + * i386/i386/proc_reg.h [MACH_HYP] (cr3): New declaration. + (set_cr3, get_cr3, set_ts, clear_ts): Implement macros. + * i386/i386/seg.h [MACH_HYP]: Define KERNEL_RING macro. Include + + [MACH_XEN] (fill_descriptor): Register descriptor with hypervisor. + * i386/i386/spl.S: Include and + [MACH_XEN] (pic_mask): #define to int_mask. + [MACH_XEN] (SETMASK): Implement. + * i386/i386/vm_param.h [MACH_XEN] (HYP_VIRT_START): New macro. + [MACH_XEN]: Set VM_MAX_KERNEL_ADDRESS to HYP_VIRT_START- + LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS. Increase + KERNEL_STACK_SIZE and INTSTACK_SIZE to 4 pages. + * i386/i386at/conf.c [MACH_HYP]: Remove hardware devices, add hypervisor + console device. + * i386/i386at/cons_conf.c [MACH_HYP]: Add hypervisor console device. + * i386/i386at/model_dep.c: Include , . + [MACH_XEN] Include , , , + . + [MACH_PSEUDO_PHYS]: New boot_info, mfn_list, pfn_list variables. + [MACH_XEN]: New la_shift variable. + [MACH_HYP] (avail_next, mem_size_init): Drop BIOS skipping mecanism. + [MACH_HYP] (machine_init): Call hyp_init(), drop hardware + initialization. + [MACH_HYP] (machine_idle): Call hyp_idle(). + [MACH_HYP] (halt_cpu): Call hyp_halt(). + [MACH_HYP] (halt_all_cpus): Call hyp_reboot() or hyp_halt(). + [MACH_HYP] (i386at_init): Initialize with hypervisor. + [MACH_XEN] (c_boot_entry): Add Xen-specific initialization. + [MACH_HYP] (init_alloc_aligned, pmap_valid_page): Drop zones skipping + mecanism. + * i386/intel/pmap.c: Include . + [MACH_PSEUDO_PHYS] (WRITE_PTE): Do page translation. + [MACH_HYP] (INVALIDATE_TLB): Request invalidation from hypervisor. + [MACH_XEN] (pmap_map_bd, pmap_create, pmap_destroy, pmap_remove_range) + (pmap_page_protect, pmap_protect, pmap_enter, pmap_change_wiring) + (pmap_attribute_clear, pmap_unmap_page_zero, pmap_collect): Request MMU + update from hypervisor. + [MACH_XEN] (pmap_bootstrap): Request pagetable initialization from + hypervisor. + [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) + (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) + (pmap_map_mfn): New functions. + * i386/intel/pmap.h [MACH_XEN] (INTEL_PTE_GLOBAL): Disable global page + support. + [MACH_PSEUDO_PHYS] (pte_to_pa): Do page translation. + [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) + (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) + (pmap_map_mfn): Declare functions. + * i386/i386/xen.h: New file. + * i386/xen/xen.c: New file. + * i386/xen/xen_boothdr.S: New file. + * i386/xen/xen_locore.S: New file. + * include/mach/xen.h: New file. + * kern/bootstrap.c [MACH_XEN] (boot_info): Declare variable. + [MACH_XEN] (bootstrap_create): Rebase multiboot header. + * kern/debug.c: Include . + [MACH_HYP] (panic): Call hyp_crash() without delay. + * linux/dev/include/asm-i386/segment.h [MACH_HYP] (KERNEL_CS) + (KERNEL_DS): Use ring 1. + * xen/block.c: New file. + * xen/block.h: Likewise. + * xen/console.c: Likewise. + * xen/console.h: Likewise. + * xen/evt.c: Likewise. + * xen/evt.h: Likewise. + * xen/grant.c: Likewise. + * xen/grant.h: Likewise. + * xen/net.c: Likewise. + * xen/net.h: Likewise. + * xen/ring.c: Likewise. + * xen/ring.h: Likewise. + * xen/store.c: Likewise. + * xen/store.h: Likewise. + * xen/time.c: Likewise. + * xen/time.h: Likewise. + * xen/xen.c: Likewise. + * xen/xen.h: Likewise. + * xen/public/COPYING: Import file from Xen. + * xen/public/callback.h: Likewise. + * xen/public/dom0_ops.h: Likewise. + * xen/public/domctl.h: Likewise. + * xen/public/elfnote.h: Likewise. + * xen/public/elfstructs.h: Likewise. + * xen/public/event_channel.h: Likewise. + * xen/public/features.h: Likewise. + * xen/public/grant_table.h: Likewise. + * xen/public/kexec.h: Likewise. + * xen/public/libelf.h: Likewise. + * xen/public/memory.h: Likewise. + * xen/public/nmi.h: Likewise. + * xen/public/physdev.h: Likewise. + * xen/public/platform.h: Likewise. + * xen/public/sched.h: Likewise. + * xen/public/sysctl.h: Likewise. + * xen/public/trace.h: Likewise. + * xen/public/vcpu.h: Likewise. + * xen/public/version.h: Likewise. + * xen/public/xen-compat.h: Likewise. + * xen/public/xen.h: Likewise. + * xen/public/xencomm.h: Likewise. + * xen/public/xenoprof.h: Likewise. + * xen/public/arch-x86/xen-mca.h: Likewise. + * xen/public/arch-x86/xen-x86_32.h: Likewise. + * xen/public/arch-x86/xen-x86_64.h: Likewise. + * xen/public/arch-x86/xen.h: Likewise. + * xen/public/arch-x86_32.h: Likewise. + * xen/public/arch-x86_64.h: Likewise. + * xen/public/io/blkif.h: Likewise. + * xen/public/io/console.h: Likewise. + * xen/public/io/fbif.h: Likewise. + * xen/public/io/fsif.h: Likewise. + * xen/public/io/kbdif.h: Likewise. + * xen/public/io/netif.h: Likewise. + * xen/public/io/pciif.h: Likewise. + * xen/public/io/protocols.h: Likewise. + * xen/public/io/ring.h: Likewise. + * xen/public/io/tpmif.h: Likewise. + * xen/public/io/xenbus.h: Likewise. + * xen/public/io/xs_wire.h: Likewise. + +2009-11-30 Samuel Thibault + + Add stack-protector support + * kern/debug.c (__stack_chk_guard): New variable + (__stack_chk_fail): New function. + + Use gcc builtins for stdarg.h when available + * i386/include/mach/sa/stdarg.h [__GNUC__ >= 3] (va_list): + Typedef to __builtin_va_list. + (va_start): define to __builtin_va_start. + (va_end): define to __builtin_va_end. + (va_arg): define to __builtin_va_arg. + +2009-11-28 Samuel Thibault + + Fix commit d088a062 + * vm/memory_object_proxy.c: New file. + +2009-11-28 Samuel Thibault + + Add memory object proxies + Memory object proxies permit to replicate objects with different parameters, + like reduced privileged, different offset, etc. They are e.g. essential for + properly managing memory access permissions. + + 2005-06-06 Marcus Brinkmann + + * include/mach/mach4.defs: Add memory_object_create_proxy + interface. + * Makefile.in (vm-cfiles): Add memory_object_proxy.c. + * i386/include/mach/i386/vm_types.h (vm_offset_array_t): New type. + * include/mach/memory_object.h (memory_object_array_t): New type. + * vm/memory_object_proxy.c: New file. + * kern/ipc_kobject.h: New macro IKOT_PAGER_PROXY. Bump up macros + IKOT_UNKNOWN and IKOT_MAX_TYPE. + * kern/ipc_kobject.c (ipc_kobject_notify): Call + memory_object_proxy_notify for IKOT_PAGER_PROXY. + * vm/vm_init.c (vm_mem_init): Call memory_object_proxy_init. + * vm/vm_user.c (vm_map): Implement support for proxy memory + objects. + +2009-11-28 Samuel Thibault + + Add -H option to halt on panic + 2005-12-29 Soeren D. Schulze + + * i386/i386at/model_dep.c (reboot_on_panic) [!MACH_KBD]: New variable. + (c_boot_entry) [!MACH_KBD]: Set reboot_on_panic to 0 if kernel_cmdline + contains '-H'. + * kern/debug.c (panic): Call halt_all_cpus with reboot_on_panic as + argument. + +2009-11-28 Samuel Thibault + + Add sis900 driver + 2005-05-01 Andreas B. Mundt + + * i386/README-Drivers: Likewise. + * i386/linux/Makefile.in (linux-net-files): Added 'sis900'. + * i386/linux/configure.ac (sis900): New driver. + * linux/dev/drivers/net/Space.c: Add conditional probes 'sis900' + driver. + * linux/src/drivers/net/sis900.c: New file. + * linux/src/drivers/net/sis900.h: Likewise. + +2009-11-28 Samuel Thibault + + Add XMM FPU registers save/restore support. + * i386/include/mach/i386/fp_reg.h (struct i386_fp_regs): Invert array + indices. + (struct i386_xfp_save): New structure. + (FP_387X): New macro. + * i386/i386/thread.h (struct i386_fpsave_state): Add xfp_save_state + member, keep existing fp_save_state and fp_regs members in an unnamed + union member. Move fp_valid member to the end of the structure. + * i386/i386/fpu.h (fxsave, fxrstor): New macros. + (fpu_save_context): Use fxsave() when FPU is FXSR-capable. + * i386/i386/fpu.c: Include + (mxcsr_feature_mask): New variable. + (fp_save, fp_load): Add declaration. + (init_fpu): Add FXSR-capable FPU detection. + (fpu_module_init): Request 16-byte alignment to zinit() for + i386_fpsave_state structures. + (twd_i387_to_fxsr, twd_fxsr_to_i387): New functions. + (fpu_set_state): Convert FPU state when FPU is FXSR-capable. + (fpu_get_state): Convert FPU state when FPU is FXSR-capable. + (fpexterrflt): Pass to i386_exception either xfp_save_state or + fp_save_state according to FPU type. + (fpastintr): Likewise. + (fp_load): Likewise. Use fxrstor() when FPU is FXSR-capable. + (fp_save): Use fxsave() when FPU is FXSR-capable. + (fp_state_alloc): Add FXSR-aware initialization. + + Fix debugging message + * i386/i386/fpu.c (fphandleerr): Fix debugging message. + + Add native FPU error support + * i386/i386/fpu.c (init_fpu): Enable CR0_NE when processor is at + least i486. + (fpintr): Move code handling the FPU state to... + (fphandleerr): New function. + (fpexterrflt): Rename into... + (fpastintr): New function. + (fpexterrflt): Reintroduce function, calls fphandleerr then + raises exception. + * i386/i386/fpu.h (fpastintr): Add prototype. + * i386/i386/trap.c (i386_astintr): Call fpastintr instead of + fpexterrflt. + + Panic when no FPU is available + * i386/i386/fpu.c (init_fpu): Panic if no FPU is available. + + Initialize FPU in MS-DOS compatibility mode + * i386/i386/fpu.c (init_fpu): Make sure CR0_NE is dropped. + +2009-11-22 Samuel Thibault + + Declare memcmp function + * include/string.h (memcmp): New prototype. + + Do not fail if no PTE maps virtual address 0 + * i386/intel/pmap.c (pmap_unmap_page_zero): Do not fail if no PTE maps + virtual address 0. + + Remove (vm_offset_t) casts from constants + * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS, VM_MAX_KERNEL_ADDRESS, + LINEAR_MIN_KERNEL_ADDRESS, LINEAR_MAX_KERNEL_ADDRESS): Remove + (vm_offset_t) cast, use UL suffix instead. + * i386/include/mach/i386/vm_param.h (VM_MIN_ADDRESS, + VM_MAX_ADDRESS): Remove (vm_offset_t) cast, use UL suffix instead. + + Really call startrtclock() with an active thread. + * kern/startup.c (cpu_launch_first_thread): Call startrtclock + really after starting at least one thread. + + Add pmap parameter to INVALIDATE_TLB + * i386/intel/pmap.c (INVALIDATE_TLB): Add pmap parameter. + (PMAP_UPDATE_TLBS): Pass pmap parameter. + (process_pmap_updates): Likewise. + (pmap_unmap_page_zero): Use INVALIDATE_TLB instead of hardcoding + it. + + Add phys_first_addr and phys_last_addr declaration + * i386/i386/model_dep.h (phys_first_addr, phys_last_addr): New + declarations. + * i386/i386/trap.c: Include + (user_trap): Remove extern declaration of phys_last_addr. + * i386/intel/pmap.c: Include + (phys_first_addr, phys_last_addr): Remove extern declaration. + + Use typeof(boot_info) + * i386/i386at/model_dep.c (i386at_init): Use typeof(boot_info) + instead of hardcoding struct multiboot_info*. + + Fix early interrupt crash + * i386/i386at/model_dep.c (i386at_init): Move int_stack_high + assignation to before setting up interrupts. + + Add missing phystokv/kvtophys conversions + * i386/i386/mp_desc.c (interrupt_stack_alloc): Apply phystokv to + stack_start. + * i386/i386at/model_dep.c (i386at_init): Apply phystokv to + memory allocated to duplicate multiboot information. Apply + _kvtophys before calling set_cr3. Apply phystokv to + phys_last_addr before assigning to int_stack_high. + * i386/intel/pmap.c (pmap_bootstrap): Apply phystokv to + phys_last_addr, use kernel_virtual_start instead of + phys_last_addr. Apply phystokv to allocated bootstrap page + table pages. Apply _kvtophys to page table pointers before + writing into page table. + (pmap_enter): Apply phystokv to allocated page table page, apply + kvtophys to deallocated page table page. + + Show command lines in task list + * Makefile.am (clib_routines): Add memcmp. + * i386/i386/db_machdep.h (DB_GNUMACH_TASK_NAME): New macro. + * i386/i386/db_interface.c (GNU): New macro. + [GNU] (looks_like_command): New function. + (db_task_name): When task map is kernel_pmap, return + DB_GNUMACH_TASK_NAME. + [GNU] (db_task_name): Use a GNU/Hurd-specific heuristic to get + argv[] of a task. + + Replace phys_mem_va with VM_MIN_KERNEL_ADDRESS + * i386/i386/vm_param.h (phystokv): Use VM_MIN_KERNEL_ADDRESS + instead of phys_mem_va. + (_kvtophys): New macro. + * i386/i386at/model_dep.c (phys_mem_va): Remove variable. + + Avoid confusion between global and local ldt vars + * i386/i386/pcb.c (switch_ktss): Rename ldt variable into tldt. + + Do not assume that VM_MIN_KERNEL_ADDRESS is 0 + * i386/i386/vm_param.h (VM_MAX_KERNEL_ADDRESS): Add + VM_MIN_KERNEL_ADDRESS. + (kvtolin): Subtract VM_MIN_KERNEL_ADDRESS. + (lintokv): Add VM_MIN_KERNEL_ADDRESS. + * i386/i386at/model_dep.c (mem_size_init): Subtract + VM_MIN_KERNEL_ADDRESS in computation of phys_last_addr. + (i386at_init): Use VM_MIN_KERNEL_ADDRESS instead of 0 as + argument of lin2pdenum. + + Rewamp spl.h + * i386/i386/spl.h (splnet, splbio, spl7, splx_cli): Add + prototypes. + + Do not assume that VM_MIN_KERNEL_ADDRESS is 0 + * i386/i386/gdt.c (gdt_init): Subtract VM_MIN_KERNEL_ADDRESS + from LINEAR_MIN_KERNEL_ADDRESS to avoid assuming the former + being 0. + + Fix db_search_null loop + * i386/i386/db_interface.c (db_search_null): Do not decrease + vaddr twice. + + Introduce KERNEL_RING + * i386/i386/seg.h (KERNEL_RING): New macro, set to 0. + (ACC_PL_K, SEL_PL_K): Use KERNEL_RING instead of assuming 0. + * i386/i386/gdt.h (KERNEL_CS, KERNEL_DS): Likewise. + * i386/i386/db_interface.c (kdb_trap, kdb_kentry): Likewise. + * i386/i386/kttd_interface.c (kttd_trap, kttd_netentry): Likewise. + * i386/i386/i386asm.sym: Add KERNEL_RING expression. + + Rename kd_atoi into mach_atoi + * i386/i386at/kd.c: Include + (DEFAULT): Remove, replaced by MACH_ATOI_DEFAULT. + (kd_parserest): Use mach_atoi instead of kd_atoi and MACH_ATOI_DEFAULT + instead of DEFAULT. + (kd_atoi): Move and rename function to... + * util/atoi.c: ... mach_atoi in new file. + * i386/i386at/kd.h (kd_atoi): Move and rename declaration to... + * util/atoi.h: ... mach_atoi in new file. + * Makefrag.am (libkernel_a_SOURCES): Add util/atoi.c + +2009-11-16 Guillem Jover + + Update dependency patch for Automake 1.10.2, 1.11, and thereabouts. + * config.status.dep.patch: Refresh. + +2009-11-11 Zheng Da + + Fix a bug in vm_page_grab_contiguous_pages. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Maintain the free vm page queue correctly. + +2009-11-01 Samuel Thibault + + Show EATA probing progression + * linux/src/drivers/scsi/eata.c (port_detect): Print the port being + probed. + +2009-10-26 Samuel Thibault + + Fix VM_MAX_ADDRESS default + * i386/include/mach/i386/vm_param.h (VM_MAX_ADDRESS): Set back to 0xc0000000 by + default. + + Make tuning VM_MAX_ADDRESS trivial + * i386/i386/vm_param.h (LINEAR_MIN_KERNEL_ADDRESS): Set to + VM_MAX_ADDRESS instead of hardcoding to 0xc0000000. + (VM_MAX_KERNEL_ADDRESS): Set to LINEAR_MAX_KERNEL_ADDRESS - + LINEAR_MIN_KERNEL_ADDRESS instead of hardcoding to 0x40000000. + * i386/include/mach/i386/vm_param.h: Document how it may be tuned. + + Fix build + * i386/i386at/com.h (comtimer): Fix prototype of comtimer. + +2009-10-25 Samuel Thibault + + Fix warning + * i386/i386at/autoconf.c: Include even when [!LINUX_DEV]. + + Fix warning + * i386/i386/trap.h: Include + + Fix warning + * i386/i386/pcb.c (thread_setstatus): Comment out state variable + declaration. + + Fix warning + * device/net_io.c (net_set_filter): Cast filter into bpf_insn_t for + bpf_eq call. + + Fix warning + * i386/i386/locore.S (TIME_INT_ENTRY): Fix comment. + + Fix warning + * i386/intel/pmap.c (i): Declare only when [NCPUS > 1]. + +2009-10-20 Samuel Thibault + + Fix warnings + * devices/io_reqs.h (io_req): Set type of io_alloc_size field to + vm_size_t. + * device/ds_routines.c (device_write_dealloc): Remove cast of + io_alloc_size field. + * device/subrs.c (brelse): Likewise. + + Fix warnings + * device/chario.c (ttypush): Set parameter type to void * instead of + struct tty *, and implicitly cast the former into the latter instead. + * i386/i386at/com.c: Include . + (timeout, ttrstrt): Remove declarations. + (comtimer): Add unused void * parameter. + (comopen): Pass NULL to comtimer function. + * i386/i386at/kd.h (kd_belloff): Add unused void * parameter. + * i386/i386at/kd.c (timeout): Remove declaration. + (kd_belloff): Add unused void * parameter. + (feep, kdsetbell): Pass NULL to kd_belloff function. + * i386/i386at/lpr.c: Include . + (timeout, ttrstrt): Remove declarations. + * kern/mach_clock.c (softclock, timeout, untimeout): Set parameter + type of fcn function pointer to void * instead of char *. Set type + of param to void * instead of char *. + * kern/mach_clock.h (timer_elt): Set parameter type of fcn member + to void * instead of char *. Set time of param member to void * instead + of char *. + (timeout): Set parameter type of fcn function pointer parameter to void + * instead of char *. + (untimeout): Likewise, set type of param parameter to void * instead of + char *. + * kern/sched_prim.c (sched_init): Remove cast of recompute_priorities. + Replace (char *)0 with NULL. + (thread_timeout): Set parameter type to void * instead of thread_t, and + implicitly cast the former into the latter instead. + (thread_timeout_setup): Remove cast of thread_timeout, cast + thread_depress_timeout into (void (*) (void*)). Remove cast of thread. + (thread_recompute_priorities): Add unused void * parameter. + + Fix warnings + * device/tty.h (tty): Set type of t_ispeed and t_ospeed members to + unsigned char instead of (potentially signed) char. + + Fix warnings + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Remove unused + count_zeroes and not_found_em labels. + + Fix warning + * vm/vm_pageout.c (vm_pageout_scan): Remove unused Restart label. + + Fix warning + * vm/vm_map.c (vm_map_lookup): Add braces to fix readability. + + Fix warning + * kern/thread.c (_s_): Remove unused variable. + + Fix warnings + * kern/bootstrap.c (task_insert_send_right): Remove spurious cast of + port into ipc_object_t. + (load_protect_text, load_fault_in_text, boot_map, + load_bootstrap_symbols): Comment out unused variables and function. + (read_exec): Comment out unused user_map variable. + + Fix boot from grub2 with more than 800MiB memory + * i386/i386at/model_dep.c (init_alloc_aligned): Add declaration. + (i386at_init): Use init_alloc_aligned to allocate memory to save the + content pointed by boot_info: cmdline, mods_addr, mod_start, and string. + Set kernel_cmdline to the newly allocated string. + (c_boot_entry): Do not set kernel_cmdline. + + Better estimate avail_remaining + * i386/i386at/model_dep.c (mem_size_init): Move avail_remaining computation to + after all phys_last_addr corrections. + +2009-10-18 Samuel Thibault + + Revert "Fix multiboot compliancy concerning x86 D flag" + This reverts commit de00e82b8c4491a4ff3320c0ddd80ac91ed0977b. + + Flags already get cleared using push/pop a few instructions later. + +2009-10-17 Samuel Thibault + + Fix multiboot compliancy concerning x86 D flag + i386/i386at/boothdr.S (boot_entry): Clear D flag. + +2009-10-14 Samuel Thibault + + Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/gnumach + + Update constants to nowadays standards + kern/zalloc.c (zone_map_size): Increase to 64MiB. + i386/i386at/model_dep.c (mem_size_init): Reduce cap to 1/6 of memory + space to save room for zalloc area. + linux/src/drivers/block/ide.h (INITIAL_MULT_COUNT): Set to 16. + vm/vm_map.h (VM_MAP_COPY_PAGE_LIST_MAX): Set to 64. + vm/vm_object.c (vm_object_cached_max): Set to 4000. + +2009-10-14 Thomas Schwinge + + Merge branch 'master-zhengda' + +2009-10-14 Zheng Da + + Apply patch #6851: fix a bug in BPF * net_io.c (net_filter): Correct the amount of data of a packet accepted by BPF. + +2009-10-14 Samuel Thibault + + Fix yet more allocation failures during gc + kern/zalloc.c (zone_gc): Allocate and free two vm_map_kentry_zone elements to + make sure the gc will be able to allocate two in vm_map_delete. + + Revert spurious part of 909c941d + + Fix db kernel memory access + i386/i386/db_interface.c (db_read_bytes): Also check addr against + VM_MAX_KERNEL_ADDRESS. + + Fix macro escapes + i386/intel/pmap.c (INVALIDATE_TLB): Fix macro escapes + + Fix allocation failure during gc + kern/zalloc.c (zone_gc): Allocate and free a vm_map_kentry_zone element to make + sure the gc will be able to allocate one for vm_map_delete. + + More restrictive requirements on zone alignment + kern/zalloc.c (zinit): Panic if requested alignment doesn't match page + size and list elements. + + Fix return with lock held + vm/vm_map.c (vm_map_copy_overwrite): Unlock dst_map before returning. + + Fix return with lock held + vm/vm_map.c (vm_map_enter): Use RETURN instead of return to unlock the + map before returning. + + Make local variable static + kern/lock.c (lock_wait_time): Add static qualifier. + + Advertise memory size truncations + i386/i386at/model_dep.c (mem_size_init): Advertise memory size + truncations. + +2009-09-27 Samuel Thibault + + Disable CMD-640 support + It messes too much with probing and brings hang issue. + + * i386/linux/dev/include/linux/autoconf.h + (CONFIG_BLK_DEV_CMD640, CONFIG_BLK_DEV_CMD640_ENHANCED): + Undefine macros. + +2009-07-11 Thomas Schwinge + + Switch to the new ChangeLog style. + * ChangeLog: Wipe out content, and add instructions about how to get it back. + * ChangeLog.0: Remove file. + * ChangeLog.00: Likewise. + +2009-02-26 Samuel Thibault + + * i386/i386/prog_reg.h (invlpg_linear): Rename macro into... + (invlpg_linear_range): ... this. + (invlpg_linear): New macro. + * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_linear instead + of flush_tlb when e - S is compile-time known to be PAGE_SIZE, + instead of run-time known to be less than 32 * PAGE_SIZE. + +2009-01-05 Samuel Thibault + + * i386/i386/gdt.h (LINEAR_DS): New macro. + * i386/i386/gdt.c (gdt_init): Initialize LINEAR_DS descriptor. + * i386/i386/proc_reg.h (invlpg_user): Rename macro into... + (invlpg_linear): ... this. Use movw instead of movl to set KERNEL_DS + selector. Use LINEAR_DS selector instead of USER_DS selector. + * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_linear instead of + invlpg_user. For now, disable use of invlpg. + +2008-12-30 Samuel Thibault + + * i386/i386/proc_reg.h [__ASSEMBLER__ && __GNUC__]: Include + and + (invlpg_user): New macro. + * i386/intel/pmap.c (INVALIDATE_TLB): Call invlpg_user instead + of invlpg. + (pmap_remove, pmap_page_protect, pmap_protect, pmap_enter, + pmap_collect, phys_attribute_clear): Call PMAP_UPDATE_TLBS + after pde update instead of before. + +2008-12-29 Samuel Thibault + + * i386/intel/pmap.c (pmap_bootstrap): Extend kernel virtual memory to + at least the size of the physical memory. + +2008-12-05 Samuel Thibault + + * vm/vm_fault.c (vm_fault_page): Print value returned + memory_object_data_request as %x instead of %d. + +2008-11-15 Shakthi Kannan + + * device/ds_routines.h (device_reference, device_deallocate): Add + function prototypes. + * kern/task.c (task_create): Moved unused i variable inside FAST_TAS. + * vm/vm_map.h (vm_map_copy_page_discard): Add function prototype. + * vm/vm_kern.c (projected_buffer_deallocate): Give &map->hdr + instead of map to _vm_map_clip_start and _vm_map_clip_end functions. + +2008-12-01 Samuel Thibault + + * device/device_emul.h (device_emulation_ops): Turn back reference, + dealloc, dev_to_port, write_trap and writev_trap into taking a void*, + as they do not always take a mach_device_t. + * device/ds_routines.c (mach_device_emulation_ops): Cast + mach_device_reference, mach_device_deallocate, + mach_convert_device_to_port, device_write_trap and device_writev_trap + to (void*) to make them accept a void* argument. + * linux/pcmcia-cs/glue/ds.c (device_deallocate): Rename function + into... + (ds_device_deallocate): ... this. + (dev_to_port): Call ds_device_deallocate instead of device_deallocate. + (linux_pcmcia_emulation_ops): Use ds_device_deallocate instead of + device_deallocate, cast mach_device_reference to (void*) to make it + accept a void* argument. + +2008-11-28 Thomas Schwinge + + * doc/Makefrag.am: Only advertize updating the web pages on + gnumach-1-branch. + +2008-11-27 Samuel Thibault + + * i386/i386/proc_reg.h (invlpg): New macro. + * i386/intel/pmap.c (INVALIDATE_TLB): If portion to be flushed is less + than 32 pages, use calls to invlpg instead of flush_tlb. + +2008-11-23 Samuel Thibault + + * i386/i386/proc_reg.h (get_cr0, get_cr2, get_cr3, get_cr4, get_tr, + get_ldt): Add volatile qualifier to asm statement to prevent gcc from + optimizing it away since there seems to be no way to clobber these + properly in the set_* macros. + +2008-11-17 Thomas Schwinge + + * Makefile.am (install_sh, INSTALL): Point to `build-aux/install-sh'. + Make use of its `-C' option. + + * configure.ac: Require GNU Automake 1.10.1. + * Makefile.am: Adapt. + * Makefile.correct_output_files_for_.S_files.patch: Remove. + +2008-07-19 Barry deFreese + + * device/device_emul.h (struct device_emulation_ops): Make members + reference, dealloc, dev_to_port, write_trap, and writev_trap take + mach_device_t parameter instead of void *. + * i386/i386at/autoconf.c: Make forward declarations for comintr() + and lprintr() match prototype. Add brackets around initialization + members for bus_ctlr and bus_device structs. + * i386/i386at/conf.c (dev_name_list): Pass nomap instead of nulldev + for map field. + * i386/i386at/pic_isa.c (intnull, fpintr, hardclock, kdintr, + prtnull): Declare the type of the value returned by functions to void. + +2008-11-13 Thomas Schwinge + + [task #8135 -- PAE for GNU Mach] + * i386/configfrag.ac (enable_pae): Add checks: this is ix86-only. + * doc/mach.texi (Configuration): Document the new option. + +2008-11-11 Shakthi Kannan + + * kern/eventcount.c (evc_wait_clear): Remove unused variable 'ret'. + +2008-11-10 Samuel Thibault + + [task #8135 -- PAE for GNU Mach] + * i386/configfrag.ac: Add --enable-pae option, which defines PAE. + * i386/i386/i386asm.sym (PDPSHIFT, PDEMASK, PTE_SIZE): New assembly + macros. + * i386/i386/locore.S (copyout_retry) [PAE]: Use page directory pointer + bits, take PTE_SIZE into account. + * i386/i386at/model_dep.c (i386at_init) [PAE]: Set second initial 2MB + page. Enable PAE bit. Set cr3 to page directory pointer table instead + of page directory. + * i386/intel/pmap.c (pmap_bootstrap, pmap_create) [PAE]: Allocate 4 + pages for dirbase. Setup pdpbase. + (pmap_destroy) [PAE]: Free 4 pages from dirbase. Free pdpbase. + * i386/intel/pmap.h (pt_entry_t) [PAE]: Typedef to unsigned long long. + (PDPSHIFT, PDPNUM, PDPMASK) [PAE]: New macros. + (PDESHIFT, PDEMASK, PTEMASK) [PAE]: Set to PAE values. + (lin2pdenum, NPDES) [PAE]: Make them take the page directory pointer + index into account too. + (struct pmap) [PAE]: Add `pdpbase' member. + (set_dirbase): Remove macro, replaced by... + (set_pmap): New macro, taking a pmap instead of the dirbase. + (PMAP_ACTIVATE_USER): Use set_pmap instead of set_dirbase. + +2008-11-05 Shakthi Kannan + + * ipc/mach_port.c (mach_port_insert_right): Cast poly into + (ipc_object_t) to fix compiler warning when calling + ipc_object_copyout_name. + +2008-08-31 Samuel Thibault + + * i386/i386/trap.c (user_trap): On page fault, raise exception instead + of asserting that cr2 is below LINEAR_MIN_KERNEL_ADDRESS. + +2008-07-29 Zheng Da + Manuel Menal + + * include/device/net_status.h (NET_FLAGS): New macro. + * linux/dev/glue/net.c (device_get_status): Handle NET_FLAGS case. + (device_set_status): Likewise, calls dev_change_flags. + * linux/dev/include/linux/netdevice.h (dev_change_flags): Declare + function. + * linux/dev/net/core/dev.c (dev_change_flags): Add function. + +2008-08-03 Samuel Thibault + + * i386/i386/lock.h (_simple_lock_xchg_, bit_lock, bit_unlock): Add + memory clobbers. + * i386/include/mach/i386/cthreads.h (spin_unlock, spin_try_lock): Add + memory clobbers. + +2008-07-23 Barry deFreese + + * device/chario.c (ttyinput_many): Change chars param to char *. + * device/tty.h (ttyinput_many): Likewise. + * i386/i386/pcb.h: Include . + * i386/i386at/autoconf.h: Include . + * i386/i386at/model_dep.c (inittodr): Cast &new_time.seconds to u_int *. + * ipc/mach_port.c (mach_port_insert_right): Cast poly to ipc_object_t. + * ipc/mach_debug.c (host_ipc_hash_info): Initialize size to 0 to make + the compiler believe that there is no bug. + * ipc/mach_debug.c (mach_port_space_info): Likewise for tree_size and + table_size. + * i386/i386at/com.c (commctl): Likewise for b. + * i386/i386/trap.c (user_trap): Likewise for exc. + * i386/i386/user_ldt.c (i386_set_ldt): Likewise for old_copy_object. + * i386/i386at/com.c (comintr): Check line_stat&iOR instead of line&iOR. + +2008-07-23 Barry deFreese + + * i386/i386/locore.h (copyinmsg, copyoutmsg): + Make parameters const void* and void* instead of vm_offset_t. + * i386/i386at/com.c (comportdeath): Cast port as ipc_port_t in + tty_portdeath call. + * i386/i386at/kd.c (kdportdeath): Likewise. + * i386/i386at/lpr.c (lprportdeath): Likewise. + * i386/i386at/kd_mouse.c (mouse_handle_byte): Cast param to wakeup() as + vm_offset_t. + * i386/intel/pmap.c (pmap_destroy): Cast arg 2 of kmem_free() to + vm_offset_t. + * i386/intel/pmap.h: Cast all arg 1 params to kvtophy() to vm_offset_t. + * ipc/ipc_kmsg.c: Remove casts from params to copyinmsg and + copyoutmsg calls. + * ipc/mach_msg.c: Likewise. + * kern/exceptions.c: Likewise. + * ipc/mach_msg.c: Remove casts from params to copyout calls. + * ipc/bootstrap.c: Likewise. + * kern/ipc_tt.c (mach_ports_register): Cast memory[i] as ipc_port_t in + assignment. + +2008-07-19 Barry deFreese + + * chips/busses.h (bus_ctlr, bus_device): Make intr return void instead + of int. + * device/tty.h (tty): Make t_start and t_stop return void instead of + int. + * i386/i386/ipl.h (ivect[]): return void instead of int. + * i386/i386at/pic_isa.h (ivect[]): Likewise. + * i386/i386at/kd_mouse.c (mouseintr): Likewise. + * i386/i386at/com.c (comintr, comstop): Likewise. + * i386/i386at/kd.c (kdcnputc, kdstart, kdstop, kdintr): Likewise. + * i386/i386/trap.c (exception, thread_exception_return, i386_exception): + Add __attribute__ ((noreturn)). + * i386/i386at/kd.c (kdcnprobe): Return 0 at end of function. + * i386/i386at/lpr.c (lprintr, lprstart): Return void instead of int. + (lprstart): Don't return numeric values any longer. + * kern/eventcount.c (evc_wait_clear): Return a value. + * kern/exceptions.c (exception, exception_try_task, exception_no_server, + exception_raise, exception_raise_continue, exception_raise_continue_slow, + exception_raise_continue_fast): Add __attribute__ ((noreturn)). + (exception, exceptio_try_task, exception_raise, + exception_raise_continue_slow, exception_raise_continue_fast): + Remove spurious returns. + (exception_no_server): Add panic() on return from thread_halt_self(). + +2008-07-20 Samuel Thibault + + * linux/pcmcia-cs/glue/wireless_glue.h (schedule_task): Add parameter + to Debugger() call. + * kern/lock_mon.c (retry_simple_lock, retry_bit_lock): Likewise. + * kern/machine.c (Debugger): Remove declaration. + * device/net_io.c (net_deliver): Fix parenthesis to really round up. + * kern/mach_clock.c (timeout): Make the `fcn' parameter take a void * + instead of char *. + * kern/mach_clock.h (timeout): Likewise. + * device/net_io.c (net_set_filter): Reference the proper member + instead of casting pointers. + * device/subrs.c (ether_sprintf): Set type of `i' to `int'. + * i386/i386/trap.c (kernel_trap): Pass page fault address to printf. + * i386/i386at/rtc.c (rtcget): Fix parenthesis to really test the bit. + * linux/src/include/linux/tqueue.h (queue_task_irq, + queue_task_irq_off, queue_task, run_task_queue): Turn into static + inlines. + +2008-07-19 Barry deFreese + + * device/dev_hdr.h (dev_name_lookup, dev_set_indirection): Add + prototypes. + * device/dev_pager.c: Include . + * device/ds_routines.c: Likewise. + * device/subrs.c: Likewise. + * device/device_init.c: Include . + * device/ds_routines.h (iowait): Add prototype. + * device/net_io.h (net_kmsg_collect): Add prototype. + * device/net_io.c (hash_ent_remove, net_free_dead_infp, + net_free_dead_entp, bpf_validate, bpf_eq, net_add_q_info, + bpf_match): Add forward declarations. + * device/subrs.h: New header. + * i386/i386/fpu.h: Include . + Change include to . + (fp_save, fp_load, fp_free, fpu_module_init, fpu_set_state, + fpu_get_state, fpnoextflt, fpextovrflt, fpexterrflt, init_fpu): + Add prototypes. + * i386/i386/gdt.h (gdt_init): Add prototype. + * i386/i386/io_map.c: Include . + * vm/vm_kern.c: Likewise. + * i386/i386/ktss.h (ktss_init): Add prototype. + * i386/i386/ldt.h (ldt_init): Add prototype. + * i386/i386/loose_ends.h: New header. + * i386/i386/loose_ends.c (delay): Complete prototype. + * i386/i386/model_dep.h (startrtclock): Add prototype. + * i386/i386/pcb.h (load_context, stack_attach, stack_detach, + switch_ktss): Add prototypes. + * i386/i386/pic.h (form_pic_mask, picinit): Add prototypes. + * i386/i386/pit.c: Include . + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386/pit.h (clkstart): Add prototype. + * i386/i386/trap.c: Include , , + . + * i386/i386/trap.h (interrupted_pc): Add prototype. + * i386/i386/user_ldt.c: Include . + * i386/i386at/autoconf.h: New header. + * i386/i386at/com.h: New header. + * i386/i386at/com.c: Include , . + * i386/i386at/idt.h (idt_init): Add prototype. + * i386/i386at/int_init.h: New header. + * i386/i386at/kd.c: Include . + * kern/debug.c: Likewise. + * i386/i386at/kd_event.c: Include . + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/kd_mouse.c: Include , . + * i386/i386at/lpr.c: Include + * i386/i386at/model_dep.c: Include: , , + , , , , + , , , + , . + * i386/i386at/rtc.h (readtodc, writetodc): Add prototypes. + * i386/intel/pmap.h: Include . + (pmap_bootstrap, pmap_unmap_page_zero, pmap_zero_page, pmap_copy_page, + kvtophys): Add prototypes. + * i386/intel/read_fault.h: New header. + * kern/ast.h (ast_init, ast_check): Add prototypes. + * kern/debug.c (Debugger): Move prototype to... + * kern/debug.h (Debugger): ... here. + * kern/eventcount.h (evc_notify_abort): Add prototype. + * kern/ipc_mig.c: Include , , + + * kern/ipc_mig.h: New header. + * kern/ipc_tt.h (mach_reply_port): Add prototype. + * kern/machine.h: New header. + * kern/processor.h (pset_sys_bootstrap): Move prototype outside of + MACH_HOST check. + * kern/sched_prim.h (thread_bind, compute_priority, + thread_timeout_setup): Add prototypes. + * kern/startup.c: Include , . + * kern/syscall_subr.c: Include . + (thread_depress_abort): Remove prototype. + * kern/syscall_subr.h: Include , + (thread_depress_abort): Add prototype. + * kern/syscall_sw.c: Include: . + * kern/task.h (consider_task_collect): Add prototype. + * kern/thread.c: Include , , + . + * kern/thread.h (stack_collect): Add prototype. + * linux/pcmcia-cs/glue/pcmcia_glue.h (Debugger): Remove prototype. + * util/putchar.c: Include . + * util/putchar.h: New header. + * util/puts.c: Include , . + * vm/memory_object.c: Include . + (memory_object_data_provided): Move function below + memory_object_data_supply definition. + * vm/vm_init.c: Include . + * vm/vm_kern.h (projected_buffer_in_range): Add prototype. + * vm/vm_map.c: Include , . + (vm_map_delete, vm_map_copyout_page_list, vm_map_copy_page_discard): + Add forward declaration. + * vm/vm_map.h (vm_map_copyin_object, vm_map_submap, + _vm_map_clip_start, _vm_map_clip_end): Add prototypes. + * vm/vm_pageout.c: Include , , + . + * vm/vm_resident.h: New header. + * vm/vm_user.c: Include . + * vm/pmap.h (pmap_pageable, pmap_map_bd): Add prototype. + +2008-07-18 Andrei Barbu + + * i386/i386/db_disasm.c (Iba): New macro. + (db_inst_table): Use Iba for aam and aad instructions. + (db_disasm): Decode operands for Iba case. + * i386/i386/db_interface.c (db_read_bytes): Do not increment the + address before printing it. + * include/sys/types.h (int8_t, uint8_t, u_int8_t, int16_t, uint16_t, + u_int16_t, int32_t, uint32_t, u_int32_t, int64_t, uint64_t, + u_int64_t): New types. + * ddb/db_sym.c (db_task_printsym): Do not print empty symbols. + * ddb/db_break.c (db_set_breakpoint): Add db_breakpoint_t return type, + return the breakpoint in non-ddb case. + * ddb/db_break.h (BKPT_EXTERNAL): New macro. + (db_set_breakpoint): Add declaration. + * (ddb/db_sym.h): Add _DDB_DB_SYM_H_ header protection. + (db_find_sym_and_offset, db_find_xtrn_sym_and_offset, + db_find_task_sym_and_offset, db_find_xtrn_task_sym_and_offset): Call + db_free_symbol. + (db_free_symbol): New declaration. + (db_sym_switch): New `free_symbol' member. + (X_db_free_symbol): New macro. + * ddb/db_sym.c (db_value_of_name, db_lookup, db_name_is_ambiguous, + db_search_task_symbol, db_search_in_task_symbol, db_task_printsym): + Call db_free_symbol. + (db_free_symbol): New function. + (dummy_db_free_symbol): New empty function. + (x_db): Initialize `free_symbol' memberi with dummy_db_free_symbol. + * i386/i386/db_trace.c (db_i386_stack_trace): Call db_free_symbol. + * kern/lock_mon.c (print_lock_info): Likewise. + * include/sys/types.h (quad): Remove type. + +2008-07-15 Barry deFreese + + * device/cons.c (cnputc): Turn parameter `c' into a char. + * device/cons.h (cninit, cngetc, cnmaygetc, cnputc): Add prototypes. + * i386/i386at/model_dep.c: Include + * kern/printf.c: Include + (cnputc): Remove prototype. + (vprintf, iprintf): Explicitely cast cnputc into the type _doprnt + expects. + * linux/dev/kernel/printk.c: Include + (cnputc): Remove prototype. + * device/ds_routines.c: Include + * ipc/ipc_kmsg.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/exception.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/time_stamp.c: Likewise. + * vm/vm_kern.c: Likewise. + * device/ds_routine.h (ds_notify): Add prototype. + * kern/ipc_kobject.c: Include + * device/net_io.h (net_ast): Add prototype. + * ipc/ipc_kmsg.c: Include + * kern/ast.c: Include + * i386/i386at/kd.h (kd_isupper, kd_islower, kd_senddata, kd_sendcmd, + kd_cmdreg_write, kd_mouse_drain, set_kd_state, kd_setleds1, kd_setleds2, + cnsetleds, kdreboot, kd_putc, kd_parseesc, kd_down, kd_up, kd_cr, + kd_tab, kd_left, kd_right, kd_scrollup, kd_scrolldn, kd_cls, kd_home, + kd_atoi, kd_insch, kd_cltobcur, kd_cltopcur, kd_cltoecur, kd_clfrbcur, + kd_eraseln, kd_insln, kd_delln, kd_delch, kd_erase, kd_bellon, + kd_belloff, kdinit, kdsetkbent, kdgetkbent, kdsetbell, kd_resend, + kd_handle_ack, kd_kbd_magic, kdstate2idx, kd_parserest, kdcnmaygetc, + kd_slmwd, kd_slmscu, kd_slmscd): Add prototypes. + * i386/i386at/kd.c (do_modifier): Add prototype. + * kern/ipc_kobject.c: Include + * vm/vm_object.h: Include and . + (vm_object_coalesce, vm_object_pager_wakeup): Add prototypes. + * kern/priority.c: Include . + * kern/sched_prim.c (recompute_priorities, update_priority): Remove + prototypes. + * kern/sched_prim.h (update_priority, compute_my_priority): Add + prototypes. + * kern/time_stamp.h (timestamp_init): Add prototype. + * kern/startup.c: Include . + * ipc/ipc_kmsg.c: Include and . + * ipc/ipc_mqueue (ipc_mqueue_copyin): Add prototype. + * kern/bootstrap.c: Include . + * kern/exceptions.c: Include . + * kern/ipc_kobject.h (ipc_kobject_notify): Add prototype. + * kern/ipc_mig.c: Include . + * kern/pc_sample.c: Include . + * kern/printf.h (safe_gets): Add prototype. + * kern/processor.c: Include . + * kern/queue.h (insque): Add prototype. + * kern/startup.c: Include and . + * kern/thread.h (thread_start, kernel_thread, thread_priority, + thread_set_own_priority, thread_max_priority, thread_policy, + consider_thread_collect, stack_privilege): Add prototypes. + * kern/timer.h (timer_normalize, timer_init, init_timers): Add + prototypes. + * vm/vm_map.h (vm_map_lookup_entry, vm_map_entry_delete): Add + prototypes. + * device/chario.c: Include + * device/device_init.c (chario_init): Remove prototype. + * device/tty.h (ttyinput_many, tty_cts, tty_get_status, + tty_set_status, tty_flush, ttrstrt, ttstart, ttyclose, tty_portdeath, + chario_init): Add prototypes. + * i386/i386/model_dep.h: New header. + * i386/i386at/model_dep.c: Include . + * kern/debug.c: Include . + * kern/mach_clock.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/machine.c: Likewise. + (halt_cpu): Remove prototype. + * vm/pmap.h (pmap_grab_page): Add prototype. + * ipc/mach_port.h: New header. + * ipc/mach_port.c: Include . + (mach_port_get_receive_status): Add forward declaration. + * kern/bootstrap.c: Include . + * kern/ipc_mig.c: Likewise. + * kern/syscall_sw.c: Likewise. + * device/dev_pager.c (device_pager_data_request, + device_pager_data_request_done, device_pager_init_pager): Fix printf + formats. + * i386/i386/debug_i386.c (dump_ss): Likewise. + * i386/i386/trap.c (user_trap): Likewise. + * i386/i386at/com.c (comtimer): Likewise. + * ipc/ipc_notify (ipc_notify_port_deleted, ipc_notify_msg_accepted, + ipc_notify_port_destroyed, ipc_notify_no_senders, + ipc_notify_send_once, ipc_notify_dead_name): Likewise. + * kern/ipc_kobject.c (ipc_kobject_destroy): Likewise. + * kern/sched_prim.c (do_runq_scan): Likewise. + * linux/pcmcia-cs/clients/smc91c92_cs.c (smc_start_xmit): Likewise. + * linux/src/drivers/net/sundance.c (start_tx): Likewise. + * vm/vm_fault.c (vm_fault_page): Likewise. + * vm/vm_map.c (vm_map_pmap_enter): Likewise. + * vm/vm_object.c (vm_object_collapse): Likewise. + +2008-07-04 Samuel Thibault + + * linux/src/drivers/net/rtl8139.c (rtl8129_open): Move IRQ + initialization after ring initialization. + +2008-07-02 Samuel Thibault + + * linux/dev/include/asm/segment.h (__put_user, __get_user): Add + always_inline attribute. + +2008-06-29 Samuel Thibault + + * i386/i386/fpu.c (fpintr): Do not panic if the we receive the + interrupt twice in the same thread. + +2008-05-28 Thomas Schwinge + + [bug #23417, patch #6508 -- Building with -g3] + * Makefile.am (MIGCOM): Revert the 2008-05-19 change. + +2008-05-25 Andrei Barbu + + * ddb/db_aout.c (aout_db_symbol_values): Add stab parameter. + * ddb/db_sym.h (db_sym_switch): Add stab parameter to symbol_values + member. + (X_db_symbol_values): Pass stab parameter to symbole_values function. + +2008-05-19 Thomas Schwinge + + [patch #6508 -- Building with -g3] + * Makefile.am (MIGCOM): Let it filter through CPP again. + Suggested by Andrei Barbu . + +2008-05-09 Andrei Barbu + + * i386/i386/loose_ends.c (DELAY): Use volatile qualifier instead of + register to prevent optimization. + +2008-03-10 Samuel Thibault + + * doc/Makefrag.am: Fix typo. + +2008-03-07 Samuel Thibault + + * i386/i386/locore.S (syscall): Clear direction flag at entry. + +2008-02-06 Samuel Thibault + + * linux/src/drivers/block/triton.c (ide_init_triton): Enable Bus + Mastering if not enabled by BIOS. + +2007-12-30 Samuel Thibault + + * kern/debug.c (panic) [MACH_KDB]: Don't wait before running the + debugger. + * linux/dev/glue/block.c (MAX_BUF): Set to sane stack-friendly 8 + instead of blindly following VM_MAP_COPY_PAGE_LIST_MAX. + (rdwr_full): increment blk by cc >> bshift instead of nb. + +2007-12-11 Thomas Schwinge + + * linux/dev/include/linux/nfs.h: Remove unused file. + * linux/src/include/linux/nfs.h: Likewise. + +2007-12-10 Thomas Schwinge + + * i386/Makefrag.am (i386/i386at/boothdr.o, i386/i386at/interrupt.o) + (i386/i386/cswitch.o, i386/i386/locore.o): Remove targets. + * configure.ac : Add a hack to + re-add the four targets with have been removed above for the (legacy) + case only where they are actually needed. + +2007-12-05 Guillem Jover + + * i386/Makefrag.am (i386/i386at/interrupt.o): New target, depends on + i386/i386/i386asm.h + (i386/i386/cswitch.o): Likewise. + (i386/i386/locore.o): Likewise. + +2007-11-18 Samuel Thibault + + * i386/intel/pmap.c (pmap_map_bd): Use + INTEL_PTE_NCACHE|INTEL_PTE_WTHRU. Get pmap lock. + +2007-11-15 Samuel Thibault + + * ddb/db_examine.c (db_strcpy): Add extra parentheses around + assignment used as boolean. + * ddb/db_sym.c (db_qualify, db_lookup): Likewise. + +2007-11-08 Thomas Schwinge + + * doc/mach.texi: Do the copyright and licensing things as suggested by + the GNU Texinfo manual. + +2007-10-09 Thomas Schwinge + + * linux/dev/glue/net.c (device_open) : Comment. + +2007-10-08 Stefan Siegl + + * linux/dev/glue/net.c (device_open): Set LINUX_IFF_ALLMULTI flag + on device and propagate. + +2007-10-02 Samuel Thibault + + * kern/zalloc.c (zget_space): Fix last change. + +2007-09-03 Samuel Thibault + + * kern/zalloc.c (zget_space): Align zalloc_next_space again after + calling kmem_alloc_wired (which may sleep). + +2007-08-16 Samuel Thibault + + * Makefile.am (clib_routines): Add udivdi3, __udivdi3 and _end. Fix + edata into _edata. + (gnumach-undef): Do not remove heading _s. + (clib-routines.o): Add -lgcc. + +2007-07-09 Samuel Thibault + + * i386/i386/db_interface.c (int_regs): Drop gs and fs fields. + (kdb_kentry): Get fs and gs from struct i386_interrupt_state instead of + struct int_regs. + * i386/i386/kttd_interface.c (int_regs, kttd_netentry): Likewise. + * i386/i386/locore.S (all_intrs): Save fs and gs and set them to kernel + segment too. + (return_to_iret): Restore fs and gs too. + (return_to_iret_i): Likewise. + (ast_from_interrupt): Set fs and gs to kernel segment too. + (kdb_from_iret): Don't save/restore fs and gs either. + (ttd_from_iret): Likewise. + * i386/i386/thread.h (i386_interrupt_state): Add gs and fs fields. + * linux/src/include/asm-i386/irq.h (SAVE_ALL): Set gs to kernel + segment too. + +2007-08-04 Samuel Thibault + + * i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY) + (TIME_TRAP_UEXIT): Use TH_SYSTEM_TIMER instead of old TH_SYS_TIMER. + (current_tstamp, TIME_TRAP_UENTRY, TIME_TRAP_SENTRY, TIME_TRAP_UEXIT) + (TIME_INT_ENTRY, TIME_INT_EXIT, timer_switch, start_timer): Use + EXT(current_tstamp) and EXT(current_timer) instead of _current_tstampt + and _current_timer. + * i386/i386/io_perm.c (i386_io_perm_create): Lock io_perm->port, not + inexistent device->port. + * i386/i386at/model_dep.c: Make init_alloc_aligned() extern. + * i386/i386/mp_desc.c: Include + (interrupt_stack_alloc): Call init_alloc_aligned() instead of + init_alloc(). + (cpu_control, interrupt_processor, cpu_start, start_other_cpus): New + functions. + * i386/i386/mp_desc.h: Include instead of "idt.h" + * i386/i386/cswitch.S: Use EXT(interrupt_stack) instead of + _interrupt_stack. + * i386/i386/i386asm.sym (MP_GDT, MP_IDT): Remove macros. + * i386/i386/lock.h: Don't include_next "lock.h". + * i386/linux/dev/include/linux/autoconf.h [NCPUS > 1]: Define + CONFIG_SMP. + * linux/dev/include/asm-i386/smp.h: New file. + * linux/dev/init/main.c [__SMP__ && __i386] (smp_loops_per_tick): + Restore variable. + * linux/pcmcia-cs/modules/cs_internal.h: Use __SMP__ instead of + USE_SPIN_LOCKS. + * linux/pcmcia-cs/modules/i82365.c: Likewise. + * linux/pcmcia-cs/modules/rsrc_mgr.c: Likewise. + * linux/dev/include/asm-i386/system.h: Update to Linux 2.2 for SMP. + * configfrag.ac (mach_ncpus): Define to 1. + (NCPUS): Set to $mach_ncpus. + [$mach_ncpus > 1] (MULTIPROCESSOR): Set to 1. + * linux/configfrag.ac [$mach_ncpus > 1] (__SMP__): Define. + * linux/dev/arch/i386/kernel/irq.c: Include . + (local_bh_count, local_irq_count, global_irq_holder, global_irq_lock) + (global_irq_count, check_smp_invalidate, show, wait_on_bh) + (wait_on_irq, synchronize_bh, synchronize_irq, get_irqlock) + (__global_cli, __global_sti, __global_save_flags) + (__global_restore_flags): New variables and functions from Linux 2.2 + * linux/src/drivers/net/3c515.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/de4x5.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/eth16i.c (test_and_set_bit): Remove macro. + * linux/src/drivers/net/kern_compat.h (test_and_set_bit): Remove macro. + * linux/src/drivers/net/pcnet32.c (test_and_set_bit): Remove macro. + * linux/src/include/linux/compatmac.h (test_and_set_bit) + (test_and_clear_bit): Remove macro. + * linux/src/include/asm-i386/atomic.h (atomic_read): New macro. + * linux/src/include/asm-i386/bitops.h (test_and_set_bit) + (test_and_clear_bit, test_and_change_bit): New inline functions. + * linux/src/include/asm-i386/hardirq.h (local_bh_count): New + declaration. + * linux/src/include/linux/tasks.h (NR_CPUS): Set to NCPUS. + (NO_PROC_ID): New macro. + +2007-07-08 Samuel Thibault + + * i386/i386/seg.h (SZ_64): New macro. + * i386/i386/user_ldt.c (selector_check, i386_set_gdt): Check + user-provided descriptor against SZ_64. + +2007-07-04 Samuel Thibault + + * i386/intel/pmap.c (pmap_enter): Use INTEL_PTE_NCACHE|INTEL_PTE_WTHRU + when cpu >= 486 and physical address is after memory end. + +2007-06-23 Samuel Thibault + + * i386/i386/trap.c (user_trap): Read faulting linear address before + using it. + +2007-06-02 Thomas Schwinge + + * Makerules.mig.am: New file, factored out of code of... + * Makefrag.am: ... this file and... + * Makerules.am: ... this file. + * i386/Makefrag.am: Update comment. + + * Makefile.am (MIGFLAGS): Remove. + (MIGCOM): Add ``-n''. + * Makerules.am: Adapt to that. + +2007-05-09 Thomas Schwinge + + * include/mach/mach_types.defs (userprefix, serverprefix): Set, if + requested (by setting USERPREFIX respective SERVERPREFIX). + +2007-05-08 Samuel Thibault + + * i386/i386/fpu.c (fpu_set_state): Set fp_valid to TRUE. Free the + unused ifps. + +2007-05-07 Thomas Schwinge + + [bug #15295 -- Mach lets processes write to I/O ports] + + * i386/Makefrag.am (libkernel_a_SOURCES): Add `i386/i386/io_perm.c', + `i386/i386/io_perm.h', `i386/i386/machine_task.c', `i386/i386/task.h' + and remove `i386/i386/io_port.h', `i386/i386/iopb.c', + `i386/i386/iopb.h'. + + * i386/i386/io_port.h: Remove file. + * i386/i386at/kd.c: Don't include . + (vga_port_list, kd_io_device, kd_io_map_open, kd_io_map_close): Don't + define and don't use anymore. + + * include/stddef.h: New file. + + * i386/i386/io_perm.c: Include , , + and don't include . + (io_perm_device_emulation_ops): New variable. + (dev_open_alloc, setup_no_senders): Remove declarations. + (convert_io_perm_to_port, convert_port_to_io_perm, io_perm_deallocate): + Rewrite. + (no_senders): New function. + (i386_io_perm_create, i386_io_perm_modify): Rewrite partially, to adapt + to the GNU Mach environment. + * i386/i386/io_perm.h: Include and + . + (io_perm, io_perm_t): New structure and accompanying type definition. + (IO_PERM_NULL): Define. + * i386/i386/locore.S (ktss): Move variable to... + * i386/i386/ktss.c: ... here, make it a ``struct task_tss''. + (ktss_init): Initialize the `task_tss' structure and the i/o permission + bit map. + * i386/i386/ktss.h: Adapt to that. + * i386/i386/machine_task.c (machine_task_module_init): Adapt the `zinit' + call to the GNU Mach environment. + * i386/i386/mp_desc.c: Include . + * i386/i386/tss.h: Include . + (task_tss): New structure, equivalent to the OSKit-Mach one. + * i386/include/mach/i386/mach_i386.defs: Don't include + . + (device_list_t): Remove type. + * i386/include/mach/i386/mach_i386_types.h (device_list_t): Remove type + definition. + +2007-05-07 Marcus Brinkmann + + [bug #15295 -- Mach lets processes write to I/O ports] + + * i386/i386/iopb.h, i386/i386/iopb.c: Obsolete files removed. + + * i386/i386/pcb.c (switch_context): Update the I/O permission + bitmap from stack_handoff() here (not only in stack_handoff()). + + * i386/i386/machine_task.c (machine_task_module_init): Set + ZONE_COLLECTABLE and ZONE_EXHAUSTIBLE flags for the iopb zone. + Requested by Roland McGrath . + + * i386/i386/io_perm.h: New file. + * i386/i386/io_perm.c: New file. + * i386/i386/machine_task.c: New file. + * i386/i386/mp_desc.h: (struct mp_desc_table): Change type of ktss to + struct task_tss. + (mp_ktss): Likewise for array of pointers to the struct. + * i386/i386/mp_desc.c: Include `machine/tss.h' and `machine/io_perm.h'. + (mp_ktss): Change type to array of struct task_tss. + (mp_desc_init): Cast pointer to x86_tss into pointer to task_tss, + and use size of struct task_tss instead size of struct x86_tss. + Initialize the task_tss structure. + * i386/i386/pcb.c: Include `stddef.h' and `machine/tss.h'. + (iopb_create, iopb_destroy): Prototypes removed. + (curr_ktss): Cast pointer to base_tss to pointer to struct + task_tss. + (switch_ktss): Always use kernel TSS. + (update_ktss_iopb): New function. + (stack_handoff): Call update_ktss_iopb. + (pcb_module_init): Do not call iopb_init. + (pcb_terminate): Do not call iopb_destroy. + (thread_setstatus): Remove local variable tss. + (thread_getstatus): Rewrite i386_ISA_PORT_MAP_STATE case handler. + * i386/i386/task.h: New file. + * i386/i386/thread.h: Do not include `i386/iopb.h'. + (struct i386_machine_state): Remove member io_tss. + * i386/include/mach/i386/mach_i386.defs [KERNEL_SERVER]: Include + `machine/io_perm.h'. Define intran, outtran and destructor. + (io_port_t): New type. + (io_perm_t): Likewise. + (i386_io_port_add): Interface removed. + (i386_io_port_remove): Likewise. + (i386_io_port_list): Likewise. + (i386_io_perm_create): New interface. + (i386_io_perm_modify): Likewise. + * i386/include/mach/i386/mach_i386_types.h [MACH_KERNEL]: Include + `i386/io_perm.h'. + [!MACH_KERNEL]: Define types io_port_t and io_perm_t. + * kern/task.c (task_init): Call machine_task_module_init. + (task_create): Call machine_task_init. + (task_deallocate): Call machine_task_terminate. + (task_collect_scan): Call machine_task_collect. + * task.h: Include `machine/task.h'. + (struct task): Add member machine. + +2007-05-06 Thomas Schwinge + + * device/kmsg.c: Include . + (kmsg_lock): Use `decl_simple_lock_data'. + (kmsgread, kmsg_read_done): Add two typecasts. + + * device/buf.h (minphys): Add return type. + * device/device_types_kernel.h: We're not in the eighties anymore... + * device/io_req.h: Likewise. + +2007-05-05 Thomas Schwinge + + * i386/i386at/model_dep.c (halt_cpu, halt_all_cpus): Call + `machine_idle' to avoid busy-looping. + + * i386/intel/read_fault.c (intel_read_fault): Remove the last parameter + from the calls of `vm_map_lookup'. + + We're not in the eighties anymore. List arguments in function + prototypes and definitions for a lot of symbols. Also drop some unused + prototypes. I refrain from listing every changed symbol. + * vm/memory_object.c: Do as described. + * vm/memory_object.h: Likewise. + * vm/pmap.h: Likewise. + * vm/vm_external.c: Likewise. + * vm/vm_external.h: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_fault.h: Likewise. + * vm/vm_kern.h: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_map.h: Likewise. + * vm/vm_pageout.h: Likewise. + * vm/vm_user.h: Likewise. + * vm/memory_object.h: Include . + * vm/pmap.h: Include . + * vm/vm_fault.h: Include , and + . + * vm/vm_map.h: Include and . + (vm_map_t, VM_MAP_NULL): Remove type and definition. + * vm/vm_object.h (vm_object_t, VM_OBJECT_NULL): Remove type and + definition. + * vm/vm_page.h: Include . + (vm_page_t, VM_PAGE_NULL): Remove type and definition. + * vm/vm_user.h: Include . + * kern/task.h: Include instead of . + * vm/vm_types.h: New file: the above-removed types and definitions. + +2007-05-02 Thomas Schwinge + + * configure.ac (--disable-default-device-drivers): Transform into... + (--enable-device-drivers): ... this new option and extend it. + * i386/configfrag.ac (--enable-lpr): Adapt to that. + * linux/configfrag.ac (AC_OPTION_Linux_ix86_at, AC_Linux_DRIVER): + Likewise. + (AC_Linux_DRIVER_qemu): New definition. Use it for the `floppy', `ide' + and `ne' device drivers. + * doc/mach.texi: Document all that. + +2007-05-01 Thomas Schwinge + + * assigns: Remove file. See `copyright.list' on the GNU server instead. + +2007-04-30 Thomas Schwinge + + We're not in the eighties anymore. List arguments in function + prototypes and definitions for a lot of symbols. Also drop some unused + prototypes. I refrain from listing every changed symbol. + * chips/busses.h: Do as described. + * ddb/db_break.c: Likewise. + * ddb/db_break.h: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_command.h: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_lex.h: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_output.h: Likewise. + * ddb/db_sym.h: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_task_thread.h: Likewise. + * ddb/db_variables.h: Likewise. + * ddb/db_watch.c: Likewise. + * ddb/db_watch.h: Likewise. + * device/buf.h: Likewise. + * device/conf.h: Likewise. + * device/dev_hdr.h: Likewise. + * device/ds_routines.h: Likewise. + * device/if_ether.h: Likewise. + * device/io_req.h: Likewise. + * device/net_io.h: Likewise. + * i386/i386/io_port.h: Likewise. + * i386/i386/lock.h: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/mp_desc.h: Likewise. + * i386/i386/proc_reg.h: Likewise. + * i386/i386/user_ldt.h: Likewise. + * i386/i386at/kd_queue.h: Likewise. + * i386/i386at/kdsoft.h: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Likewise. + * include/mach/mach_traps.h: Likewise. + * ipc/ipc_entry.h: Likewise. + * ipc/ipc_hash.h: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_marequest.h: Likewise. + * ipc/ipc_mqueue.h: Likewise. + * ipc/ipc_notify.h: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_pset.h: Likewise. + * ipc/ipc_right.h: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/ipc_table.h: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_msg.h: Likewise. + * kern/ast.c: Likewise. + * kern/ast.h: Likewise. + * kern/debug.c: Likewise. + * kern/debug.h: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/ipc_tt.h: Likewise. + * kern/mach_factor.c: Likewise. + * kern/mach_factor.h: Likewise. + * kern/printf.c: Likewise. + * kern/printf.h: Likewise. + * kern/queue.h: Likewise. + * kern/sched.h: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/syscall_subr.h: Likewise. + * kern/task.h: Likewise. + * kern/thread_swap.c: Likewise. + * kern/thread_swap.h: Likewise. + * kern/timer.h: Likewise. + * kern/xpr.c: Likewise. + * kern/xpr.h: Likewise. + * kern/zalloc.c: Likewise. + * kern/zalloc.h: Likewise. + * ipc/ipc_port.h: Don't include . + * device/dev_hdr.h: Include . + * device/net_io.h: Include and . + * ipc/ipc_entry.h: Include and . + * ipc/ipc_kmsg.h: Include , and + . + * ipc/ipc_marequest.h: Include and + . + * ipc/ipc_object.h: Include . + * ipc/ipc_right.h: Include . + * ipc/ipc_space.h: Include and . + * kern/ipc_tt.h: Include . + * kern/sched.h: Include . + * kern/syscall_subr.h: Include . + * ipc/ipc_hash.c (ipc_hash_index_t): Move type definition... + * ipc/ipc_hash.h: ... into here. + +2007-04-25 Thomas Schwinge + + * DEVELOPMENT: Add url. + + [task #5878 -- Backport code from GNU Mach's trunk to + gnumach-1-branch: i386_set_gdt, i386_get_gdt] + * i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt): + Shift by two to maintain rpc id compatibility with OSKit-Mach. + + * linux/dev/glue/kmem.c (vmalloc_list_remove): Cast the first argument + in the `kfree' call to what is expected. + + * linux/pcmcia-cs/glue/ds.c (kmalloc, kfree): Call `linux_kmalloc', + respective `linux_kfree' instead. + + * kern/kalloc.h (kalloc, kget, kfree, kalloc_init): List the arguments. + +2007-04-24 Michael Casadevall + + * linux/src/drivers/net/ne.c (bad_clone_list): Add the RealTek 8029 PCI + card's signature. + + +2007-04-24 Thomas Schwinge + + * ipc/ipc_port.h: Include . + +2007-04-11 Thomas Schwinge + + * config.status.dep.patch: Update to match more files. This fixes + building GNU Mach with ``make -j2'' and higher. The problem was + reported by Michael Casadevall . + +2007-04-02 Thomas Schwinge + + * i386/i386/io_emulate.c: Remove file. + * i386/i386/io_emulate.h: Likewise. + * i386/i386at/iopl.c: Likewise. + * i386/Makefrag.am (libkernel_a_SOURCES): Remove the aforementioned + files. + * i386/i386/trap.c: Don't include . + (v86_assist, check_io_fault): Remove functions. + (user_trap): Remove the code referencing the above functions. + * i386/i386at/conf.c (dev_name_list): Remove the `iopl' device. + * DEVELOPMENT: Document this. + +2007-03-30 Thomas Schwinge + + * Makefile.am (gnumach_o_LINK): Remove ``--start-group''. + +2007-03-27 Thomas Schwinge + + Unconditionally use the device driver multiplexing. Suggested by + Gianluca Guida . + * i386/i386at/dev_hdr.h: Merge into `device/dev_hdr.h' and remove. + * i386/i386at/device_emul.h: Rename to `device/device_emul.h'. Adapt + all users. + * i386/i386at/i386at_ds_routines.c: Merge into `device/ds_routines.c' + and remove. + * i386/linux/dev/include/linux_emul.h: Remove file. + * Makefrag.am (libkernel_a_SOURCES): Add `device/device_emul.h'. + * i386/Makefrag.am (libkernel_a_SOURCES): Remove + `i386/i386at/dev_hdr.h', `i386/i386at/device_emul.h' and + `i386/i386at/i386at_ds_routines.c'. + * i386/linux/Makefrag.am (liblinux_a_SOURCES): Remove + `i386/linux/dev/include/linux_emul.h'. + * dev/dev_hdr.h: Adapt all users of `i386' as if it were always + defined. + * device/dev_lookup.c: Likewise. + * device/ds_routines.c: Likewise. + * device/device_init.c (ds_init): Rename to `mach_device_init'. + * device/ds_routines.c (ds_init): Likewise. + (ds_trap_init): Rename to `mach_device_trap_init'. + (mach_device_trap_init): Make it `static'. + * linux/dev/glue/block.c: Don't include , but instead + include and . + * linux/dev/glue/net.c: Don't include , but instead + include . + * linux/pcmcia-cs/glue/ds.c: Likewise. + + * kern/pcsample.h: Remove the automatic cvs log appending machinery. + * linux/dev/drivers/scsi/g_NCR5380.c: Likewise. + * linux/src/drivers/net/sk_g16.h: Likewise. + * linux/src/drivers/scsi/AM53C974.c: Likewise. + * linux/src/drivers/scsi/AM53C974.h: Likewise. + * linux/src/drivers/scsi/NCR5380.c: Likewise. + * linux/src/drivers/scsi/NCR5380.h: Likewise. + * linux/src/drivers/scsi/aha152x.c: Likewise. + * linux/src/drivers/scsi/aha1542.h: Likewise. + * linux/src/drivers/scsi/g_NCR5380.c: Likewise. + * linux/src/drivers/scsi/g_NCR5380.h: Likewise. + * linux/src/drivers/scsi/gdth.c: Likewise. + * linux/src/drivers/scsi/qlogicisp.c: Likewise. + * linux/src/drivers/scsi/qlogicisp.h: Likewise. + * linux/src/drivers/scsi/t128.c: Likewise. + * linux/src/drivers/scsi/t128.h: Likewise. + +2007-03-24 Thomas Schwinge + + * i386/i386at/conf.c (block_io_mmap): Remove declaration. + + * doc/mach.texi: Fix a typo and the url for GNU GRUB. + + * device/kmsg.h: Include , and + . + + * Makefrag.am (libkernel_a_SOURCES): Move `device/kmsg.h' into + [enable_kmsg]. + +2007-03-23 Thomas Schwinge + + * Makerules.am (%.server.msgids, %.user.msgids): Merge into the + existing ``%.h %.c'' rules. + Comment out the currently unused rpc stub rules. + * Makefrag.am (gnumach.msgids): Rewrite. + (nodist_libkernel_a_SOURCES): Add all ``.msgids'' files. + * i386/Makefrag.am (nodist_libkernel_a_SOURCES): Likewise. + +2007-03-19 Tim Retout + + * i386/ldscript: Correct 'LINKFLAGS_gnumach' in comment. + +2007-03-06 Samuel Thibault + + * i386/i386/user_ldt.c (i386_set_gdt): Call switch_ktss() if target is + current thread. + +2007-03-05 Samuel Thibault + + [bug #18349 -- ``General Protection Trap'' in `ipc_kmsg_enqueue'] + * linux/dev/glue/net.c (device_write): Call net_packet() with splimp + held. + +2007-03-04 Thomas Schwinge + + * tests/configfrag.ac (MBCHK): Remove check. + * tests/test-mbchk.in: Fail correctly if `mbchk' is not available. + +2007-03-01 Thomas Schwinge + + * linux/dev/glue/block.c (free_buffer): Use `VM_PAGE_FREE'. + * vm/vm_object.c (vm_object_collapse, vm_object_page_remove) + (vm_object_page_map): Likewise. + +2007-02-20 Samuel Thibault + + * linux/dev/glue/block.c (free_buffer): Fix + vm_page_lock_queues/vm_page_unlock_queues pair. + + Fix ddb's trace command. + * i386/i386/db_trace.c (db_find_trace_symbols): Drop _ prefix on ELF + targets. + (db_i386_stack_trace): Check that adresses of known functions were + really found. + +2007-02-19 Thomas Schwinge + + * Makefile.am (gnumach_LINKFLAGS): New variable. + (gnumach_LINK): Use that one instead of the previously used + `LINKFLAGS_gnumach'. + * i386/Makefrag.am (LINKFLAGS_gnumach): Rename to `gnumach_LINKFLAGS', + move into [PLATFORM_at] and pass `_START'. + * i386/ldscript: Don't hardcode a _start address of 0x100000, but make + it configurable via `_START'. + + Add a `--enable-platform' option for future use. Allow building + without any Linux code. + * Makefile.am: Don't include `linux/Makefrag.am' in there... + * Makefrag.am: ... but rather in here. + * configfrag.ac (MACH_MACHINE_ROUTINES): AC_DEFINE_UNQUOTED based on + then shell variable `mach_machine_routines'. + (--disable-default-device-drivers): Don't define in there... + * configure.ac: ... but rather in here. + (--enable-platform): New option. + (host_platform): New variable. + (HOST_i386): Don't define there... + * i386/configfrag.ac (HOST_ix86): ... but rather here, rename it and + adapt all users. + (PLATFORM_at): New conditional. + (MACH_MACHINE_ROUTINES): Don't AC_DEFINE, but rather set a shell + variable `mach_machine_routines'. + * linux/Makefrag.am (noinst_LIBRARIES, gnumach_o_LDADD): Only enhance + ``if CODE_linux'' or ``if device_driver_group_pcmcia''. + * linux/configfrag.ac (AC_OPTION): Rename to `AC_OPTION_Linux_ix86_at' + and rework a bit. Adapt all users. + (AC_OPTION_nodef): Rename to `AC_OPTION_Linux_ix86_at_nodef' and rework + a bit. Adapt all users. + (CODE_linux): New conditional. + * i386/Makefrag.am (LINKFLAGS_gnumach): Don't evaluate $(systype). + + * Makefile.am: Update the FSF's postal address. + * doc/Makefrag.am: Likewise. + * i386/linux/Makefrag.am: Likewise. + * linux/Makefrag.am: Likewise. + * tests/Makefrag.am: Likewise. + * tests/configfrag.ac: Move to GPL. + +2007-02-05 Thomas Schwinge + + * kern/mach_clock.c: Don't include . + + * i386/i386/hardclock.c: Include instead of + . + * i386/i386/pit.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/rtc.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/mach_factor.c: Likewise. + * kern/priority.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread.h: Likewise. + * kern/zalloc.c: Likewise. + + * kern/host.c: Include . + (tick): Remove declaration. + * kern/pc_sample.c: Likewise. + * kern/thread.c: Likewise. + * kern/sched_prim.c (hz): Remove declaration. + * kern/syscall_subr.c (hz): Likewise. + * linux/dev/init/main.c (hz): Likewise. + + * kern/time_out.h: Remove file after having installed the missing bits + in... + * kern/mach_clock.h: ... here. + + * configfrag.ac: Enhance comments. + + * vm/vm_debug.c (MACH_VM_DEBUG): Correctly place conditional. + +2007-02-04 Thomas Schwinge + + * doc/mach.texi (thread_switch): Enhance a bit. + + * doc/Makefrag.am ($(web)): Use ``mkdir -p''. + + * doc/mach.texi: Fix unusual hyphens. + + * i386/i386/hardclock.c: Don't check for the `SYMMETRY' platform. + + * kern/timer.h: Add some comments from... + * i386/i386/timer.h: ... here and remove this file. + +2007-01-26 Thomas Schwinge + + * doc/mach.texi: Fix the last change. + +2007-01-22 Thomas Schwinge + + * COPYING: Update via GNU automake 1.10. + * doc/fdl.texi: Update from . + * doc/gpl.texi: Update from . + * doc/mach.texi: Use the GFDL 1.2. + +2007-01-21 Ralf Wildenhues + + * doc/mach.texi: Many typos fixed. + +2007-01-11 Thomas Schwinge + + * DEVELOPMENT (LAYOUT OF THE SOURCE TREE): New section. + + These following files are regenerated by running ``autoreconf -i'' and + ``make info''. + * INSTALL: Remove file. + * Makefile.in: Likewise. + * aclocal.m4: Likewise. + * build-aux/compile: Likewise. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/mdate-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + * config.h.in: Likewise. + * configure: Likewise. + * doc/mach.info: Likewise. + * doc/mach.info-1: Likewise. + * doc/mach.info-2: Likewise. + * doc/stamp-vti: Likewise. + * doc/version.texi: Likewise. + +2007-01-06 Thomas Schwinge + + * ddb/db_break.c (db_delete_thread_breakpoint): Don't declare + `db_cond_free'. + * ddb/db_run.c: Include . + (db_stop_at_pc): Don't declare `db_cond_check'. + * ddb/db_input.c: Include . + * ddb/db_macro.c: Include . + * ddb/db_trap.c: Include . + * i386/i386/db_interface.h: Include . + * i386/i386/db_interface.c: Include . + * i386/i386/db_machdep.h: Include . + (db_check_access, db_phys_eq, db_task_name): Remove declarations. + +2007-01-06 Barry deFreese + + * ddb/db_aout.c: Include . + * ddb/db_break.c: Include , and + . + (db_delete_cmd, db_breakpoint_cmd): Explicitly define untyped variables + as `int'. + * ddb/db_command.c: Include , and + . + * ddb/db_command.h (db_exec_cmd_nest): New declaration. + * ddb/db_cond.c: Include , and + . + (db_cond_cmd): Explicitly define untyped variable as `int'. + * ddb/db_cond.h: New file. + * ddb/db_examine.c: Include , + and . + (db_strcpy, db_examine): Remove forward declarations. + (db_xcdump): Explicitly define untyped variables as `int'. + * ddb/db_examine.h: New file. + * ddb/db_expr.c: Include , , + and . + * ddb/db_input.c: Include . + * ddb/db_input.h: New file. + * ddb/db_lex.c: Include , , + and . + (db_skip_to_eol, db_lex): Explicitly define untyped variables as `int'. + * ddb/db_lex.h (db_lex): New declaration. + * ddb/db_macro.c: Include , and + . + (db_def_macro_cmd, db_exec_macro): Explicitly define untyped variables + as `int'. + * ddb/db_macro.h: New file. + * ddb/db_output.c: Include . + * ddb/db_output.h (db_putchar): New declaration. + * ddb/db_print.c: Include , + and . + (db_show_regs): Explicitly define untyped variables as `int'. + * ddb/db_run.c: Include , , + and . + * ddb/db_run.h: Include and . + (db_single_step, db_single_step_cmd, db_in_single_step): New + declarations. + * ddb/db_sym.c: Include and . + (db_sym_parse_and_lookup): Explicitly define untyped variables as + `int'. + * ddb/db_sym.h (db_line_at_pc): New declaration. + * ddb/db_task_thread.c: Include , , + and . + (db_lookup_task, db_lookup_task_thread, db_lookup_thread) + (db_lookup_task_id, db_lookup_thread_id): Explicitly define untyped + variables as `int'. + * ddb/db_trap.c: Include and . + * ddb/db_trap.h: New file. + * ddb/db_variables.c: Include , , + and . + (db_get_suffix, db_cmp_variable_name): Explicitly define untyped + variables as `int'. + * ddb/db_variables.h (db_get_variable): New declaration. + * ddb/db_watch.c: Include , , + and . + * ddb/db_write_cmd.c: Include and . + * i386/i386/db_interface.c: Include , , + , , and + . + (kdbprinttrap): Add `void' return type. + (db_user_to_kernel_address, db_task_name): Explicitly define untyped + variables as `int'. + * i386/i386/db_interface.h: New file. + * i386/i386/db_trace.c (db_i386_reg_value): Add `int' return type. + * i386/i386/trap.c [MACH_KDB]: Include and + . + * ipc/ipc_kmsg.c [MACH_KDB]: Include . + * kern/lock.c [MACH_KDB]: Include . + +2007-01-06 Thomas Schwinge + + * configure.ac (AM_INIT_AUTOMAKE): Add ``-Wall -Wno-portability''. + +2007-01-05 Richard Braun + + Add alignment support in the zone allocator. + * kern/zalloc.c (ALIGN_SIZE_UP): New macro. + (zinit): New `align' parameter. + (zget_space): Likewise. + (zalloc): Updated call to zget_space() with the zone alignment. + * kern/zalloc.h (zone): New member `align'. + (zinit): Declaration updated as required. + * device/dev_lookup.c (dev_lookup_init): Updated call to zinit() with + alignment of 0. + * device/dev_pager.c (dev_pager_hash_init): Likewise. + (device_pager_init): Likewise. + * device/ds_routines.c (ds_init): Likewise. + (ds_trap_init): Likewise. + * device/net_io.c (net_io_init): Likewise. + * i386/i386/fpu.c (fpu_module_init): Likewise. + * i386/i386/pcb.c (pcb_module_init): Likewise. + * i386/intel/pmap.c (pmap_init): Likewise. + * ipc/ipc_init.c (ipc_bootstrap): Likewise. + * ipc/ipc_marequest.c (ipc_marequest_init): Likewise. + * kern/act.c (global_act_init): Likewise. + * kern/kalloc.c (kalloc_init): Likewise. + * kern/processor.c (pset_sys_init): Likewise. + * kern/task.c (task_init): Likewise. + * kern/thread.c (thread_init): Likewise. + * kern/zalloc.c (zone_bootstrap): Likewise. + * vm/vm_external.c (vm_external_module_initialize): Likewise. + * vm/vm_fault.c (vm_fault_init): Likewise. + * vm/vm_map.c (vm_map_init): Likewise. + * vm/vm_object.c (vm_object_bootstrap): Likewise. + * vm/vm_resident.c (vm_page_module_init): Likewise. + +2007-01-02 Samuel Thibault + + Fix translation of port into device in the "no sender" notification. + * i386/i386at/i386at_ds_routines.c (ds_notify): Use dev_port_lookup() + for translating the remote port. + + Fix loop indexing. + * i386/intel/pmap.c (pmap_change_wiring): Increment pte in the + unwiring loop. + + Drop old and broken support for Olivetti XP7 & XP9 + * i386/intel/pmap.c [ORC] (OLIVETTICACHE): Remove macro. + [OLIVETTICACHE] (pstart): Remove declaration. + (CACHE_LINE, CACHE_SIZE, CACHE_PAGE, WRITE_PTE, WRITE_PTE_FAST): Remove + macros. + [OLIVETTICACHE] (write_pte): Remove function. + * DEVELOPMENT: Document the removal. + +2006-12-19 Samuel Thibault + + Add support for global pages. + * i386/i386at/model_dep.c: Include . + (i386at_init): Set CR4_PGE if available. + (c_boot_entry): Call discover_x86_cpu_type() before i386at_init(). + * i386/intel/pmap.c: Include . + (pmap_map_bd): Use INTEL_PTE_GLOBAL if available. + (pmap_bootstrap): Likewise. + + Add support for cr3/cr4 flags. + * i386/i386/proc_reg.h (CR3_PCD, CR3_PWT, CR4_VME, CR4_PVI, CR4_TSD) + (CR4_DE, CR4_PSE, CR4_PAE, CR4_MCE, CR4_PGE, CR4_PCE, CR4_OSFXSR) + (CR4_OSXMMEXCPT, get_cr4, set_cr4): New macros. + * i386/intel/pmap.h (INTEL_PTE_GLOBAL): New macro. + + Add support for querying x86 features. + * i386/i386/locore.h (cpu_features): New variable declaration. + (CPU_FEATURE_FPU, CPU_FEATURE_VME, CPU_FEATURE_DE, CPU_FEATURE_PSE) + (CPU_FEATURE_TSC, CPU_FEATURE_MSR, CPU_FEATURE_PAE, CPU_FEATURE_MCE) + (CPU_FEATURE_CX8, CPU_FEATURE_APIC, CPU_FEATURE_SEP, CPU_FEATURE_MTRR) + (CPU_FEATURE_PGE, CPU_FEATURE_MCA, CPU_FEATURE_CMOV, CPU_FEATURE_PAT) + (CPU_FEATURE_PSE_36, CPU_FEATURE_PSN, CPU_FEATURE_CFLSH) + (CPU_FEATURE_DS, CPU_FEATURE_ACPI, CPU_FEATURE_MMX, CPU_FEATURE_FXSR) + (CPU_FEATURE_SSE, CPU_FEATURE_SSE2, CPU_FEATURE_SS, CPU_FEATURE_HTT) + (CPU_FEATURE_TM, CPU_FEATURE_PBE, CPU_HAS_FEATURE): New macros. + * i386/i386/locore.S (cpu_features): New variable. + (discover_x86_cpu_type): Record CPUID feature word 0. + +2006-12-13 Samuel Thibault + + Drop useless and broken FPE support. + * i386/configfrac.ac (FPE): Don't define. + * i386/i386/gdt.h (FPE_CS, USER_FPREGS): Remove macros. + * i386/i386/fpu.c (init_fpu, fpu_set_state, fpu_get_state): Remove FPE + support. + * i386/i386/fpu.h: Likewise. + * i386/i386/trap.c (user_trap, i386_exception): Likewise. + * i386/i386/fpe_linkage.c: Remove file. + * i386/Makefrag.am: Remove i386/i386/fpe_linkage.c. + * Makefile.in: Regenerate. + +2006-12-03 Thomas Schwinge + + [patch #5019 -- Remove checks for continuations] + + * DEVELOPMENT: Document the removal. + + * i386/configfrag.ac (CONTINUATIONS): Don't define. + +2006-12-03 Leonardo Lopes Pereira + + [patch #5019 -- Remove checks for continuations] + * ipc/mach_msg.c: Adapt all users of CONTINUATIONS as if it were always + defined. + * kern/eventcount.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/syscall_subr.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-12-03 Thomas Schwinge + + [patch #5017 -- Remove obsolete IPC interfaces] + + * DEVELOPMENT: Document the removal. + + * configfrag.ac (MACH_IPC_COMPAT): Don't define. + +2006-12-03 Leonardo Lopes Pereira + + [patch #5017 -- Remove obsolete IPC interfaces] + * kern/act.c [MIGRATING_THREADS]: Don't include . + * kern/act.h: Likewise. + * i386/include/mach/i386/machine_types.defs: Adapt all users of + MACH_IPC_COMPAT as if it were always defined to `0'. + * include/mach/mach.defs: Likewise. + * include/mach/mach_param.h: Likewise. + * include/mach/mach_traps.h: Likewise. + * include/mach/message.h: Likewise. + * include/mach/mig_errors.h: Likewise. + * include/mach/notify.h: Likewise. + * include/mach/port.h: Likewise. + * include/mach/std_types.defs: Likewise. + * include/mach/syscall_sw.h: Likewise. + * include/mach/task_special_ports.h: Likewise. + * include/mach/thread_special_ports.h: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_notify.h: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/ipc_right.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/mach_debug.c: Likewise. + * ipc/mach_msg.c: Likewise + * ipc/mach_msg.h: Likewise. + * ipc/mach_port.c: Likewise. + * kern/act.c: Likewise. + * kern/act.h: Likewise. + * kern/ipc_host.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/syscall_sw.c: Likewise. + * kern/thread.h: Likewise. + +2006-12-03 Thomas Schwinge + + [bug #17120 -- GNU Mach debian dir] + * debian/README.Debian: Remove file. + * debian/changelog: Likewise. + * debian/control: Likewise. + * debian/copyright: Likewise. + * debian/postinst: Likewise. + * debian/prerm: Likewise. + * debian/rules: Likewise. + + [bug #18015 -- GNU Mach: `make dist' and friends] + * Makefile.am (DISTCLEANFILES): New variable. + +2006-11-30 Thomas Schwinge + + * Makefile.in: Regenerate. + * configure: Likewise. + +2006-11-30 Barry deFreese + Thomas Schwinge + + [bug #18015 -- GNU Mach: `make dist' and friends] + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. + (EXTRA_DIST): Enhance with the patches and documentation files. + (dist-hook): New target to remove the `CVS' directories. + * Makefrag.am (libkernel_a_SOURCES, EXTRA_DIST): Add header and `mig' + input files. + (DISTCHECK_CONFIGURE_FLAGS): Enable the kernel debugger. + * i386/Makefrag.am: Likewise. Also add `i386/i386/i386asm.sym', + `i386/ldscript' and `i386/README-Drivers'. + * i386/linux/Makefrag.am (liblinux_a_SOURCES): Add the header files + from `i386/linux/'. + * linux/Makefrag.am (liblinux_a_SOURCES, EXTRA_DIST) + (liblinux_pcmcia_cs_modules_a_SOURCES) + (liblinux_pcmcia_cs_clients_a_SOURCES) + (liblinux_pcmcia_cs_wireless_a_SOURCES): Add header and other included + files. + (dist-hook): Depend on `dist-hook-linux'. + (dist-hook-linux): New phony target to remove the `asm' symbolic links. + * Makerules.am (EXTRA_DIST): Add `gensym.awk'. + * doc/Makefrag.am (EXTRA_DIST): Add `$(mach_TEXINFOS)'. + * configure.ac (AC_CONFIG_LINKS): Move instantiation to... + * configfrag.ac: ... here and change quotation. + * linux/configfrag.ac (AC_CONFIG_LINKS): Change quotation. + +2006-11-29 Thomas Schwinge + + * configure: Regenerate. + * Makefile.in: Likewise. + + * configure.ac (disable_smashing_stack_protector): New conditional, set + depending on the compiler accepting `-fstack-protector' or not. + * Makefile.am (CFLAGS): Add `-fno-stack-protector' if + `disable_smashing_stack_protector' is set. + +2006-11-28 Thomas Schwinge + + * doc/Makefrag.am ($(srcdir)/doc/version.texi): Oppress a potential + error message from grep. + +2006-11-26 Samuel Thibault + + [bug #17346 -- GNU mach can't handle 4GB memory] + * i386/i386at/model_dep.c (mem_size_init): Truncate memory size to + 4GiB. + +2006-11-21 Thomas Schwinge + + * doc/Makefrag.am (doc/web, html-local, ps-local, pdf-local) + ($(srcdir)/doc/version.texi): New targets to faciliate keeping the web + pages of the GNU Mach Reference Manual updated. + +2006-11-20 Samuel Thibault + + [patch #5328 -- GNU Mach asm statements tidy] + * i386/i386/fpe_linkage.c (disable_fpe): Gather dependent asm + statements, add `ax' clobber. + (fpe_exception_fixup): Drop bogus cast from input parameter of lcall + asm statement. + * i386/i386/pio.h (inw, outw): Drop 0x66 prefix an just use the w + instruction variant. + * i386/i386/proc_reg.h: (get_eflags, get_tr, get_ldt): Drop + useless "volatile" from asm statement. + (get_esp): Use direct asm register specification. + * i386/include/mach/i386/cthreads.h (cthread_sp): Likewise. + * i386/intel/pmap.c (pmap_unmap_page_zero): Fix asm clobber into `eax'. + + [patch #5375 -- Fix de4x5 probe] + * linux/src/drivers/net/de4x5.c (pci_probe): Make probe loop stop on + any error, not only device not found. + +2006-11-17 Constantine Kousoulos + Thomas Schwinge + + [bug #18010 -- GNU Mach: update i386/README-Drivers and doc/mach.texi] + * i386/README-Drivers: Move most of the text into... + * doc/mach.texi: ... here and update a number of things. + (UPDATED): Don't override. + +2006-11-13 Samuel Thibault + + * i386/i386at/iopl.c (ioplmmap): Add `int' return type. + * i386/i386at/model_dep.c (halt_all_cpus): Fix typo in declaration. + * kern/assert.h (Assert): Add __attribute__ ((noreturn)) to + declaration. + * kern/debug.c (Debugger): Add __attribute__ ((noreturn)) to + declaration. + (Debugger): Add call to panic(). + * kern/debug.h (panic): Add __attribute__ ((noreturn)) to declaration. + * util/putchar.c (putchar): Return printed char. + +2006-11-13 Barry deFreese + + * device/chario.c (tty_cts): Add `void' return type. + * device/cons.c (cninit, cnputc): Add `void' return type. + (cngetc, cnmaygetc): Add `int' return type. + * device/net_io.c (net_del_q_info, net_free_dead_infp) + (net_free_dead_entp): Add `void' return type. + * i386/i386/fpu.c (fpnoextflt, fpextovrflt, fpexterrflt, fp_save) + (fp_load, fpintr): Add `void' return type. + * i386/i386/ktss.c (ktss_init): Add `int' type to `exception_stack'. + * i386/i386/loose_ends.c (delay): Add `void' return type. + * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys) + (copy_from_phys): Add `void' return type. + * i386/i386/pic.c (picinit, form_pic_mask, intnull, prtnull): Add + `void' return type. + * i386/i386/pit.c (clkstart): Add `void' return type. + * i386/i386at/com.c (comparm, comtimer, fix_modem_state) + (commodem_intr): Add `void' return type. + (comintr, commctl, comstop): Add `int' return type. + * i386/i386at/iopl.c (ioplclose): Add `int' return type. + * i386/i386at/kd.c (kd_io_map_openn, kd_io_map_close, feep, pause) + (kd_debug_put, cnpollc, kdclose, kd_handle_ack, kd_resend, kdinit) + (kd_belloff, kd_bellon, kd_putc, kd_setpos, kd_scrollup, kd_scrolldn) + (kd_parseesc, kd_parserest, kd_tab, kd_cls, kd_home, kd_up, kd_down) + (kd_right, kd_left, kd_cr, kd_cltobcur, kd_cltopcurn, kd_cltoecur) + (kd_clfrbcur, kd_delln, kd_insln, kd_delch, kd_erase, kd_eraseln) + (kd_insch, kd_senddata, kd_sendcmd, kd_cmdreg_write, kd_mouse_drain) + (set_kd_state, kd_setleds1, kd_setleds2, cnsetleds, kdreboot): Add + `void' return type. + (kdopen, kdread, kdwrite, kdportdeath, kdsetbell, kdgetkbent, kdintr) + (do_modifier, kdstate2idx, kdstart, kdstop, kd_kbd_magic): Add `int' + return type. + (kd_isupper, kd_islower): Add `boolean_t' return type. + (kd_cmdreg_read): Add `unsigned char' return type. + * i386/i386at/kd_event.c (kbdinit, kbdclose, kdb_in_out, X_kdb_enter) + (X_kdb_exit, X_kdb_enter_init, X_kdb_exit_init): Add `void' return + type. + (kbdopen, kbdioctl, kbdselect, kbdread): Add `int' return type. + * i386/i386at/kd_mouse.c (init_mouse_hw, serial_mouse_open) + (kd_mouse_open, mouseclose, serial_mouse_close, kd_mouse_close) + (mouse_handle_byte, mouse_packet_mouse_system_mouse) + (mouse_packet_microsoft_mouse, ibm_ps2_mouse_open) + (ibm_ps2_mouse_close, mouse_packet_ibm_ps2_mouse, mouse_moved) + (mouse_button): Add `void' return type. + (mouseopen, mouseioctl, mouseselect, mouseread, mouseintr): Add `int' + return type. + * i386/i386at/lpr.c (lprclose, lprpr_addr): Add `void' return type. + (lprprobe, lpropen, lprread, lprwrite, lprportdeath, lprstop, lprpr): + Add `int' return type. + * i386/i386at/model_dep.c (i386at_init, startrtclock): Add `void' + return type. + (timemmap): Add `int' return type. + * i386/i386at/rtc.c (rtcinit, rtcput): Add `void' return type. + (yeartoday, hexdectodec, readtodc, writetodc): Add `int' return type. + * i386/intel/pmap.c (pmap_pageable): Add `void' return type. + * kern/eventcount.c (simpler_thread_setrun): Add `int' type to + `whichrq' variable. + +2006-11-13 Barry deFreese + + * i386/i386/locore.h: New file. + * i386/i386/pcb.h: New file. + * i386/i386/pcb.c: Include `pcb.h'. + * i386/i386/pit.c (clkstart): Fix type of s into unsigned long. + * i386/i386/spl.h (spl0, splsched, splx, splsoftclock, splon, sploff) + (splhigh, splimp, spltty, splclock, setsoftclock): Add prototype. + * i386/i386at/kd_event.h: New file. + * i386/i386at/kd_event.c: Include `kd_event.h'. + * i386/i386at/kd_mouse.h: New file. + * i386/i386at/kd_mouse.c: Include `kd_mouse.h'. + (mouseclose): Fix call of `serial_mouse_close' function. + * i386/i386at/kd.c: Include `kd_event.h' and `kd_mouse.h'. + * i386/i386at/kd.h (splx, spltty): Remove prototypes.h + * i386/i386at/lpr.c: Likewise. + * ipc/mach_msg.c: Include `machine/locore.h' and `machine/pcb.h'. + * kern/mach_clock.h: New file. + * kern/mach_clock.c: Include `kern/queue.h', `kern/timer.h' and + `mach_clock.h'. + * kern/mach_factor.h: New file. + * kern/mach_factor.c: Include `mach_factor.h'. + * kern/sched_prim.c: Include `kern/mach_factor.h'. + * kern/thread.c: Include `machine/pcb.h'. + +2006-11-11 Thomas Schwinge + + * Makefile.am (gnumach-undef-bad): Depend on the Makefile. + +2006-11-11 Samuel Thibault + + Fix I/O port type. + * i386/i386/pic.c (master_icq, master_ocw, slaves_icq, slaves_ocw): + Change variables type from char * to unsigned short. + (picinit): Remove now-useless cast. + * i386/i386at/kd_mouse.c (init_mouse_hw, serial_mouse_close) + (mouseintr): Change variable type from caddr_t to unsigned short, + remove now-useless cast. + + [task #5726 -- GCC built-in functions] + * kern/machine.c: Include `string.h'. + + Fix ``assignment used as truth value'' warnings. + * device/cons.c (cninit): Add parenthesis. + * kern/bootstrap.c (copy_bootstrap): Likewise. + * kern/printf.c (_doprnt): Likewise. + * vm/vm_map.c (vm_map_lookup): Likewise. + + Fix a bunch of ``unused variable'' warnings. + * device/ds_routines.c (ds_device_open): Remove unused `namebuf' + variable. + * device/kmsg.c (kmsgread): Remove unused `err' variable. + * device/net_io.c (net_set_filter): Remove unused `j' variable. + * i386/i386/pcb.c (curr_gdt, curr_ktss): Artificially use parameter of + macro. + * i386/i386/pic.c (picinit): Remove unused `i' variable. + * i386/i386/pit.c (clkstart): Remove unused `flags' variable. + * i386/i386/trap.c (kernel_trap): Remove unused `exc' variable. + (user_trap): Remove unused `map' and `result' variables. + (v86_assist): Remove unused `size' variable. + * i386/i386at/i386at_ds_routines.c (ds_device_open): Remove unused + `dev' variable. + * i386/i386at/kd.c (kdintr): Remove unused `o_pri' variable. + (kdcngetc): Remove unused `i' variable. + * i386/i386at/kd_event.c (kbdgetstat, kbdsetstat): Remove unused + `result' variable. + * i386/i386at/kd_mouse.c (mousegetstat): Likewise. + * i386/i386at/lpr.c (lprattach): Remove unused `tp' variable. + (lprsetstat): Remove unused `dev_addr' and `s' variables. + * i386/intel/pmap.c (pmap_bootstrap): Remove unused `pteva' variable. + (SPLVM, SPLX): Artificially use parameter of macro. + * ipc/ipc_kmsg.c (ipc_kmsg_copyin_body): Remove unused `mr' variable. + * kern/bootstrap.c (boot_script_exec_cmd): Remove unused + `boot_exec_info' and `user_map' variables. + * vm/vm_kern.c (projected_buffer_map): Remove unused `object' + variable. + +2006-11-10 Samuel Thibault + + * kern/sched_prim.h (thread_syscall_return): Replace old `volatile' + function qualifier with __attribute__((__noreturn__)). + +2006-11-09 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/printf.h: Move file... + * kern/printf.h: ... here. + * kern/debug.h (panic_init, panic): Add prototypes. + * chips/busses.c: Don't include `printf.h', include `kern/printf.h' + and `kern/debug.h' for panic(). + * ddb/db_command.c: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_output.c: Likewise. + * device/cirbuf.c: Likewise. + * device/cons.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/device_init.c: Likewise. + * device/dk_label.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/debug_i386.c: Likewise. + * i386/i386/fpe_linkage.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/act.c: Likewise. + * kern/ast.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/debug.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/exception.c: Likewise. + * kern/host.c: Likewise. + * kern/ipc_host.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/kalloc.c: Likewise. + * kern/lock.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/machine.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/printf.c: Likewise. + * kern/processor.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/server_loop.ch: Likewise. + * kern/startup.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread_swap.c: Likewise. + * kern/xpr.c: Likewise. + * kern/zalloc.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_debug.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-11-08 Thomas Schwinge + + * aclocal.m4: Regenerate using GNU Autoconf 2.60 and GNU Automake 1.10. + * INSTALL: Likewise. + * Makefile.in: Likewise. + * configure: Likewise. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + + * Makefrag.am (gnumach.msgids): Remove temporary files. + +2006-11-08 Samuel Thibault + + [task #5726 -- GCC built-in functions] + * include/printf.h (iprintf): Fix prototype. + (vprintf): Add prototype. + * kern/printf.c: Include `printf.h'. + (vprintf, printf): Fix prototype and return a dumb value. + * kern/startup.c: Include `printf.h'. + +2006-11-07 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/printf.h: New file. + (printf_init, _doprnt, printnum, sprintf, printf, indent, iprint): New + declarations. + * include/string.h (strchr, strcmp, strcpy, strlen, strncmp, strncpy) + (strrchr, strsep): New extern declarations. + * kern/strings.c: Don't include `kern/strings.h', include `string.h'. + (strncmp, strncpy, strlen): Fix prototypes into using size_t. + * kern/strings.h: Removed file. + * kern/debug.c: Include `printf.h'. + (do_cnputc): New function. + (panic, log): Use do_cnputc instead of cnputc. + * chips/busses.c: Don't include `kern/strings.h', include `printf.h' and + `string.h'. + (_doprnt): Remove extern declaration. + (indent): Remove extern declaration. + * ddb/db_aout.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_sym.c: Likewise. + * device/dev_name.c: Likewise. + * device/dev_pager.c: Likewise. + * device/dk_label.c: Likewise. + * device/ds_routines.c: Likewise. + * device/net_io.c: Likewise. + * device/subrs.c: Likewise. + * i386/i386/db_trace.c: Likewise. + * i386/i386/debug_i386.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/io_map.c: Likewise. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * i386/i386at/com.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_entry.c: Likewise. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_port.c: Likewise. + * ipc/mach_rpc.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/printf.c: Likewise. + * kern/sched_prim.c: Likewise. + * kern/thread.c: Likewise. + * kern/zalloc.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-11-05 Samuel Thibault + + * include/string.h: Fix copyright assignment to FSF, keep author's + name. + +2006-11-05 Thomas Schwinge + + * linux/dev/README: New file. + + * config.h.in: Regenerate. + * configure: Likewise. + + [task #5956 -- Automake'ify GNU Mach's code base] + * configure.ac : Add `no-define' and `1.9'. + +2006-11-05 Barry deFreese + + [task #5878 -- Backport code from GNU Mach's trunk to + gnumach-1-branch: i386_set_gdt, i386_get_gdt''] + [sync from HEAD, 2002-10-03] + * i386/include/mach/i386/mach_i386.defs (i386_set_gdt, i386_get_gdt): + New routines. + * i386/i386/user_ldt.c (i386_set_gdt, i386_get_gdt): New functions. + * i386/i386/gdt.h (USER_GDT, USER_GDT_SLOTS): New macros. + (GDTSZ): Compute it from USER_GDT and USER_GDT_SLOTS. + * i386/i386/thread.h: Include `gdt.h'. + (struct i386_machine_state): New member `user_gdt'. + * i386/i386/pcb.c (switch_ktss): Copy those slots into the GDT. + * linux/src/include/linux/head.h (idt,gdt): Remove extern declaration. + +2006-11-05 Samuel Thibault + + FPU, CPU and IO stubs cleanup. + * i386/i386/fpu.h (fstcw): New macro. + * i386/i386/locore.S (_fninit, _fstcw, _fldcw, _fnstsw, _fnclex) + (_clts, _fpsave, _fprestore, set_cr3, get_cr3, flush_tlb, get_cr2) + (get_ldt, set_ldt, get_tr, set_tr, _setts, outb, inb, outw, inw, outl) + (inl, loutb, loutw, linb, linw): Remove functions. + * i386/i386/proc_reg.h (flush_tlb): New macro. + * i386/i386/db_interface.c: Include `i386/proc_reg.h'. + * i386/intel/pmap.c: Likewise. + * i386/intel/pmap.h: Likewise. + * i386/i386/fpu.c: Include `i386/pio.h'. + * i386/i386/pic.c: Likewise. + * i386/i386/pit.c: Likewise. + * i386/i386at/iopl.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/kd_event.c: Likewise. + * i386/i386at/kd_mouse.c: Likewise. + * i386/i386at/rtc.c: Likewise. + +2006-11-05 Barry deFreese + + [task #5726 -- GCC built-in functions] + * include/string.h: New file. + * include/mach/mig_support.h: Include `string.h'. + [MACH_KERNEL] (bcopy): Remove extern declaration. + [MACH_KERNEL] (memcpy): Remove macro. + * device/cirbuf.c: Include `string.h'. + (q_to_b, b_to_q): Replace bcopy() with memcpy() and bzero() with + memset(), clean memcpy() and memset() invocation. + * device/cons.c (cnputc): Likewise. + * device/dev_pager.c (device_pager_data_request_done): Likewise. + * device/ds_routines.c (device_write_get, ds_read_done): Likewise. + * device/kmsg.c: Likewise. + * device/net_io.c (net_filter, net_set_filter, net_getstat): Likewise. + * i386/i386/fpu.c (fpu_set_state, fpu_get_state, fp_load) + (fp_state_alloc): Likewise. + * i386/i386/iopb.c (io_tss_init, i386_io_port_list): Likewise. + * i386/i386/mp_desc.c (mp_desc_init): Likewise. + * i386/i386/pcb.c (pcb_init, thread_setstatus) + (thread_getstatus): Likewise. + * i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys) + (copy_from_phys): Likewise. + * i386/i386/trap.c (v86_assist): Likewise. + * i386/i386/user_ldt.c (i386_set_ldt, i386_get_ldt): Likewise. + * i386/i386at/immc.c (immc_cnputc): Likewise. + * i386/i386at/kd_event.c (X_kdb_enter_init, X_kdb_exit_init): Likewise. + * i386/intel/pmap.c (pmap_init, pmap_page_table_page_alloc) + (pmap_create): Likewise. + * ipc/ipc_entry.c (ipc_entry_grow_table): Likewise. + * ipc/ipc_kmsg.c (ipc_kmsg_get_from_kernel) + (ipc_kmsg_put_to_kernel): Likewise. + * ipc/ipc_object.c (ipc_object_alloc, ipc_object_alloc_name): Likewise. + * ipc/ipc_port.c (ipc_port_dngrow): Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/mach_debug.c (mach_port_space_info) + (mach_port_space_info): Likewise. + * kern/act.c (act_create): Likewise. + * kern/boot_script.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/eventcount.c (evc_init): Likewise. + * kern/host.c (host_info, host_processor_sets): Likewise. + * kern/lock.c (lock_init): Likewise. + * kern/lock_mon.c (lock_info_clear): Likewise. + * kern/mach_clock.c (mapable_time_init): Likewise. + * kern/pc_sample.c (get_sampled_pcs): Likewise. + * kern/processor.c (processor_set_things): Likewise. + * kern/syscall_emulation.c (task_set_emulation_vector_internal) + (task_get_emulation_vector, xxx_task_get_emulation_vector): Likewise. + * kern/task.c (task_threads): Likewise. + * kern/xpr.c (xprbootstrap): Likewise. + * kern/zalloc.c (host_zone_info): Likewise. + * vm/vm_debug.c (mach_vm_object_pages): Likewise. + * vm/vm_kern.c (projected_buffer_allocate, copyinmap) + (copyoutmap): Likewise. + * vm/vm_object.c (vm_object_bootstrap): Likewise. + * vm/vm_resident.c (vm_page_grab_contiguous_pages): Likewise. + +2006-11-05 Samuel Thibault + + * DEVELOPMENT: Document the following removals. + + Drop MB1/MB2/EXL architecture support. + * i386/i386/pit.h (PITCTR0_PORT, PITCTR1_PORT, PITCTR2_PORT) + (PITCTL_PORT, CLKNUM): Remove MB1/MB2/EXL cases. + [EXL] (time_latch): Remove structure and type. + [EXL] (intr_disable, intr_restore): Remove functions. + + Drop iPSC architecture support. + * i386/i386/hardclock.c: Remove iPSC386 from #if. + * i386/i386/locore.S: Remove iPSC386 delays. + * i386/i386/pic.c: Remove iPSC386 support. + (SLAVEMASK): Rmove iPSC386 case. + * i386/i386/pic.h (ADDR_PIC_BASE, OFF_ICW, OFF_OCW, SIZE_PIC) + (PICM_VECTBASE, PICS_VECTBASE): Remove iPSC386 cases. + [iPSC386] (I_AM_A_SLAVE, I_AM_A_MASTR): Remove macros. + * i386/i386/pit.h: Remove iPSC386 from #if. + [iPSC386] (CLKNUM): Remove macro. + * kern/machine.c (host_get_boot_info): Remove iPSC386 support. + * vm/vm_map.h (VM_MAP_COPY_PAGE_LIST_MAX): Remove iPSC case. + + Drop i860 architecture support. + * i386/i386/pmap.h: Remove i860 comment. + * i386/intel/pmap.c: Remove i860 comments. + [i860]: Don't include `i860ipsc/nodehw.h'. + (INVALIDATE_TLB): Remove i860 case. + (paging_enabled): Remove variable. + (pmap_map): Remove setting INTEL_PTE_NCACHE. + (pmap_bootstrap): Remove i860 support. + (pmap_page_table_page_alloc): Remove setting INTEL_PTE_NCACHE. + (pmap_enter): Remove call to flush function. + (set_dirbase): Remove function. + * i386/intel/pmap.h: Remove i860 comments. + (INTEL_PGBYTES, INTEL_PGSHIFT, intel_btop, intel_ptob) + (intel_round_page, intel_trunc_page, trunc_intel_to_vm) + (round_intel_to_vm, vm_to_intel, INTEL_PTE_VALID, set_dirbase): Remove + i860 cases. + (INTEL_PTE_valid): Remove macro. + * i386/intel/read_fault.c: Remove i860 comment. + + Drop PS2 architecture support. + * i386/i386/fpu.c (fpintr): Remove PS2 from #if. + * i386/i386/gdt.c [PS2] (abios_int_return, abios_th_return, intstack): + Remove extern declarations. + * i386/i386/gdt.h [PS2] (ABIOS_INT_RET, ABIOS_TH_RET, ABIOS_INT_SS) + (ABIOS_TH_SS, ABIOS_FIRST_AVAIL_SEL): Remove macros. + (GDTSZ): Remove PS2 case. + * i386/i386/hardclock.c [PS2]: Don't include `i386/pic.h' and + `i386/pio.h'. + (hardclock): Remove PS2 prototype and code. + * i386/i386/locore.S (RET_OFFSET): Remove PS2 stack layout. + * i386/i386/pic.c (picinit): Remove #ifdef PS2. + * i386/i386/pic.h: Remove PS2 from #if. + * i386/i386/pit.c [PS2] (clock_int_handler): Remove extern declaration. + Don't include `sys/types.h' and `i386ps2/abios.h'. + (clock_request_block, clock_flags, cqbuf): Remove variables. + (clkstart): Remove call to abios_clock_start function. + (COUNT): Don't define. + (abios_clock_start, ackrtclock): Remove functions. + * i386/i386/pit.h: Remove PS2 from #if. + +2006-10-26 Thomas Schwinge + + * Makefile.in: Regenerate. + + [task #5956 -- Automake'ify GNU Mach's code base] + + * Makefrag.am (gnumach.msgids): Remove repetition. + * Makerules.am (%.server.msgids, %.user.msgids): Targets renamed from + `%.msgids'. Also consider MIGCOMSFLAGS respective MIGCOMUFLAGS. + Thanks to Guillem Jover and Leonardo Lopes Pereira for reporting this. + + The Automake build system wants us to have these files in the rcs, so + do that. + * doc/mach.info: New file, generated. + * doc/mach.info-1: Likewise. + * doc/mach.info-2: Likewise. + * doc/stamp-vti: Likewise. + * doc/version.texi: Likewise. + +2006-10-18 Thomas Schwinge + + * Makefile.in: Regenerate. + + Install `PREFIX/share/msgids/gnumach.msgids'. + * Makerules.am (%.msgids): Two new rules. + * Makefrag.am (MOSTLYCLEANFILES): Add `gnumach.msgids'. + (gnumach.msgids): New rule. + (exec_msgidsdir, exec_msgids_DATA): New variables. + +2006-10-16 Thomas Schwinge + + * configure: Regenerate. + + [bug #18011 -- `make install-data' will build the + ``to-be-generated files''] + * config.status.dep.patch: Do an educated guess instead of using the + `Makefile'. + * configure.ac : Update description. + +2006-10-15 Thomas Schwinge + + * configure: Regenerate. + + * configure.ac: Update texts snippets: GNU Automake 1.10 has just been + released. + + * i386/include/Makefile.in: Remove unused file. Thanks to Guillem + Jover for spotting this. + + [task #5956 -- Automake'ify GNU Mach's code base] + + * configure: Regenerate. + + * configure.ac : Point to [bug #18011 -- + `make install-data' will build the ``to-be-generated files'']. + + * Makefile.in: Regenerate. + + * Makefrag.am (include_mach_exec): Rename to `include_mach_eXec'. + + * Makefile.in: New file, generated by `autoreconf'. + * config.h.in: Likewise. + * configure: Updated file, generated by `autoreconf'. + + * INSTALL: File updated, thanks to `autoreconf'. + * aclocal.m4: Likewise. + + * build-aux/compile: New file, thanks to `autoreconf'. + * build-aux/config.guess: Likewise. + * build-aux/config.sub: Likewise. + * build-aux/depcomp: Likewise. + * build-aux/install-sh: Likewise. + * build-aux/mdate-sh: Likewise. + * build-aux/missing: Likewise. + * build-aux/texinfo.tex: Likewise. + + * AUTHORS: New file, copy from the MIG repository. + + * kern/bootstrap.c: Don't include `bootstrap_symbols.h'. + * ddb/db_command.c: Don't include `cpus.h'. + * ddb/db_mp.c: Likewise. + * i386/i386/ast_check.c: Likewise. + * i386/i386/cswitch.S: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/fpu.c: Likewise. + * i386/i386/fpu.h: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/mp_desc.c: Likewise. + * i386/i386/mp_desc.h: Likewise. + * i386/i386/pcb.c: Likewise. + * i386/i386/trap.c: Likewise. + * i386/intel/pmap.c: Likewise. + * include/mach/machine.h: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * kern/ast.c: Likewise. + * kern/ast.h: Likewise. + * kern/cpu_number.h: Likewise. + * kern/debug.c: Likewise. + * kern/eventcount.c: Likewise. + * kern/host.c: Likewise. + * kern/ipc_sched.c: Likewise. + * kern/lock.c: Likewise. + * kern/lock.h: Likewise. + * kern/lock_mon.c: Likewise. + * kern/mach_clock.c: Likewise. + * kern/mach_factor.c: Likewise. + * kern/machine.c: Likewise. + * kern/priority.c: Likewise. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread.c: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * vm/vm_resident.c: Likewise. + * kern/sched_prim.c: Don't include `fast_tas.h'. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * kern/sched_prim.c: Don't include `hw_footprint.h'. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * kern/counters.c: Don't include `mach_counters.h'. + * kern/counters.h: Likewise. + * ddb/db_ext_symtab.c: Don't include `mach_debug.h'. + * i386/i386/pcb.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/thread.c: Likewise. + * kern/zalloc.c: Likewise. + * kern/ast.c: Don't include `mach_fixpri.h'. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/syscall_subr.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * kern/host.c: Don't include `mach_host.h'. + * kern/ipc_sched.c: Likewise. + * kern/machine.c: Likewise. + * kern/processor.c: Likewise. + * kern/processor.h: Likewise. + * kern/sched_prim.c: Likewise. + * kern/startup.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + * include/mach/mach.defs: Don't include `mach_ipc_compat.h'. + * include/mach/mach_param.h: Likewise. + * include/mach/mach_traps.h: Likewise. + * include/mach/message.h: Likewise. + * include/mach/mig_errors.h: Likewise. + * include/mach/notify.h: Likewise. + * include/mach/port.h: Likewise. + * include/mach/std_types.defs: Likewise. + * include/mach/task_special_ports.h: Likewise. + * include/mach/thread_special_ports.h: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_notify.h: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_object.h: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_right.c: Likewise. + * ipc/ipc_right.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/mach_debug.c: Likewise. + * ipc/mach_msg.c: Likewise. + * ipc/mach_msg.h: Likewise. + * ipc/mach_port.c: Likewise. + * kern/ipc_tt.c: Likewise. + * kern/syscall_sw.c: Likewise. + * kern/thread.h: Likewise. + * include/mach_debug/mach_debug.defs: Don't include `mach_ipc_debug.h'. + * ipc/ipc_hash.c: Likewise. + * ipc/ipc_hash.h: Likewise. + * ipc/ipc_marequest.c: Likewise. + * ipc/ipc_marequest.h: Likewise. + * kern/ipc_kobject.c: Don't include `mach_ipc_test.h'. + * ddb/db_access.c: Don't include `mach_kdb.h'. + * ddb/db_aout.c: Likewise. + * ddb/db_break.c: Likewise. + * ddb/db_command.c: Likewise. + * ddb/db_command.h: Likewise. + * ddb/db_cond.c: Likewise. + * ddb/db_examine.c: Likewise. + * ddb/db_expr.c: Likewise. + * ddb/db_ext_symtab.c: Likewise. + * ddb/db_input.c: Likewise. + * ddb/db_lex.c: Likewise. + * ddb/db_macro.c: Likewise. + * ddb/db_mp.c: Likewise. + * ddb/db_output.c: Likewise. + * ddb/db_print.c: Likewise. + * ddb/db_run.c: Likewise. + * ddb/db_sym.c: Likewise. + * ddb/db_task_thread.c: Likewise. + * ddb/db_trap.c: Likewise. + * ddb/db_variables.c: Likewise. + * ddb/db_watch.c: Likewise. + * ddb/db_watch.h: Likewise. + * ddb/db_write_cmd.c: Likewise. + * i386/i386/db_disasm.c: Likewise. + * i386/i386/db_interface.c: Likewise. + * i386/i386/db_trace.c: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * include/mach_debug/mach_debug.defs: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_object.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_pset.c: Likewise. + * kern/bootstrap.c: Likewise. + * kern/debug.c: Likewise. + * kern/exception.c: Likewise. + * kern/lock.c: Likewise. + * kern/xpr.c: Likewise. + * vm/vm_fault.c: Likewise. + * vm/vm_map.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + * kern/lock.h: Don't include `mach_ldebug.h'. + * kern/lock_mon.c: Don't include `mach_lock_mon.h'. + * kern/ipc_kobject.c: Don't include `mach_machine_routines.h'. + * kern/lock_mon.c: Don't include `mach_mp_debug.h'. + * vm/memory_object.c: Don't include `mach_pagemap.h'. + * vm/vm_fault.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + * i386/i386/trap.c: Don't include `mach_pcsample.h'. + * kern/mach4.srv: Likewise. + * kern/mach_clock.c: Likewise. + * kern/pc_sample.c: Likewise. + * kern/task.c: Likewise. + * kern/thread.c: Likewise. + * vm/vm_fault.c: Likewise. + * device/net_io.c: Don't include `mach_ttd.h'. + * i386/i386/kttd_interface.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Likewise. + * include/mach_debug/mach_debug.defs: Don't include `mach_vm_debug.h'. + * vm/vm_debug.c: Likewise. + * vm/vm_page.h: Likewise. + * vm/vm_resident.c: Likewise. + * kern/sched_prim.c: Don't include `power_save.h'. + * kern/sched.h: Don't include `simple_clock.h'. + * kern/sched_prim.c: Likewise. + * kern/thread.c: Likewise. + * kern/mach_clock.c: Don't include `stat_time.h'. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/locore.S: Likewise. + * kern/sched.h: Likewise. + * kern/timer.c: Likewise. + * kern/timer.h: Likewise. + * kern/startup.c: Don't include `xpr_debug.h'. + * kern/xpr.h: Likewise. + * i386/i386at/autoconf.c: Don't include `com.h'. + * i386/i386at/com.c: Likewise. + * i386/i386at/conf.c: Likewise. + * i386/i386at/cons_conf.c: Likewise. + * i386/i386/fpe_linkage.c: Don't include `fpe.h'. + * i386/i386/fpu.c: Likewise. + * i386/i386/fpu.h: Likewise. + * i386/i386/trap.c: Likewise. + * i386/i386at/autoconf.c: Don't include `lpr.h'. + * i386/i386at/conf.c: Likewise. + * i386/i386at/lpr.c: Likewise. + * i386/i386/cswitch.S: Don't include `platforms.h'. + * i386/i386/fpu.c: Likewise. + * i386/i386/gdt.c: Likewise. + * i386/i386/hardclock.c: Likewise. + * i386/i386/i386asm.sym: Likewise. + * i386/i386/io_emulate.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/pic.c: Likewise. + * i386/i386/pic.h: Likewise. + * i386/i386/pit.c: Likewise. + * i386/i386/pit.h: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386at/com.c: Don't include `rc.h' + * i386/i386at/cons_conf.c: Likewise. + * i386/i386at/pic_isa.c: Likewise. + * device/ds_routines.c: Don't include . + * i386/i386at/i386at_ds_routines.c: Likewise. + * i386/linux/dev/include/linux/autoconf.h: Likewise. + * linux/dev/arch/i386/kernel/setup.c: Likewise. + * linux/dev/init/main.c: Likewise. + * linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise. + * linux/pcmcia-cs/glue/wireless_glue.h: Likewise. + * kern/lock_mon.c: Don't include . + * device/cons.c: Include instead of . + * i386/i386at/com.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/cons_conf.c: Likewise. + * i386/i386at/i386at_ds_routines.c: Include + instead of "device_interface.h". + * device/chario.c: Include instead of + "device_reply.h". + * device/ds_routines.c: Likewise. + * linux/dev/glue/block.c: Likewise. + * linux/dev/glue/net.c: Likewise. + * linux/pcmcia-cs/glue/ds.c: Likewise. + * device/cons.c: Include instead of . + * device/kmsg.c: Likewise. + * i386/i386/cswitch.S: Include instead of + "cpu_number.h". + * i386/i386/locore.S: Likewise. + * i386/intel/pmap.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * i386/i386/i386asm.sym: Include instead of "gdt.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/int_init.c: Likewise. + * i386/i386/cswitch.S: Include instead of "i386asm.h". + * i386/i386/locore.S: Likewise. + * i386/i386at/boothdr.S: Likewise. + * i386/i386at/interrupt.S: Likewise. + * i386/i386at/idt.h: Include instead of "idt-gen.h". + * i386/i386at/interrupt.S: Include instead of "ipl.h". + * i386/i386/i386asm.sym: Include instead of "ldt.h". + * i386/i386/locore.S: Likewise. + * i386/i386/i386asm.sym: Include instead of + "mp_desc.h". + * i386/i386at/interrupt.S: Include instead of "pic.h". + * i386/i386/cswitch.S: Include instead of + "proc_reg.h". + * i386/i386/locore.S: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/i386/i386asm.sym: Include instead of "seg.h". + * i386/i386/idt.c: Likewise. + * i386/i386/locore.S: Likewise. + * i386/i386/locore.S: Include instead of "trap.h". + * i386/i386/i386asm.sym: Include instead of "tss.h". + * i386/i386/i386asm.sym: Include instead of + "vm_param.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/kd.c: Likewise. + * i386/i386at/model_dep.c: Likewise. + * i386/intel/pmap.c: Likewise. + * i386/i386/i386asm.sym: Include instead of "idt.h". + * i386/i386/idt.c: Likewise. + * i386/i386at/int_init.c: Likewise. + * ipc/ipc_target.c: Include instead of + "sched_prim.h". + * vm/memory_object.c: Include instead + of "memory_object_default.h". + * vm/vm_object.c: Likewise. + * vm/vm_pageout.c: Likewise. + * vm/memory_object.c: Include instead of + "memory_object_user.h". + * vm/vm_fault.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_pageout.c: Likewise. + + * Makefile.am: New file. + * Makerules.am + : Remove + sections. + : Rewrite: + (%.server.defs.c, %.user.defs.c, %.server.h %.server.c) + (%.user.h %.user.c, %.server.defs, %.user.defs): New targets. + (%.h %_user.c %.cli.d, %_interface.h %_server.c %.srv.d): Remove + targets. + (echo-%): New target. + * Makefrag.am + : Remove + sections. + (enable_kdb, enable_kmsg): Adapt. + +
: Rewrite to adapt to how things + are to be done now. + : New section. + (i386/Makefrag.am): Include file if appropriate. + * i386/Makefrag.am + : Remove sections. + (enable_lpr): Adapt. + : Rewrite to adapt to how things are + to be done now. + * i386/linux/Makefrag.am: New file. + * linux/Makefrag.am: Likewise. + + * Makefile.in: Move file... + * Makefrag.am: ... here. + * i386/Makefile.in: Move file... + * i386/Makefrag.am: ... here. + * i386/linux/Makefile.in: Remove file. + + * doc/Makefile.in: Remove file. + * doc/Makefrag.am: New file. + * tests/Makefrag.am: Likewise. + * tests/test-mbchk.in: Likewise. + + * configfrag.ac: New file. + * tests/configfrag.ac: Likewise. + * Makerules.am (DEFINES): Convert those into... + * configfrag.ac: ... AC_DEFINE instantiations. + * i386/Makerules.in (DEFINES): Convert those into... + * i386/configfrag.ac: ... AC_DEFINE instantiations. + * i386/Makerules.in: Remove file. + * i386/configfrag.ac (AC_PREREQ, AC_INIT, AC_CONFIG_SRCDIR) + (AC_CONFIG_SUBDIRS, AC_CONFIG_FILES, AC_OUTPUT): Don't invoke. + (../version.m4): Don't include. + (--disable-lpr): Rework configuration option. + (--disable-default-device-drivers): Move configuration option to... + * configfrag.ac: ... here. + * configure.ac (AC_CONFIG_AUX_DIR, AM_INIT_AUTOMAKE): Instantiate. + (AC_PREFIX_DEFAULT, AC_CONFIG_SUBDIRS): Don't invoke. + : Rework the whole section. + (--enable-kdb, --disable-kmsg): Move into `configfrag.ac' and + adapt. + (AM_PROG_AS, AM_PROG_CC_C_O): Instantiate. + (AC_CHECK_PROG): Move instantiation searching for a `mbchk' program + into `tests/configfrag.ac'. + (AC_CHECK_PROG): Instantiate to search for a `patch' program. + (tests/configfrag.ac, configfrag.ac) + (linux/configfrag.ac): Include files. + (i386/configfrag.ac): Include file if appropriate. + (AC_CONFIG_HEADER): Instantiate for `config.h'. + (AC_CONFIG_FILES): Remove `Makerules' and `doc/Makefile'. + (AC_CONFIG_COMMANDS_POST): Instantiate for `config.status.dep.patch'. + (AC_CONFIG_COMMANDS): Instantiate for + `Makefile.correct_output_files_for_.S_files.patch' and (the + nonexistent) `Makefile.dependency_tracking_for_.S_files.patch'. + * Makefile.dependency_tracking_for_.S_files.patch: New file. + * config.status.dep.patch: Likewise. + * bogus/bootstrap_symbols.h: Remove file. + * configfrag.ac: AC_DEFINE `BOOTSTRAP_SYMBOLS' to `0'. + * bogus/cpus.h: Remove file. + * configfrag.ac: AC_DEFINE `NCPUS' to `1'. AH_TEMPLATE + `MULTIPROCESSOR'. + * bogus/fast_tas.h: Remove file. + * configfrag.ac: AC_DEFINE `FAST_TAS' to `0'. + * bogus/hw_footprint.h: Remove file. + * configfrag.ac: AC_DEFINE `HW_FOOTPRINT' to `0'. + * bogus/mach_counters.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_COUNTERS' to `0'. + * bogus/mach_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_DEBUG' to `1'. + * bogus/mach_fixpri.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_FIXPRI' to `1'. + * bogus/mach_host.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_HOST' to `0'. + * bogus/mach_ipc_compat.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_COMPAT' to `1'. + * bogus/mach_ipc_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_DEBUG' to `1'. + * bogus/mach_ipc_test.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_IPC_TEST' to `0'. + * bogus/mach_kdb.h: Remove file. + * configfrag.ac (--disable-kdb): AC_DEFINE `MACH_KDB' to `0'. + * bogus/mach_ldebug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_LDEBUG' to `0'. + * bogus/mach_lock_mon.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_LOCK_MON' to `0'. + * bogus/mach_machine_routines.h: Remove file. + * configfrag.ac: Add comment about not AC_DEFINEing + `MACH_MACHINE_ROUTINES' to `0'. + * bogus/mach_mp_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_MP_DEBUG' to `0'. + * bogus/mach_pagemap.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_PAGEMAP' to `1'. + * bogus/mach_pcsample.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_PCSAMPLE' to `1'. + * bogus/mach_ttd.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_TTD' to `0'. + * bogus/mach_vm_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `MACH_VM_DEBUG' to `1'. + * bogus/power_save.h: Remove file. + * configfrag.ac: AC_DEFINE `POWER_SAVE' to `1'. + * bogus/simple_clock.h: Remove file. + * configfrag.ac: AC_DEFINE `SIMPLE_CLOCK' to `0'. + * bogus/stat_time.h: Remove file. + * configfrag.ac: AC_DEFINE `STAT_TIME' to `1'. + * bogus/xpr_debug.h: Remove file. + * configfrag.ac: AC_DEFINE `XPR_DEBUG' to `1'. + * i386/bogus/com.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `NCOM' to `4'. + * i386/bogus/fpe.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `FPE' to `0'. + * i386/bogus/lpr.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `NLPR' to `1'. + * i386/bogus/mach_machine_routines.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `MACH_MACHINE_ROUTINES' to `1'. + * i386/bogus/platforms.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `AT386' to `1'. + * i386/bogus/rc.h: Remove file. + * i386/configfrag.ac: AC_DEFINE `RCLINE' to `-1' and `RCADDR' to `0x3f8'. + + * Makerules.in: Move file... + * Makerules.am: ... here. + + * linux/configfrag.ac (AC_PREREQ, AC_INIT, AC_CONFIG_SRCDIR) + (AC_CONFIG_HEADER, AC_CANONICAL_HOST, hurd_SYSTYPE, AC_CONFIG_FILES) + (AC_OUTPUT): Don't invoke. + (../../version.m4, ../../Drivers.macros, ../../aclocal.m4): Don't + include. + : Only evaluate for i386. + (--disable-default-device-drivers): Remove configuraion option. + (LINUX_DEV, __KERNEL__): AC_DEFINE these. + (scsi, net, pcmcia, wireless): Remove AC_DRIVER_CLASS instantiations. + (device_driver_group): New shell function. + (AC_OPTION, AC_OPTION_nodef): New functions. + (linux_DRIVER): Rename function to AC_Linux_DRIVER and adapt. + (linux_DRIVER_nodef): Likewise to AC_Linux_DRIVER_nodef. + : Adapt to the new functions introduced above + and re-position parts. + : Adapt to the changes related to device + driver groups. + * linux/configure.in : Move to... + * linux/configfrag.ac: ... here. + * linux/configure.in: Remove file. + * linux/configure: Likewise. + * i386/linux/Makerules.in: Likewise. + * Drivers.macros: Likewise. + + * i386/linux/configure.ac: Move file... + * linux/configfrag.ac: ... here. + * i386/linux/configure: Remove file. + * i386/linux/device-drivers.h.in: Likewise. + + * i386/configure.in: Move file... + * i386/configfrag.ac: ... here. + * i386/configure: Remove file. + + * config.guess: Remove file. + * config.sub: Likewise. + * install-sh: Likewise. + + * i386/Files: Remove file. + * i386/Subdirs: Likewise. + * linux/Files: Likewise. + * linux/Subdirs: Likewise. + +2006-10-13 Thomas Schwinge + + * configure.in: Move file... + * configure.ac: ... here. + + * Makerules.in (ASFLAGS): Don't define `ASSEMBLER'. + * i386/i386/cpu_number.h: Check for `__ASSEMBLER__' instead of + `ASSEMBLER'. + * i386/i386/debug.h: Likewise. + * i386/i386/ipl.h: Likewise. + * i386/i386/ldt.h: Likewise. + * i386/i386/proc_reg.h: Likewise. + * i386/i386/seg.h: Likewise. + * i386/i386/trap.h: Likewise. + * i386/include/mach/i386/kern_return.h: Likewise. + * i386/include/mach/i386/vm_types.h: Likewise. + * i386/intel/pmap.h: Likewise. + * include/mach/boolean.h: Likewise. + * include/mach/boot.h: Likewise. + * include/mach/error.h: Likewise. + * kern/syscall_emulation.h: Likewise. + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * linux/configure: Likewise. + +2006-10-12 Thomas Schwinge + + * version.m4 (AC_PACKAGE_VERSION): Let's name it `1.3.99'. + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * linux/configure: Likewise. + + * version.m4: Rewrite. + * configure.in: Adapt to the above. + * i386/configure.in: Likewise. + * i386/linux/configure.ac: Likewise. + * linux/configure.in: Likewise. + +2006-10-09 Thomas Schwinge + + * ddb/tr.h: Insert the content of `bogus/mach_assert.h' instead of + including it. + * i386/i386/loose_ends.c: Likewise. + * bogus/mach_assert.h: Remove file. + + * bogus/panic.c: Remove file. + + * linux/src/drivers/scsi/in2000.c (in2000_proc_info) [PROC_INTERFACE]: + Don't consider `__DATE__' and `__TIME__'. + +2006-10-08 Thomas Schwinge + + * linux/dev/drivers/scsi/scsi.h: Move file... + * linux/src/drivers/scsi/scsi.h: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/seagate.c: Move file... + * linux/src/drivers/scsi/seagate.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/aha152x.c: Move file... + * linux/src/drivers/scsi/aha152x.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sr.c: Move file... + * linux/src/drivers/scsi/sr.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sd_ioctl.c: Move file... + * linux/src/drivers/scsi/sd_ioctl.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/sd.c: Move file... + * linux/src/drivers/scsi/sd.c: ... here, overwriting the old file. + + * linux/dev/drivers/scsi/hosts.c: Remove file. + * linux/dev/drivers/scsi/scsi.c: Likewise. + + * linux/dev/drivers/block/ide.c: Move file... + * linux/src/drivers/block/ide.c: ... here, overwriting the old file. + + * linux/dev/drivers/block/ide-cd.c: Remove file. + * linux/src/drivers/block/ide-cd.c (cdrom_sleep): Don't define function + `#ifndef MACH'. + +2006-10-07 Thomas Schwinge + + * i386/linux/configure: Regernerate. + * i386/linux/device-drivers.h.in: Likewise. + + * Drivers.macros (AC_DRIVER, AC_DRIVER_nodef): Rewrite to allow options + with dashes in them, make it usable more universally and enhance the + generated comments in header files. + * i386/linux/configure.ac (linux_DRIVER, linux_DRIVER_nodef): Enhance + DESCRIPTION. + (u1434f): Rename to `u14-34f'. + (smcultra): Rename to `smc-ultra'. + (smcultra32): Rename to `smc-ultra32'. + (hpplus): Rename to `hp-plus'. + (ne2kpci): Rename to `ne2k-pci'. + (viarhine): Rename to `via-rhine'. + (intelgige): Rename to `intel-gige'. + (winbond840): Rename to `winbond-840'. + (AC_PCMCIA_OPTION): Remove function. + (pcmcia-isa): Use `AC_DRIVER' instead of `AC_PCMCIA_OPTION'. + * i386/README-Drivers: Update accordingly. + +2006-10-03 Thomas Schwinge + + [task #5941 -- Linker script for GNU Mach] + + * Makefile.in (kernel.o): Remove `$(systype)-objfiles-prepend' hackery. + * i386/Makefile.in (sysdep.a): Likewise. + * i386/Makerules.in: Likewise. + (LDFLAGS-kernel): Point to the linker script. + * i386/i386at/boothdr.S (_start): Don't put into `.text', but into + `.text.start' instead. + * i386/ldscript: Change to put `.text' at 0x100000 and put + `.text.start' first into `.text'. + + * i386/ldscript: New file, copied from `/lib/ldscripts/elf_i386.x' of a + GNU Binutils 2.16.1 installation. + +2006-09-25 Stefan Siegl + + * linux/dev/glue/net.c (device_get_status): Reworked to not read + from STATUS. Fill `struct iw_point' correctly if necessary. + +2006-09-23 Stefan Siegl + + * i386/linux/configure: Regenerate. + * i386/linux/device-drivers.h.in: Likewise. + + * i386/linux/configure.ac (AC_PCMCIA_OPTION): New function. + (--disable-pcmcia-isa): New configuration option to disable ISA-bus + support in the pcmcia core, which is otherwise enabled now by default. + * doc/mach.texi (Configuration): Briefly document the new configuration + option. + * i386/README-Drivers: Likewise. + +2006-09-20 Thomas Schwinge + + * configure: Regenerate. + * i386/configure: Likewise. + * i386/linux/configure: Likewise. + * i386/linux/device-drivers.h.in: Likewise. + + * Drivers.macros (AC_DRIVER_ALIAS): Remove definition. + (AC_DRIVER): Extend to take a `description' parameter and consider + `$enable_default_device_drivers'. + (AC_DRIVER_nodef): New definition. + * configure.in (options kdb, kmsg): Remove redundancy. + * i386/configure.in (option default-device-drivers): New option. + (option lpr): Consider `$enable_default_device_drivers'. + * i386/linux/configure.ac: Rework substantially. Remove all aliases. + Rename some of the device driver options. + (option default-device-drivers): New option. + (linux_DRIVER): Take care about a `description' parameter and don't + invoke AC_DRIVER_ALIAS. + (linux_DRIVER_nodef): New definition. + Adapt all usages of AC_DRIVER and linux_DRIVER to provide a + `description' parameter. + (g_NCR5380, NCR53c406a, eata_dma, wavelan, atp): Change from AC_DRIVER + to AC_DRIVER_nodef to have these device drivers disabled by default. + * doc/mach.texi: Add a note about the outdatedness to the configuration + option table. + * i386/README-Drivers: Update. + +2006-09-19 Samuel Thibault + + [bug #17338 -- GNU Mach vs. GCC 4.1] + * i386/i386/seg.h (struct pseudo_descriptor): Pack structure and + move the padding field to the end. + (lgdt): Pass the whole structure to the lgdt assembly command. + (lidt): Likewise. + +2006-08-06 Thomas Schwinge + + * DEVELOPMENT: Update. + +2006-07-31 Stefan Siegl + + * doc/mach.texi (Configuration): Document the new PCMCIA drivers a bit + more. + * i386/README-Drivers: Likewise. + +2006-07-27 Thomas Schwinge + + * i386/linux/configure: Regenerate. + + * i386/linux/configure.ac: Pull in the pcmcia code only if really + needed. + + * doc/mach.texi (Configuration): Very briefly document the new drivers. + * i386/README-Drivers: Likewise. + + * linux/dev/include/linux/types.h (_MACH_SA_SYS_TYPES_H_): Define. + + * i386/linux/configure: Regenerate. + * i386/linux/device-drivers.h.in: Likewise. + +2006-07-27 Stefan Siegl + + * i386/linux/configure.ac (pcmcia, wireless): New driver classes. + (i82365, 3c574_cs, 3c589_cs, axnet_cs, fmvj18x_cs, nmclan_cs, pcnet_cs) + (smc91c92_cs, xirc2ps_cs, orinoco_cs): New drivers. + * i386/linux/Makefile.in (linux-pcmcia-cs-modules-files) + (linux-pcmcia-cs-clients-files, linux-pcmcia-cs-wireless-files): New + variables. Add `vpath's to the files locations. + (all-linux-files): Add the three new variables. + (linux-pcmcia-cs-modules-flags, linux-pcmcia-cs-clients-flags) + (linux-pcmcia-cs-wireless-flags): New variables. + (linux-flags): Add code to handle the above files and flags. + + * i386/i386at/i386at_ds_routines.c (emulation_list) + [LINUX_DEV && CONFIG_INET && CONFIG_PCMCIA]: Add the Linux pcmcia + emulation structure. + * linux/dev/glue/net.c: Include . + (device_get_status): Rewrite function. + (device_set_status): New function. + (linux_net_emulation_ops): Add `device_set_status' at the appropriate + position. + * linux/dev/init/main.c (linux_init) [CONFIG_PCMCIA]: Call pcmcia_init. + + * linux/pcmcia-cs/glue/ds.c: New file. + * linux/pcmcia-cs/glue/pcmcia.c: Likewise. + * linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise. + * linux/pcmcia-cs/glue/wireless_glue.h: Likewise. + + * linux/pcmcia-cs/clients/xirc2ps_cs.c (busy_loop): Replace the code by + a call to __udelay. + * linux/pcmcia-cs/include/linux/init.h: Adapt to our Linux environment. + * linux/pcmcia-cs/include/linux/slab.h: Use `#include', not + `#include_next'. + * linux/pcmcia-cs/include/pcmcia/mem_op.h: Adapt to our Linux + environment and fix GCC 4.0 complaints. + * linux/pcmcia-cs/include/pcmcia/version.h: Always assume that + CONFIG_PCMCIA is not defined. + * linux/pcmcia-cs/modules/cs.c (init_pcmcia_cs): Don't make it static. + * linux/pcmcia-cs/modules/ds.c: Use some magic to avoid duplicate + definition `io_req_t'. + (ds_open, ds_release, ds_read, ds_write, ds_select, ds_poll, ds_fops): + Hide functions if MACH is defined. + Likewise for the module handling code. + (ds_ioctl): Use plain `memcpy' if MACH is defined. + (init_pcmcia_ds): Don't register charcater devices if MACH is defined. + Include "../glue/ds.c". + * linux/pcmcia-cs/modules/i82365.c (test_irq): Adapt to GNU Mach. + (init_i82365): Don't make it static. + * linux/pcmcia-cs/modules/pci_fixup.c (pci_devices): Don't define if + MACH is defined. + * linux/pcmcia-cs/wireless/orinoco.c: Adapt to our Linux environment. + +2006-07-27 Thomas Schwinge + + Import a number of files from the pcmcia-cs package, version 3.2.8, + available from . + + * linux/pcmcia-cs/clients/3c574_cs.c: Import file. + * linux/pcmcia-cs/clients/3c589_cs.c: Likewise. + * linux/pcmcia-cs/clients/ax8390.h: Likewise. + * linux/pcmcia-cs/clients/axnet_cs.c: Likewise. + * linux/pcmcia-cs/clients/fmvj18x_cs.c: Likewise. + * linux/pcmcia-cs/clients/nmclan_cs.c: Likewise. + * linux/pcmcia-cs/clients/ositech.h: Likewise. + * linux/pcmcia-cs/clients/pcnet_cs.c: Likewise. + * linux/pcmcia-cs/clients/smc91c92_cs.c: Likewise. + * linux/pcmcia-cs/clients/xirc2ps_cs.c: Likewise. + * linux/pcmcia-cs/include/linux/crc32.h: Likewise. + * linux/pcmcia-cs/include/linux/init.h: Likewise. + * linux/pcmcia-cs/include/linux/slab.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/bulkmem.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/bus_ops.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ciscode.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cisreg.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cistpl.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cs.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/cs_types.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/driver_ops.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ds.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/mem_op.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/ss.h: Likewise. + * linux/pcmcia-cs/include/pcmcia/version.h: Likewise. + * linux/pcmcia-cs/modules/bulkmem.c: Likewise. + * linux/pcmcia-cs/modules/cirrus.h: Likewise. + * linux/pcmcia-cs/modules/cistpl.c: Likewise. + * linux/pcmcia-cs/modules/cs.c: Likewise. + * linux/pcmcia-cs/modules/cs_internal.h: Likewise. + * linux/pcmcia-cs/modules/ds.c: Likewise. + * linux/pcmcia-cs/modules/ene.h: Likewise. + * linux/pcmcia-cs/modules/i82365.c: Likewise. + * linux/pcmcia-cs/modules/i82365.h: Likewise. + * linux/pcmcia-cs/modules/o2micro.h: Likewise. + * linux/pcmcia-cs/modules/pci_fixup.c: Likewise. + * linux/pcmcia-cs/modules/ricoh.h: Likewise. + * linux/pcmcia-cs/modules/rsrc_mgr.c: Likewise. + * linux/pcmcia-cs/modules/smc34c90.h: Likewise. + * linux/pcmcia-cs/modules/ti113x.h: Likewise. + * linux/pcmcia-cs/modules/topic.h: Likewise. + * linux/pcmcia-cs/modules/vg468.h: Likewise. + * linux/pcmcia-cs/modules/yenta.h: Likewise. + * linux/pcmcia-cs/wireless/hermes.c: Likewise. + * linux/pcmcia-cs/wireless/hermes.h: Likewise. + * linux/pcmcia-cs/wireless/hermes_rid.h: Likewise. + * linux/pcmcia-cs/wireless/ieee802_11.h: Likewise. + * linux/pcmcia-cs/wireless/orinoco.c: Likewise. + * linux/pcmcia-cs/wireless/orinoco.h: Likewise. + * linux/pcmcia-cs/wireless/orinoco_cs.c: Likewise. + +2006-07-24 Thomas Schwinge + + * Makerules.in (%.h %_user.c): Add `%.cli.d' to the target list. + Create these files by specifying `-MD' as a flag for mig and rename the + resulting files as needed. + Include these `*.cli.d' files instead of `*.migu.d' files. + (%_interface.h %_server.c): Likewise for `%.srv.d' / `*.migs.d'. + (%.migs.d, %.migu.d): Remove targets. + * Makefile.in (clean): Adapt to the above. + * i386/Makefile.in (clean): Likewise. + +2006-06-30 Samuel Thibault + + * i386/i386at/kd_mouse.c (mouse_char_in, mouse_char) Remove variables. + (mouse_char_index) New variable. + (mouse_handle_byte, kd_mouse_read): Use MOUSEBUF instead of MOUSE_CHAR + for storing incoming command characters. + (kd_mouse_read_reset): New function. + (ibm_ps2_mouse_open, ibm_ps2_mouse_close): Call new kd_mouse_read_reset + function. + +2006-06-09 Stefan Siegl + + * linux/dev/include/asm-i386/uaccess.h: New dummy file. + * linux/dev/include/linux/pm.h: Likewise. + * linux/dev/include/linux/threads.h: Likewise. + * linux/src/include/linux/symtab_begin.h: New file from Linux 2.0.40. + * linux/src/include/linux/symtab_end.h: Likewise. + * linux/src/include/linux/module.h: Update from Linux 2.0.40 with minor + changes. + * linux/src/include/linux/list.h: New file from Linux 2.2.26. + * linux/src/include/linux/kcomp.h: Likewise with minor changes. + * linux/src/include/linux/wait.h: Update from Linux 2.2.26. + * linux/src/include/linux/wireless.h: Likewise. + * linux/src/include/asm-i386/bitops.h [__KERNEL__] (ffs, hweight32) + (hweight16, hweight8): Copy from Linux 2.2.26. + + * kern/printf.c (_doprnt): Support printing of pointer addresses. + +2006-05-14 Roland McGrath + + [sync from HEAD, 2002-06-17] + * device/if_hdr.h: Replace ancient UCB copyright terms with current + approved UCB terms. + * include/sys/reboot.h: Likewise. + * include/device/disk_status.h: Likewise. + * include/device/tape_status.h: Likewise. + * device/net_io.c: Remove advertising clause from UCB copyright terms. + * include/device/audio_status.h: Likewise. + * include/device/bpf.h: Likewise. + +2006-05-14 Thomas Schwinge + + * i386/i386at/autoconf.c (bus_device_init) [! LINUX_DEV]: Depend + on `MACH_LPR' instead. + * i386/i386at/lpr.c: Fix obsolescent `#else' / `#endif' syntax. + +2006-05-12 Stefan Siegl + + * linux/dev/glue/kmem.c (vfree): Panic if `vmalloc_list_lookup' did + NOT succeed. + +2006-05-08 Thomas Schwinge + + * DEVELOPMENT: Document Samuel's patch. + +2006-05-08 Samuel Thibault + + [bug #7118 -- GNU Mach can't handle 1G memory] + * i386/i386at/model_dep.c (mem_size_init): Limit memory to what can + actually be used (minus a little extra for virtual mappings). + * i386/intel/pmap.c (pmap_bootstrap): Extend the virtual mapping area + according to memory size for at least being able to manage it. But + look out for wrap and limit it to kernel adresses. Remove duplicate + computing. + +2006-04-27 Richard Braun + Manuel Menal + + * device/if_hdr.h (struct ifnet): Added new members `if_snd_port_list' + and `if_snd_port_list_lock'. + * device/net_io.c: Reworked to improve BPF support. Filters can be + applied to ingress packets, egress packets, or both. + * device/subrs.c: Initialize the `if_snd_port_list' and + `if_snd_port_list_lock'. + * include/device/bpf.h [0]: Enable unconditionally. + Include . + (BPF_IN, BPF_OUT): New macros. + * include/device/net_status.h (NETF_TYPE_MASK, NETF_IN, NETF_OUT): New + macros. + (struct net_rcv_msg): New member `sent'. + * linux/dev/glue/net.c: Mark ingress packets as received and inject + egress packets into the packet filters. + +2006-04-26 Thomas Schwinge + + * Makefile.in: Replace `make' with `$(MAKE)'. + * i386/Makefile.in: Likewise. + Reported by Leonardo Lopes Pereira . + +2006-04-08 Thomas Schwinge + + * i386/Makefile.in (INCLUDES): Don't add `$(srcdir)/bogus'. + * i386/Makerules.in (INCLUDES): Add + `$(abs_top_srcdir)/$(systype)/bogus'. + Reported by Samuel Thibault . + +2006-04-02 Thomas Schwinge + + * Makerules.in (%_user.c, %_server.c): Those are `.PRECIOUS'. + (%.migs.d, %.migu.d): New targets. + (%.migs_d, %.migu_d, %.migsh_d, %.miguh_d): Remove targets. + Adapt the `include's to the renamed targets. + * Makefile.in (clean): Adapt to the renamed targets. + * i386/Makefile.in (clean): Likewise. + + * i386/Makefile.in (boothdr.o): New target. + +2006-03-21 Thomas Schwinge + + * Makefile.in (clean): Also remove `kernel.gz', `kernel.stripped' and + `kernel.stripped.gz'. + + * Makefile.in (kernel.o): Handle `$(systype)-objfiles-prepend'. + * i386/Makefile.in (sysdep.a): Likewise. + * i386/Makerules.in (kernel-objfiles-prepend): Transform variable into + `$(systype)-objfiles-prepend'. + (kernel.o): Remove target. + +2006-03-20 Thomas Schwinge + + * DEVELOPMENT: Document the NORMA removal. + +2006-03-20 Leonardo Lopes Pereira + + Remove unused and unsupported code. Consult the file `DEVELOPMENT' + for details. + + [patch #4982 -- remove of unused / unsuported functions of + gnumach-1-branch] + * bogus/norma_device.h: Remove file. + * bogus/norma_ether.h: Likewise. + * bogus/norma_ipc.h: Likewise. + * bogus/norma_task.h: Likewise. + * bogus/norma_vm.h: Likewise. + * include/mach/mach_norma.defs: Likewise. + * include/mach/norma_task.defs: Likewise. + * include/mach/norma_special_ports.h: Likewise. + * Makefile.in (bogus-files): Remove `norma_device.h', `norma_ether.h', + `norma_ipc.h', `norma_task.h' and `norma_vm.h'. + (mach-headers): Remove `mach_norma.defs', `norma_task.defs' and + `norma_special_ports.h'. + * device/ds_routines.c: Don't include anymore and + adapt all users of NORMA_DEVICE as if it were always defined to `0'. + * device/net_io.c: Likewise for , NORMA_ETHER. + * kern/machine.c: Likewise. + * ddb/db_command.c: Likevise for , NORMA_IPC. + * ipc/ipc_init.c: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * ipc/ipc_kmsg.h: Likewise. + * ipc/ipc_mqueue.c: Likewise. + * ipc/ipc_notify.c: Likewise. + * ipc/ipc_port.c: Likewise. + * ipc/ipc_port.h: Likewise. + * ipc/ipc_space.c: Likewise. + * ipc/ipc_space.h: Likewise. + * ipc/mach_msg.c: Likewise. + * kern/ast.c: Likewise. + * kern/debug.c: Likewise. + * kern/exception.c: Likewise. + * kern/startup.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_map.c: Likewise. + * kern/ipc_kobject.c: Likewise for , NORMA_TASK. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * ddb/db_command.c: Likewise for , NORMA_VM. + * device/dev_pager.c: Likewise. + * include/mach/mach_types.defs: Likewise. + * include/mach/mach_types.h: Likewise. + * include/mach/memory_object_default.defs: Likewise. + * include/mach/memory_object.defs: Likewise. + * ipc/ipc_kmsg.c: Likewise. + * kern/ipc_kobject.c: Likewise. + * kern/ipc_mig.c: Likewise. + * kern/startup.c: Likewise. + * vm/memory_object.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_object.h: Likewise. + * vm/vm_pageout.c: Likewise. + +2006-03-19 Thomas Schwinge + + * DEVELOPMENT: Document the FIPC removal. + +2006-03-19 Leonardo Lopes Pereira + + Remove unused and unsupported code. Consult the file `DEVELOPMENT' + for details. + + [patch #4982 -- remove of unused / unsuported functions of + gnumach-1-branch] + * ipc/fipc.c: Remove file. + * ipc/fipc.h: Likewise. + * Makefile.in (ipc-cfiles): Remove `fipc.c'. + (ipc-files): Remove `fipc.h'. + * device/device_init.c [FIPC]: Remove code. + * device/net_io.c [FIPC]: Likewise. + * include/mach/syscall_sw.h [FIPC]: Likewise. + * kern/syscall_sw.c [FIPC]: Likewise. + +2006-03-15 Thomas Schwinge + + * configure.in: Check for strip and gzip. + * configure: Regenerated. + * Makerules.in (GZIP, STRIP): New variables. + (%.gz, %.stripped): New targets. + +2006-03-04 Roland McGrath + + * Makefile.in (DEFS): Substitute once and use the variable elsewhere. + +2006-03-04 Samuel Thibault + + [patch #4737 -- User TSS fixup] + * i386/i386/iopb.c: Include "vm_param.h". + (io_tss_init): Fix address and limit of user TSS. + +2006-03-04 Thomas Schwinge + + Remove unused and unsupported code. Consult the file + `DEVELOPMENT' for details. Partly based on suggestions by + Gianluca Guida . + + * i386/bogus/par.h: Remove file. + * i386/i386at/if_par.c: Likewise. + * i386/i386at/if_par.h: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all users + of NPAR as if it were always defined to `0'. + * i386/i386at/lpr.c: Likewise. + + * i386/bogus/de6c.h: Remove file. + * i386/i386at/if_de6c.c: Likewise. + * i386/i386at/if_de6c.h: Likewise. + * i386/i386at/if_de6s.S: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all + users of NDE6C as if it were always defined to `0'. + * i386/i386at/lpr.c: Likewise. + +2006-02-20 Thomas Schwinge + + Remove unused and unsupported code. Consult the file + `DEVELOPMENT' for details. Partly based on suggestions by + Gianluca Guida . + + * i386/bogus/blit.h: Remove file. + * i386/i386at/blit.c: Likewise. + * i386/i386at/blitreg.h: Likewise. + * i386/i386at/blituser.h: Likewise. + * i386/i386at/blitvar.h: Likewise. + * i386/i386at/conf.c: Don't include anymore and adapt all + users of NBLIT as if it were always defined to `0'. + * i386/i386at/kd.c: Likewise. + (blit_init): Remove definition. + (blit_present): Likewise and adapt all users as if it were always + defined to `FALSE'. + * i386/Makefile.in (i386at-files): Remove `blit.c'. + + * bogus/net_atm.h: Remove file. + * Makefile.in (bogus-files): Remove `net_atm.h'. + * kern/syscall_sw.c: Don't include anymore and adapt all + users of NET_ATM as if it were always defined to `0'. + * kern/task.c: Likewise. + * kern/task.h: Likewise. + * kern/thread.c: Likewise. + * kern/thread.h: Likewise. + + * util/about_to_die.c: Remove file. + * util/config.h: Likewise. + * util/cpu.c: Likewise. + * util/cpu.h: Likewise. + * util/cpu_init.c: Likewise. + * util/cpu_subs.h: Likewise. + * util/debug.h: Likewise. + * util/die.c: Likewise. + * util/phys_mem.h: Likewise. + * util/ref_count.h: Likewise. + * util/cpus.h: Move from here... + * bogus/cpus.h: ... to here. + * Makefile.in (bogus-files): Add `cpus.h'. + (util-cfiles): Only contain `putchar.c' and `puts.c'. + (util-files): Only contain `$(util-cfiles)'. + + * i386/util/NOTES: Remove file. + * i386/util/anno.c: Likewise. + * i386/util/anno.h: Likewise. + * i386/util/cpu.h: Likewise. + * i386/util/cpu_subs.h: Likewise. + * i386/util/cpu_tables_init.c: Likewise. + * i386/util/cpu_tables_load.c: Likewise. + * i386/util/crtn.S: Likewise. + * i386/util/debug.h: Likewise. + * i386/util/gdt.c: Likewise. + * i386/util/gdt.h: Likewise. + * i386/util/gdt_sels.h: Likewise. + * i386/util/i16/debug.h: Likewise. + * i386/util/i16/i16.h: Likewise. + * i386/util/i16/i16_die.c: Likewise. + * i386/util/i16/i16_gdt_init_temp.c: Likewise. + * i386/util/i16/i16_nanodelay.c: Likewise. + * i386/util/i16/i16_puts.c: Likewise. + * i386/util/i16/i16_writehex.c: Likewise. + * i386/util/i386_asm.sym: Likewise. + * i386/util/idt.c: Likewise. + * i386/util/idt.h: Likewise. + * i386/util/idt_inittab.S: Likewise. + * i386/util/idt_inittab.h: Likewise. + * i386/util/ldt.h: Likewise. + * i386/util/trap.h: Likewise. + * i386/util/trap_asm.sym: Likewise. + * i386/util/trap_dump.c: Likewise. + * i386/util/trap_dump_die.c: Likewise. + * i386/util/trap_handler.S: Likewise. + * i386/util/trap_return.S: Likewise. + * i386/util/tss.c: Likewise. + * i386/util/tss.h: Likewise. + * i386/util/tss_dump.c: Likewise. + * i386/util/vm_param.h: Likewise. + + * i386/pc/NOTES: Remove file. + * i386/pc/debug.h: Likewise. + * i386/pc/exit.c: Likewise. + * i386/pc/gdt.h: Likewise. + * i386/pc/gdt_sels.h: Likewise. + * i386/pc/i16/i16_a20.c: Likewise. + * i386/pc/i16/i16_a20.h: Likewise. + * i386/pc/i16/i16_bios.h: Likewise. + * i386/pc/i16/i16_exit.c: Likewise. + * i386/pc/i16/i16_ext_mem.c: Likewise. + * i386/pc/i16/i16_init.c: Likewise. + * i386/pc/i16/i16_main.c: Likewise. + * i386/pc/i16/i16_pic.c: Likewise. + * i386/pc/i16/i16_putchar.c: Likewise. + * i386/pc/i16/i16_raw.c: Likewise. + * i386/pc/i16/i16_raw_test_a20.S: Likewise. + * i386/pc/i16/i16_real_int.S: Likewise. + * i386/pc/i16/i16_switch.h: Likewise. + * i386/pc/i16/phys_mem_collect.c: Likewise. + * i386/pc/i16/phys_mem_sources.h: Likewise. + * i386/pc/i16/raw_exit.c: Likewise. + * i386/pc/i16/raw_real_int.c: Likewise. + * i386/pc/ipl.h: Likewise. + * i386/pc/irq.h: Likewise. + * i386/pc/irq_list.h: Likewise. + * i386/pc/pc_asm.sym: Likewise. + * i386/pc/phys_mem.h: Likewise. + * i386/pc/phys_mem_add.c: Likewise. + * i386/pc/pic.c: Likewise. + * i386/pc/pic.h: Likewise. + * i386/pc/putchar.c: Likewise. + * i386/pc/real.h: Likewise. + * i386/pc/real_tss.c: Likewise. + * i386/pc/real_tss.h: Likewise. + * i386/pc/real_tss_def.S: Likewise. + * i386/pc/rv86/config.h: Likewise. + * i386/pc/rv86/gdt_sels.h: Likewise. + * i386/pc/rv86/idt_irq_init.c: Likewise. + * i386/pc/rv86/rv86_real_int.c: Likewise. + * i386/pc/rv86/rv86_real_int_asm.S: Likewise. + * i386/pc/rv86/rv86_reflect_irq.S: Likewise. + * i386/pc/rv86/rv86_trap_handler.S: Likewise. + * i386/pc/rv86/trap_handler.S: Likewise. + + * i386/imps/Makefile.in: Remove file. + * i386/imps/apic.h: Likewise. + * i386/imps/cpu_number.h: Likewise. + * i386/imps/cpus.h: Likewise. + * i386/imps/imps.c: Likewise. + * i386/imps/impsasm.sym: Likewise. + + * i386/dos/dos_buf.c: Remove file. + * i386/dos/dos_check_err.c: Likewise. + * i386/dos/dos_close.c: Likewise. + * i386/dos/dos_fstat.c: Likewise. + * i386/dos/dos_gettimeofday.c: Likewise. + * i386/dos/dos_io.h: Likewise. + * i386/dos/dos_open.c: Likewise. + * i386/dos/dos_read.c: Likewise. + * i386/dos/dos_rename.c: Likewise. + * i386/dos/dos_seek.c: Likewise. + * i386/dos/dos_tcgetattr.c: Likewise. + * i386/dos/dos_unlink.c: Likewise. + * i386/dos/dos_write.c: Likewise. + * i386/dos/i16/gdt.h: Likewise. + * i386/dos/i16/gdt_sels.h: Likewise. + * i386/dos/i16/i16_crt0.S: Likewise. + * i386/dos/i16/i16_crt0.h: Likewise. + * i386/dos/i16/i16_dos.h: Likewise. + * i386/dos/i16/i16_dos_mem.c: Likewise. + * i386/dos/i16/i16_exit.c: Likewise. + * i386/dos/i16/i16_main.c: Likewise. + * i386/dos/i16/i16_putchar.c: Likewise. + * i386/dos/i16/i16_vcpi.c: Likewise. + * i386/dos/i16/i16_xms.c: Likewise. + * i386/dos/i16/idt.h: Likewise. + * i386/dos/i16/phys_mem_sources.h: Likewise. + * i386/dos/putchar.c: Likewise. + + * chips/atm.c: Remove file. + * chips/atmreg.h: Likewise. + * chips/audio.c: Likewise. + * chips/audio_config.h: Likewise. + * chips/audio_defs.h: Likewise. + * chips/bt431.c: Likewise. + * chips/bt431.h: Likewise. + * chips/bt455.c: Likewise. + * chips/bt455.h: Likewise. + * chips/bt459.c: Likewise. + * chips/bt459.h: Likewise. + * chips/bt478.c: Likewise. + * chips/bt478.h: Likewise. + * chips/build_font.c: Likewise. + * chips/cfb_hdw.c: Likewise. + * chips/cfb_misc.c: Likewise. + * chips/dc503.c: Likewise. + * chips/dc503.h: Likewise. + * chips/dtop.h: Likewise. + * chips/dtop_handlers.c: Likewise. + * chips/dtop_hdw.c: Likewise. + * chips/dz_7085.h: Likewise. + * chips/dz_defs.h: Likewise. + * chips/dz_hdw.c: Likewise. + * chips/eccreg.h: Likewise. + * chips/fb_hdw.c: Likewise. + * chips/fb_misc.c: Likewise. + * chips/fdc_82077.h: Likewise. + * chips/fdc_82077_hdw.c: Likewise. + * chips/frc.c: Likewise. + * chips/ims332.c: Likewise. + * chips/ims332.h: Likewise. + * chips/isdn_79c30.h: Likewise. + * chips/isdn_79c30_hdw.c: Likewise. + * chips/kernel_font.c: Likewise. + * chips/kernel_font.data: Likewise. + * chips/lance.c: Likewise. + * chips/lance.h: Likewise. + * chips/lance_mapped.c: Likewise. + * chips/lk201.c: Likewise. + * chips/lk201.h: Likewise. + * chips/mc_clock.c: Likewise. + * chips/mc_clock.h: Likewise. + * chips/mouse.c: Likewise. + * chips/nc.c: Likewise. + * chips/nc.h: Likewise. + * chips/nw.h: Likewise. + * chips/nw_mk.c: Likewise. + * chips/nw_mk.h: Likewise. + * chips/pm_defs.h: Likewise. + * chips/pm_hdw.c: Likewise. + * chips/pm_misc.c: Likewise. + * chips/scc_8530.h: Likewise. + * chips/scc_8530_hdw.c: Likewise. + * chips/screen.c: Likewise. + * chips/screen.h: Likewise. + * chips/screen_defs.h: Likewise. + * chips/screen_switch.c: Likewise. + * chips/screen_switch.h: Likewise. + * chips/serial_console.c: Likewise. + * chips/serial_defs.h: Likewise. + * chips/sfb_hdw.c: Likewise. + * chips/sfb_misc.c: Likewise. + * chips/spans.c: Likewise. + * chips/spans.h: Likewise. + * chips/tca100.c: Likewise. + * chips/tca100.h: Likewise. + * chips/tca100_if.c: Likewise. + * chips/tca100_if.h: Likewise. + * chips/vs42x_rb.h: Likewise. + * chips/xcfb_hdw.c: Likewise. + * chips/xcfb_misc.c: Likewise. + * chips/xcfb_monitor.h: Likewise. + * Makefile.in (chips-files): Only contain `busses.c' and `busses.h'. + * kern/syscall_sw.c: Don't include anymore. + + * i386/i386at/asm_startup.h: Remove file. + * i386/i386at/phys_mem_grab_page.c: Likewise. + * i386/Makefile.in (i386at-files): Remove `phys_mem_grab_page.c'. + + * i386/bogus/evc.h: Remove file. + * i386/i386at/kd.c: Don't include anymore and adapt all users + of NEVC as if it were always defined to `0'. + (evc1init): Remove definition and adapt all users as if it were always + defined to `FALSE'. + + * i386/bogus/nscsi.h: Remove file. + * i386/i386at/model_dep.c: Don't include anymore and adapt + all users of NSCSI as if it were always defined to `0'. + (use_all_mem): Don't define anymore and adapt all users as if it were + always defined to `1'. + (NBBY, NBPW, DMA_MAX): Remove macros. + (alloc_dma_mem): Remove function. + + * i386/bogus/asc.h: Remove file. + * i386/bogus/aha.h: Likewise. + * i386/bogus/eaha.h: Likewise. + * i386/bogus/sbic.h: Likewise. + * i386/bogus/sci.h: Likewise. + * i386/bogus/sii.h: Likewise. + * i386/bogus/siop.h: Likewise. + * i386/i386at/eisa.h: Likewise. + * scsi/adapters/README: Likewise. + * scsi/adapters/scsi_33C93.h: Likewise. + * scsi/adapters/scsi_33C93_hdw.c: Likewise. + * scsi/adapters/scsi_5380.h: Likewise. + * scsi/adapters/scsi_5380_hdw.c: Likewise. + * scsi/adapters/scsi_53C700.h: Likewise. + * scsi/adapters/scsi_53C700_hdw.c: Likewise. + * scsi/adapters/scsi_53C94.h: Likewise. + * scsi/adapters/scsi_53C94_hdw.c: Likewise. + * scsi/adapters/scsi_7061.h: Likewise. + * scsi/adapters/scsi_7061_hdw.c: Likewise. + * scsi/adapters/scsi_89352.h: Likewise. + * scsi/adapters/scsi_89352_hdw.c: Likewise. + * scsi/adapters/scsi_aha15.h: Likewise. + * scsi/adapters/scsi_aha15_hdw.c: Likewise. + * scsi/adapters/scsi_aha17_hdw.c: Likewise. + * scsi/adapters/scsi_dma.h: Likewise. + * scsi/adapters/scsi_user_dma.c: Likewise. + * scsi/adapters/scsi_user_dma.h: Likewise. + * scsi/compat_30.h: Likewise. + * scsi/disk_label.c: Likewise. + * scsi/mapped_scsi.c: Likewise. + * scsi/mapped_scsi.h: Likewise. + * scsi/pc_scsi_label.c: Likewise. + * scsi/rz.c: Likewise. + * scsi/rz.h: Likewise. + * scsi/rz_audio.c: Likewise. + * scsi/rz_cpu.c: Likewise. + * scsi/rz_disk.c: Likewise. + * scsi/rz_disk_bbr.c: Likewise. + * scsi/rz_host.c: Likewise. + * scsi/rz_labels.h: Likewise. + * scsi/rz_tape.c: Likewise. + * scsi/scsi.c: Likewise. + * scsi/scsi.h: Likewise. + * scsi/scsi2.h: Likewise. + * scsi/scsi_alldevs.c: Likewise. + * scsi/scsi_comm.c: Likewise. + * scsi/scsi_cpu.c: Likewise. + * scsi/scsi_defs.h: Likewise. + * scsi/scsi_disk.c: Likewise. + * scsi/scsi_endian.h: Likewise. + * scsi/scsi_jukebox.c: Likewise. + * scsi/scsi_optical.c: Likewise. + * scsi/scsi_printer.c: Likewise. + * scsi/scsi_rom.c: Likewise. + * scsi/scsi_scanner.c: Likewise. + * scsi/scsi_tape.c: Likewise. + * scsi/scsi_worm.c: Likewise. + * i386/i386at/autoconf.c: Don't include and anymore + and adapt all users of NAHA and NEAHA as if it were always defined to + `0'. + * i386/i386at/conf.c: Likewise. + * Makefile.in (scsi-files): Remove variable and all users of it. + + * i386/bogus/wt.h: Remove file. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NWT as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/hpp.h: Remove file. + * i386/bogus/ul.h: Likewise. + * i386/bogus/wd.h: Likewise. + * i386/i386at/gpl/if_hpp.c: Likewise. + * i386/i386at/gpl/if_ns.c: Likewise. + * i386/i386at/gpl/if_nsreg.h: Likewise. + * i386/i386at/gpl/if_ul.c: Likewise. + * i386/i386at/gpl/if_wd.c: Likewise. + * i386/i386at/autoconf.c: Don't include , and + anymore and adapt all users of NHPP, NUL and NWD as if they were always + defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/at3c501.h: Remove file. + * i386/i386at/if_3c501.c: Likewise. + * i386/i386at/if_3c501.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt + all users of NAT3C501 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/ns8390.h: Remove file. + * i386/i386at/ds8390.h: Likewise. + * i386/i386at/if_3c503.h: Likewise. + * i386/i386at/if_ns8390.c: Likewise. + * i386/i386at/if_ns8390.h: Likewise. + * i386/i386at/if_wd8003.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt + all users of NNS8390 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/ne.h: Remove file. + * i386/i386at/if_ne.c: Likewise. + * i386/i386at/if_nereg.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NNE as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/pc586.h: Remove file. + * i386/i386at/i82586.h: Likewise. + * i386/i386at/if_pc586.c: Likewise. + * i386/i386at/if_pc586.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NPC586 as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/fd.h: Remove file. + * i386/i386at/fd.c: Likewise. + * i386/i386at/fdreg.h: Likewise. + * i386/i386at/nfd.c: Likewise. + * i386/i386at/nfdreg.h: Likewise. + * i386/Makefile.in (i386at-files): Remove `fd.c'. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NFD as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * i386/bogus/hd.h: Remove file. + * i386/i386at/nhd.c: Likewise. + * i386/i386at/nhdreg.h: Likewise. + * i386/i386at/autoconf.c: Don't include anymore and adapt all + users of NHD as if it were always defined to `0'. + * i386/i386at/conf.c: Likewise. + + * DEVELOPMENT: New file. + +2006-02-05 Thomas Schwinge + + * Makerules.in: Don't set no_deps to true if MAKECMDGOALS is empty. + +2006-02-03 Thomas Schwinge + + * Makerules.in: Set no_deps to true if we don't need the dependency + files. + * i386/linux/Makefile.in: Do care about linux-flags if no_deps is true; + reverting the change from 2006-01-31. + + * Makefile.in: Include Makerules through top_builddir, so that it will + automatically be rebuilt if needed. + + * Makerules.in (CFLAGS): Added -fno-strict-aliasing. + * i386/linux/Makefile.in (linux-gen-flags): Likewise. + +2006-02-02 Sergio Lopez + + * linux/src/drivers/scsi/eata_pio.c (eata_pio_detect): Fix a + off-by-one error when probing. + * linux/src/drivers/scsi/eata_dma.c (eata_detect): Likewise. + * linux/dev/drivers/scsi/eata_dma.c (eata_detect): Likewise. + + * linux/src/drivers/net/apricot.c (apricot_probe): Increase eth_addr + size to 8 so we do not trash the stack when reading from the io ports. + +2006-02-02 Thomas Schwinge + + * Makerules.in: Move a comment ... + * Makefile.in: ... here. + +2006-02-01 Thomas Schwinge + + * linux/dev/drivers/block/genhd.c (add_bsd_partition): Only define if + both MACH and CONFIG_BSD_DISKLABEL are defined. + Reported by Matheus Morais . + +2006-01-31 Thomas Schwinge + + Cleanup of GNU Mach's build system. The system dependent parts are now + handled by the respective Makefile and no longer by the top-level one. + + * configure, i386/configure, i386/linux/configure, linux/configure: + Regenerated. + + * Makefile.in: Various cleanups. + (mach/machine, mach_machine): Targets removed. + (AWK, CC, CFLAGS, CPPFLAGS, DEFINES, INCLUDES, INSTALL, INSTALL_DATA) + (INSTALL_PROGRAM, LD, MIG, MIGFLAGS, NM): Variables moved into + Makerules.in. + Do not include $(sysdep)/Makefrag anymore. + (all, check, clean, distclean, mostlyclean, maintainer-clean, install) + (install-headers, install-kernel): Recurse into the system dependent + subdirectory. + (check): Add a basic test using mbchk. + (clean, distclean): Be more explicit in what to delete. + ($(systype)/%): New target. + (kernel.o): Incorporate the system dependent archive. + (installed-sysdep-headers-names, $(installed-sysdep-headers-names)): + Variable and target moved into the system dependent Makefile.in. + (install-headers, mkheaderdirs): Don't care for the system dependent + header files. + (%.symc, %.symc.o, %.h, %_user.c, %_interface.h, %_server.c): Targets + moved into Makerules.in. + Inclusion of dependency files: Likewise. + (%.migs_d, %.migu_d, %.migsh_d, %.miguh_d, make-deps, %.d): Likewise. + Include Makerules. + * Makerules.in: New file, mainly based on Makefile.in. + * configure.in: Do not substitute cross_compiling and not explicitly + substitute LDFLAGS. + Check for cpp, ranlib, ar and mbchk. + Care for the mach/machine symbolic link. + Add Makerules as a config file. + * i386/Makefile.in: Various cleanups. + Merge i386/Makefrag and the system dependent stuff from Makefile.in + into this file. + (all, check, install, install-headers, install-kernel): Recurse into + the system dependent subdirectory. + (sysdep.o): transformed to the new target sysdep.a. + (linux/linux.o): Target removed. + (clean, distclean): Be more explicit in what to delete. + (linux/%): New target. + (install-headers): Install the system dependent header files. + (mkheaderdirs): New target. + Include the top-level Makerules. + * i386/Makefrag: File removed. + * i386/Makerules.in: New file. + * i386/configure.in: Synchronize AC_INIT to the top-level definition. + Do not check for ld and make. + Add Makerules as a config file. + * i386/linux/Makefile.in: Various cleanups. + Replace linux-objs with objfiles. + (check, install, install-headers, install-kernel): New empty targets. + Don't care about linux-flags if no_deps is true. + Inclusion of dependency files removed and instead... + Include the top-level Makerules. + * i386/linux/Makerules.in: New file. + * i386/linux/configure.ac: Synchronize AC_INIT to the top-level + definition. + Do not check for gcc and ld. + Do not explicitly substitute LDFLAGS. + Add Makerules as a config file. + * linux/configure.in: Synchronize AC_INIT to the top-level definition. + Do not create directories using a dummy file. + * linux/dummy.in: File removed. + + * ddb/db_access.h: Include instead of + "vm_param.h". + * kern/bootstrap.c: Likewise. + * kern/thread.c: Likewise. + * vm/vm_kern.c: Likewise. + * vm/vm_object.c: Likewise. + * vm/vm_resident.c: Likewise. + +2006-01-26 Thomas Schwinge + + * config.guess: Updated from the canonical source. + * config.sub: Likewise. + +2006-01-26 Jeroen Dekkers + + * i386/i386/locore.S (trap_push_segs): Switch fs and gs to kernel + data segment too. + (syscall_entry_2): Likewise. + * i386/i386/user_ldt.c (i386_set_ldt): Always copy the master LDT + when there is no old user LDT. + +2006-01-26 Samuel Thibault + + * linux/dev/arch/i386/kernel/irq.c (linux_intr): Disable interrupts + if the driver requested it through request_irq(). + + * linux/dev/drivers/block/ide.c (read_intr): Set the IRQ handler before + issuing a request. + (write_intr): Likewise. + (multwrite_intr): Likewise. + +2006-01-26 Thomas Schwinge + + * i386/linux/Makefile.in: Automatically recreate the `Makefile'. + +2006-01-23 Thomas Schwinge + + * i386/linux/configure: Regenerated. + + * i386/linux/configure.ac: Only add a AC_DRIVER_ALIAS if it really is a + alias. + +2006-01-22 Thomas Schwinge + + * doc/mach.texi (Configuration): Document the recently added drivers. + * i386/README-Drivers: Likewise. + + * configure, i386/configure, i386/linux/configure, linux/configure, + i386/linux/device-drivers.h.in: Regenerated. + + * linux/src/drivers/net/ne2k-pci.c: Resolve conflicts. + +2006-01-22 Guillem Jover + + * i386/linux/configure.ac: Renamed winbond-840 driver to winbond_840. + Enable the starfire, intel_gige and natsemi network drivers. Remove + "CONFIG_" from cb_chim, starfire, sundance, winbond840, hamachi, + natsemi, myson803 and ns820 driver declarations. Replace INTER_GIGE + with INTEL_GIGE. + * linux/dev/drivers/net/Space.c: Add conditional probes for natsemi, + ns820, winbond840, hamachi, sundance, starfire, myson803 and intel-gige + drivers. + + * linux/src/include/asm-i386/cache.h: New file from linux 2.2.26. + * linux/dev/include/linux/malloc.h: Include . + + * linux/src/drivers/net/ns820.c (netsami_drv_id): Renamed to ... + (ns820_drv_id): ... this. Fix all callers. + * linux/src/drivers/net/intel-gige.c + (skel_netdev_probe): Renamed to ... + (igige_probe): ... this. + * linux/dev/drivers/net/eepro100.c: Remove obsoleted file. + * linux/src/drivers/net/eepro100.c (pci_id_tbl): Add PCI ID's from + linux-2.6.14-rc4. + +2006-01-22 Alfred M. Szmidt + + * i386/linux/configure.ac: Added `pci-scan.o' to the network driver + class. (ns820, myson803, sundance, winbond-840, hamachi): New drivers. + * i386/linux/Makefile.in (linux-net-files): Added `cb_shim.c', + `hamachi.c', `intel-gige.c', `myson803.c', `natsemi.c', `ns820.c', + `starfire.c', `sundance.c', `winbond-840.c' and `pci-scan.c'. + + * linux/dev/include/linux/modversions.h: New file. + + * linux/src/drivers/net/cb_shim.c, linux/src/drivers/net/hamachi.c, + linux/src/drivers/net/intel-gige.c, linux/src/drivers/net/myson803.c, + linux/src/drivers/net/natsemi.c, linux/src/drivers/net/ns820.c, + linux/src/drivers/net/starfire.c, linux/src/drivers/net/sundance.c, + linux/src/drivers/net/winbond-840.c, + linux/src/drivers/net/kern_compat.h, linux/src/drivers/net/pci-scan.c, + linux/src/drivers/net/pci-scan.h: New files from netdrivers 3.5 package + (http://www.scyld.com/network). + + * linux/src/drivers/net/3c59x.c, linux/src/drivers/net/eepro100.c, + linux/src/drivers/net/epic100.c, linux/src/drivers/net/ne2k-pci.c, + linux/src/drivers/net/rtl8139.c, linux/src/drivers/net/tulip.c, + linux/src/drivers/net/via-rhine.c, linux/src/drivers/net/yellowfin.c: + Updated files from netdrivers 3.5 (http://www.scyld.com/network). + +2006-01-22 Thomas Schwinge + + * linux/src/drivers/net/ne2k-pci.c (ne_block_input, ne_block_output): + Fix previous patch. + +2005-07-12 Guillem Jover + + * configure: Regenerated. + * i386/configure: Regenerated. + + * Drivers.macros (AC_DRIVER_CLASS): Use AH_TEMPLATE. + (AC_DRIVER): Set the value for the AC_DEFINE and AC_DEFINE_UNQUOTED + to 1. + + * aclocal.m4 (AC_PROG_CC_LOCAL, AC_PROG_CC_WORKS_LOCAL): Removed. + * version.m4: New file. + * Makefile.in: Use PACKAGE_VERSION, not VERSION. + * doc/Makefile.in: Likewise. + * version.c.in: Likewise. Use PACKAGE_NAME, not "GNUmach". + * i386/linux/Makefile.in (configure): Change its source to + configure.ac. + + * aclocal.m4: Add missing quotations. + * Drivers.macros: Likewise. + * configure.in: Likewise. Include version.m4 and use PACKAGE and + VERSION m4 macros from it. + * i386/configure.in: Likewise. + (AC_INIT): Use new syntax and move source check to AC_CONFIG_SRCDIR. + * i386/linux/configure.ac: Likewise. Use m4_sinclude, not sinclude. + * linux/configure.in: Likewise. + + * i386/configure.in: Update AC_DEFINE to the new three argument form. + * i386/linux/configure.ac: Move AC_DEFINE inside AC_ARG_ENABLE. + + * configure.in: Use AC_CONFIG_LINKS, not AC_LINK_FILES. + * linux/configure.in: Likewise. + + * i386/configure.in: Call AC_CONFIG_FILES and use the new form of + AC_OUTPUT. + * i386/linux/configure.ac: Likewise. + * linux/configure.in: Likewise + + * configure.in: Use AS_HELP_STRING in AC_ARG_ENABLE help strings. + * Drivers.macros: Likewise. + * i386/configure.in: Likewise. + * i386/linux/configure.ac: Likewise. + +2005-07-12 Neal H. Walfield + + * configure.in: Update to use autoconf 2.57. + Do not error out if host_os is not GNU. + Update AC_DEFINEs to the required three argument form. + Don't call AC_CHECK_TOOL(CC, gcc) and AC_PROG_CC_LOCAL, just use + AC_PROG_CC. + AC_SUBST(LDFLAGS). + Refactor AC_CONFIG_SUBDIRS to not do variable substitution. + Call AC_CONFIG_FILES and use the new form of AC_OUTPUT. + * i386/configure.in: Require autoconf 2.57. + * linux/configure.in: Likewise. + * i386/linux/Drivers.in: Move from here... + * i386/linux/configure.ac: ... to here to conform to the + environment autoreconf expects. + (hurd_host_CPU): New macro. + Call AC_PROG_CC, not AC_PROG_CC_LOCAL. + AC_SUBST(LD_FLAGS). + (flashpoint): Update AC_DEFINE to the new three argument form. + * Drivers.macros (AC_DRIVER): Update AC_DEFINE to the new three + argument form. + +2005-05-24 Alfred M. Szmidt + + * i386/include/mach/i386/asm.h (END): New macro. + + * i386/include/mach/i386/syscall_sw.h (kernel_trap): Call END. + +2005-05-28 Alfred M. Szmidt + + * linux/src/drivers/scsi/u14-34f.c (ihdlr): Silence gcc 4.x + errors. + * linux/src/drivers/scsi/qlogicisp.h: Likewise. + * linux/src/drivers/scsi/advansys.c: Likewise. + (advansys_reset, advansys_interrupt, asc_scsi_done_list, + (asc_enqueue, asc_dequeue, asc_dequeue_list, asc_rmqueue, + (asc_isqueued): Likewise. + * linux/src/drivers/scsi/53c78xx.c (NCR53c7xx_queue_command): + Likewise. + * linux/src/drivers/net/ne2k-pci.c (ne_block_input) + (ne_block_output): Likewise. + * linux/src/drivers/net/hp100.c (__initfunc): Likewise. + * linux/src/drivers/net/3c507.c (el16_interrupt): Likewise. + * linux/dev/drivers/scsi/seagate.c (seagate_st0x_queue_command): + Likewise. + +2005-05-26 Alfred M. Szmidt + + * device/cons.h (cn_tab) [KERNEL]: Removed extern declaration. + + * linux/dev/include/linux/fs.h (super_blocks): Declare as an + pointer. + +2005-02-10 Guillem Jover + + * linux/dev/glue/block.c (rdwr_partial): Remove leftover assert. + +2005-01-22 Guillem Jover + + * linux/dev/include/linux/skbuff.h (skb_put, skb_push): Fix errors + for deprecated use of labels at end of compound statements. + * i386/i386/fpe_linkage.c (enable_fpe): Declare prototype. + +2005-01-22 Guillem Jover + + * linux/src/drivers/scsi/qlogicisp_asm.c: Remove file with binary + only firmware. + * linux/src/drivers/scsi/qlogicisp.c: Do not include "qlogicisp_asm.c". + (RELOAD_FIRMWARE): Set to 0. + (risc_code_addr01): New variable from qlogicisp_asm.c. + * linux/Files: Remove linux/src/drivers/scsi/qlogicisp_asm.c. + +2004-09-08 Neal H. Walfield + + * linux/dev/kernel/printk.c: Include . + (printk): Use vsnprintf, not linux_vsprintf to avoid buffer + overruns. + + * kern/printf.c (struct vsnprintf_cookie): New structure. + (snputc): New function. + (vsnprintf): Likewise. + +2004-11-22 Guillem Jover + + * bogus/mach_assert.h: Change #ifdef DEBUG to #ifndef NDEBUG + for assert et al. + * kern/assert.h: Likewise. + * kern/debug.h: Likewise. + * util/debug.h: Likewise. + + * i386/i386/debug.h: Move dump_ss definition out of [DEBUG]. + * linux/dev/glue/block.c (rdwr_full): Remove invalid assert. + +2004-09-07 Neal H. Walfield + + * linux/dev/glue/block.c (__brelse): Unconditionally kfree BH. + (getblk): Unconditionally kalloc BH. + + * kern/kalloc.c [!NDEBUG] (kalloc_init_called): New static + variable. + (kalloc_init): Assert that kalloc_init_called is zero. + [! NDEBUG] Set kalloc_init_called to 1 on success. + (kalloc): Assert that kalloc_init_called is non-zero. + (kget): Likewise. + (kfree): Likewise. + +2004-11-22 Guillem Jover + + * i386/i386/locore.S (discover_x86_cpu_type): Enable function. + Enable ID flag for Cyrix CPU. Use %ebp to save the stack pointer. + Restore EFLAGS just after its last usage. + * i386/i386at/model_dep.c (c_boot_entry): Enable use of + discover_x86_cpu_type. Remove hardcoded cpu_type assignment. + * i386/include/mach/i386/eflags.h + (EFL_VI, EFL_VIP): New bits. + (EFL_AC, EFL_ID): Bits finally added. + +2004-10-26 Guillem Jover + + * i386/i386/fpe.b: Remove binary without source. + * i386/i386/fpe.b_elf: Likewise. + * i386/i386/fpe_linkage.c: Disable the code if [! FPE]. + * i386/bogus/fpe.h: Add comment about not having an fpe implementation. + * i386/Makefrag (objfiles): Do not add fpe.o. + Remove targets to generate fpe.o. + +2004-02-29 Marcus Brinkmann + + * NEWS: Add things that changed so far since 1.3. + +2004-02-02 Marco Gerards + + * i386/i386at/kd.c (kdinit): Initialize the input buffer. + + * i386/i386at/kd.h (KDSETLEDS): New macro. + * i386/i386at/kd_event.c (kbdsetstat): Handle KDSETLEDS here to + set the keyboard LEDs state. + +2004-01-19 Marco Gerards + + * linux/dev/glue/block.c (init_partition): Don't check for BSD + partitions if the DOS partition is too small. + +2004-01-16 Marco Gerards + + * linux/dev/glue/block.c (device_get_status): Correctly calculate + the number of blocks. + +2004-01-15 Alfred M. Szmidt + + * linux/dev/include/asm-i386/string.h (memscan): Don't use + multi-line string literals for asm(). + * linux/dev/include/asm-i386/segment.h (__generic_memcpy_tofs) + (__generic_memcpy_fromfs): Likewise. + * linux/src/include/asm-i386/floppy.h (floppy_hardint): Likewise. + * i386/i386/proc_reg.h (flush_instr_queue): Likewise. + * i386/i386/gdt.c (gdt_init): Likewise. + + * linux/src/drivers/scsi/aic7xxx.c: Updated from Linux 2.0.39 + * linux/src/drivers/scsi/aic7xxx.h: Likewise. + * linux/src/drivers/scsi/aic7xxx_proc.c: Likewise. + * linux/src/drivers/scsi/scsicam.c: Likewise. + * linux/src/include/linux/pci.h: Likewise. + + * linux/src/drivers/scsi/53c7,8xx.h (patch_dsa_32): Don't use + token paste operator (##). + + * Makefile.in (kernel-undef): Match new output format from + nm (binutils) 2.14.x. + 2002-05-27 Roland McGrath * Version 1.3 released. @@ -240,9 +11334,9 @@ * 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 . + * linux/dev/drivers/net/eepro100.c: New file, modified version from + the above to glue it in gnumach. + Submitted by Kapil H. Paranjape . 2001-08-17 Roland McGrath @@ -622,11 +11716,11 @@ 2000-07-04 Marcus Brinkmann * debian/changelog: Add entry for new Debian upload. - * linux/dev/drivers/scsi/seagate.c (WRITE_CONTROL, WRITE_DATA): - Added from linux 2.2.15. - (__asm__ constructs): Replace with equivalent C code from linux 2.2.15 - to support gcc-2.95. - * linux/src/drivers/scsi/in2000.h: Update asm code to linux 2.2.15. + * linux/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. @@ -2098,7 +13192,7 @@ Wed Apr 16 16:55:36 1997 Marcus G. Dani * 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, + 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 @@ -2189,7 +13283,7 @@ Mon Mar 24 16:23:21 1997 Thomas Bushnel Fri Mar 21 15:50:09 1997 Thomas Bushnell, n/BSG * i386/i386at/gpl/linux/scsi/aha1740.c (aha1740_test_port): Try - and turn on PORTADDR_ENH before checking it. + and turn on PORTADDR_ENH before checking it. * vm/vm_object.c (vm_object_cached_max): Increase to 200. @@ -2270,8 +13364,8 @@ Mon Mar 10 15:04:47 1997 Thomas Bushnel unless CONFIG_INET. * device/ds_routines.c (io_done_thread_continue): [i386] - Conditionalize free_skbuffs also on CONFIG_INET. Include - . + Conditionalize free_skbuffs also on CONFIG_INET. Include + . * i386/Drivers.in, i386/device-drivers.h.in, i386/driverlist.in: New files.