| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
They were meant to be temporary, but that got longer, and people seem to
expect them to be there now.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux drivers are only limited by the DMA32 constraint, not by the directmap
constraint. But our segment order is currently set to
DMA < DMA32 < DIRECTMAP < HIGHMEM (since that is what we will have in 64bit
mode). In PAE mode this makes DMA32 limited to 800MiB. Ideally we'd have
DMA < DIRECTMAP < DMA32 < HIGHMEM but that'd make the memory code more
complex, and we are to remove the Linux drivers anyway. In the
meanwhile, In non-PAE mode we can just use HIGHMEM which is already
limited to 4GiB, that will do the work.
* linux/dev/glue/block.c (VM_PAGE_LINUX): New macro.
(device_read): Use VM_PAGE_LINUX instead of VM_PAGE_DMA32.
|
|
|
|
| |
* linux/dev/glue/block.c (check_rw_block): Return 0 on no error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vm_page_grab was systematically using the VM_PAGE_SEL_DIRECTMAP selector
to play safe with existing code.
This adds a flags parameter to let callers of vm_page_grab specify their
constraints.
Linux drivers need 32bit dmas, Xen drivers use kvtophys to clear some
data. Callers of kmem_pagealloc_physmem and vm_page_grab_phys_addr also use
kvtophys. Otherwise allocations can go to highmem.
This fixes the allocation jam in the directmap segment.
* vm/vm_page.h (VM_PAGE_DMA, VM_PAGE_DMA32, VM_PAGE_DIRECTMAP,
VM_PAGE_HIGHMEM): New macros.
(vm_page_grab): Add flags parameter.
* vm/vm_resident.c (vm_page_grab): Choose allocation selector according
to flags parameter.
(vm_page_convert, vm_page_alloc): Pass VM_PAGE_HIGHMEM to vm_page_grab.
(vm_page_grab_phys_addr): Pass VM_PAGE_DIRECTMAP to vm_page_grab.
* vm/vm_fault.c (vm_fault_page): Pass VM_PAGE_HIGHMEM to vm_page_grab.
* vm/vm_map.c (vm_map_copy_steal_pages): Pass VM_PAGE_HIGHMEM to vm_page_grab.
* kern/slab.c (kmem_pagealloc_physmem): Pass VM_PAGE_DIRECTMAP to vm_page_grab.
* i386/intel/pmap.c (pmap_page_table_page_alloc): Pass VM_PAGE_DIRECTMAP to
vm_page_grab.
* xen/block.c (device_read): Pass VM_PAGE_DIRECTMAP to vm_page_grab.
* linux/dev/glue/block.c (alloc_buffer): Pass VM_PAGE_DMA32 to vm_page_grab.
|
|
|
|
|
|
|
|
|
|
| |
* linux/dev/drivers/block/ahci.c (ahci_do_port_request): Reject sectors
beyond LBA48 or LBA28.
* linux/dev/glue/block.c (check_rw_block): New function.
(rdwr_partial, rdwr_full): Use check_rw_block to reject block number
overflows.
* linux/src/drivers/block/ide.c (do_rw_disk): Reject sectors beyond
LBA28 or CHS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
And simplify prtnull vs intnull vs linux_bad_intr.
* i386/i386/ipl.h (intpri): Remove declaration
* i386/i386/pic.c (prtnull_count): Remove variable.
(prtnull): Remove function.
* i386/i386/pic.h (prtnull): Remove declaration.
* i386/i386at/autoconf.c (take_dev_irq, take_ctlr_irq): Use ivect instead of
intpri to determine irq availability. Do not set intpri.
* i386/i386at/pic_isa.c (ivect): Replace prtnull with intnull.
(intpri): Remove array.
* linux/dev/arch/i386/kernel/irq.c (linux_intr_pri): Remove variable.
(linux_bad_intr): Remove function.
(setup_x86_irq): Do not check intpri coherency. Do not set intpri. Set
default ivect to intnull instead of linux_bad_intr.
(probe_irq_on): Check ivect against intnull instead of linux_bad_intr.
Do not set intpri.
(probe_irq_off): Likewise.
(reserve_mach_irqs): Do not check against prtnull.
(old_clock_pri): Remove variable.
(init_IRQ): Do not set intpri. Do not set ivect to linux_bad_intr.
(restore_IRQ): Do not set ivect.
* i386/i386/pit.c (clkstart): Do not set intpri.
* i386/i386at/kd_mouse.c (kd_mouse_open, kd_mouse_close): Likewise.
* linux/dev/drivers/block/genhd.c (device_setup): Do not set linux_intr_pri.
* linux/dev/glue/block.c (init_partition, device_open): Likewise.
* linux/dev/glue/net.c (device_open): Likewise.
* linux/dev/glue/glue.h (linux_intr_pri, linux_bad_intr): Remove
declarations.
|
|
|
|
|
| |
* linux/dev/glue/block.c (rdwr_full): Set BH_Bounce if the physical
address of the user data is not in directmap.
|
|
|
|
|
|
|
|
|
| |
This happens if passed count is 0.
Reported by Richard Braun.
* linux/dev/glue/block.c (device_write): Set copy variable before
vm_map_copy_discard() is called.
|
|
|
|
|
|
|
|
|
|
| |
The Linux block layer glue code needs to use page nodes with the
appropriate interface since their redefinition as struct list.
* linux/dev/glue/block.c: Include <kern/list.h>.
(struct temp_data): Define member `pages' as a struct list.
(alloc_buffer): Update to use list_xxx functions.
(free_buffer, INIT_DATA, device_open, device_read): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of a "page considered external", which apparently takes into
account whether a page is dirty or not, redefine this property to
reliably mean "is in an external object".
This commit mostly deals with the impact of this change on the page
allocation interface.
* i386/intel/pmap.c (pmap_page_table_page_alloc): Update call to
vm_page_grab.
* kern/slab.c (kmem_pagealloc_physmem): Use vm_page_grab instead of
vm_page_grab_contig.
(kmem_pagefree_physmem): Use vm_page_release instead of
vm_page_free_contig.
* linux/dev/glue/block.c (alloc_buffer, device_read): Update call
to vm_page_grab.
* vm/vm_fault.c (vm_fault_page): Update calls to vm_page_grab and
vm_page_convert.
* vm/vm_map.c (vm_map_copy_steal_pages): Update call to vm_page_grab.
* vm/vm_page.h (struct vm_page): Remove `extcounted' member.
(vm_page_external_limit, vm_page_external_count): Remove extern
declarations.
(vm_page_convert, vm_page_grab): Update declarations.
(vm_page_release, vm_page_grab_phys_addr): New function declarations.
* vm/vm_pageout.c (VM_PAGE_EXTERNAL_LIMIT): Remove macro.
(VM_PAGE_EXTERNAL_TARGET): Likewise.
(vm_page_external_target): Remove variable.
(vm_pageout_scan): Remove specific handling of external pages.
(vm_pageout): Don't set vm_page_external_limit and
vm_page_external_target.
* vm/vm_resident.c (vm_page_external_limit): Remove variable.
(vm_page_insert, vm_page_replace, vm_page_remove): Update external
page tracking.
(vm_page_convert): RemoveĀ `external' parameter.
(vm_page_grab): Likewise. Remove specific handling of external pages.
(vm_page_grab_phys_addr): Update call to vm_page_grab.
(vm_page_release): Remove `external' parameter and remove specific
handling of external pages.
(vm_page_wait): Remove specific handling of external pages.
(vm_page_alloc): Update call to vm_page_grab.
(vm_page_free): Update call to vm_page_release.
* xen/block.c (device_read): Update call to vm_page_grab.
* xen/net.c (device_write): Likewise.
|
|
|
|
|
|
|
| |
* i386/Makefrag.am: Remove disk.h.
* i386/i386at/disk.h: Remove unnused definitions.
* i386/include/mach/i386/disk.h: Remove.
* linux/dev/glue/block.c (device_get_status): Remove V_GETPARMS case.
|
|
|
|
|
|
|
|
| |
* linux/dev/glue/block.c (out): Cast to device_t.
* linux/dev/init/main.c (alloc_contig_mem): Initialize addr and cast return value to void *.
* i386/i386/phys.c (pmap_copy_page): Initialize src_map.
* i386/intel/pmap.c: Include i386at/model_dep.h.
* kern/mach_clock.c (mapable_time_init): Cast to void *.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* linux/dev/glue/block.c (device_set_status): Fix prototype.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
* 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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* i386/i386/vm_param.h [!MACH_XEN]: Do not include <xen/public/xen.h>.
* i386/i386at/model_dep.c (init_alloc_aligned): Use phystokv to compare physical
memory addresses with kernel start, end, and symbol table.
* i386/intel/pmap.c (pmap_enter): Use kvtophys to convert ptp pointer to pte
entry.
* linux/dev/init/main.c (alloc_contig_mem, linux_init): Use phystokv to convert
allocated pages to virtual pointer.
* linux/src/include/asm-i386/io.h: Include <machine/vm_param.h>.
(virt_to_phys): Call _kvtophys.
(phys_to_virt): Call phystokv.
* linux/src/include/linux/compatmac.h: Include <asm/io.h>.
(ioremap): Use phys_to_virt to convert physical address to virtual pointer.
(my_iounmap): Likewise.
* linux/dev/include/asm-i386/page.h: Include <mach/vm_param.h>.
(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Remove macros.
* linux/src/drivers/scsi/ncr53c8xx.c (vm_size_t): Remove type.
* linux/dev/glue/net.c: Include <machine/vm_param.h>
(device_write): Call phystokv to convert from physical page address to
virtual pointer.
* linux/dev/glue/block.c (alloc_buffer, free_buffer, rdwr_full): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* device/dev_pager.c: Remove #include <kern/kalloc.h>.
* i386/i386/io_perm.c: Add #include <kern/kalloc.h>.
* kern/bootstrap.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/pc_sample.c: Likewise.
* kern/processor.c: Likewise.
* kern/server_loop.ch: Likewise.
* kern/thread.c: Likewise.
* linux/dev/glue/block.c: Likewise.
* linux/dev/glue/net.c: Likewise.
* vm/vm_map.c: Likewise.
* xen/block.c: Likewise.
* xen/net.c: Likewise.
* xen/store.c: Likewise.
|
|
|
|
|
|
| |
* linux/dev/drivers/block/genhd.c (device_setup): Set linux_intr_pri to
SPL6.
* linux/dev/glue/block.c (init_partition, device_open): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* device/ds_routines.h (io_done_list): Add variable declaration.
(device_io_map): Keep variable declaration and move definition to...
* device/ds_routines.c: ... here.
* i386/i386/fpu.c: Include <i386/pic.h>
(curr_ipl): Remove declaration.
(fpintr): Add int unit parameter.
* linux/dev/glue/glue.h: New header.
* i386/i386/fpu.h (fpintr): Add function prototype.
* i386/i386/hardclock.c (clock_interrupt, linux_timer_intr): Remove prototypes.
[LINUX_DEV]: Include <linux/dev/glue/glue.h>
* i386/i386/ipl.h (curr_ipl): Add declaration.
* i386/i386/pic.h (curr_pic_mask, pic_mask, prtnull, intnull): Add
declarations.
* i386/i386at/kd.h (kdintr): Add declaration.
* i386/i386at/pic_isa.c: Include <i386/fpu.h> and <i386at/kd.h>
(intnull, fpintr, hardclock, kdintr, prtnull): Remove prototypes.
* i386/xen/xen.c: Include <kern/mach_clock.h>
(clock_interrupt): Remove prototype.
* linux/dev/arch/i386/kernel/irq.c: Include <linux/dev/glue/glue.h> and
<machine/machspl.h>
(linux_timer_intr, splhigh, spl0, curr_ipl, curr_pic_mask, pic_mask,
get_options): Remove declarations.
* linux/dev/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>
(issig, get_options): Remove declarations.
* linux/dev/drivers/block/genhd.c: Include <linux/dev/glue/glue.h>
(linux_intr_pri): Remove declaration.
* linux/dev/glue/block.c: Include <devices/ds_routines.h> and
<linux/dev/glue/glue.h>.
(device_io_map, blksize_size): Remove declarations.
* linux/dev/glue/kmem.c: Include <kern/printf.h> and <linux/dev/glue/glue.h>
(alloc_contig_mem, printf): Remove declarations.
* linux/dev/glue/misc.c: Include <printf.h> and <linux/dev/glue/glue.h>
(vm_map_lookup_entry, printf): Remove prototypes.
* linux/dev/glue/net.c: Include <kern/printf.h>, <device/ds_routines.h> and
<linux/dev/glue/glue.h>.
(linux_intr_pri, io_done_list): Remove declarations.
* linux/dev/init/main.c: Include <machine/model_dep.h> and
<linux/dev/glue/glue.h>.
(phys_last_addr, alloc_contig_mem, free_contig_mem, init_IRQ,
restore_IRQ, startrtclock, linux_version_init, linux_kmem_init, pci_init,
linux_net_emulation_init, device_setup, linux_printk, linux_timer_intr, spl0,
splhigh, form_pic_mask, linux_bad_intr, prtnull, intnull, linux_sched_init,
pcmcia_init): Remove declarations.
* linux/dev/kernel/sched.c: Include <kern/printf.h>, <machine/machspl.h> and
<linux/dev/glue/glue.h>.
(alloc_contig_mem, free_contig_mem, splhigh, splx, linux_soft_intr, issig,
printf, linux_auto_config): Remove prototypes.
* linux/dev/kernel/softirq.c: Include <linux/dev/glue/glue.h>.
* linux/src/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>.
(get_options): Remove prototype.
* linux/src/init/main.c: Include <linux/dev/glue/glue.h>
(init_IRQ): Remove prototype.
|
|
|
|
|
| |
* linux/dev/glue/block.c (device_get_status): Cast `hg' to `unsigned long'
in ioctl call.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* linux/dev/glue/block.c (device_set_status): New function
(linux_block_emulation_ops): Set set_status field to device_set_status.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unconditionally use the device driver multiplexing. Suggested by
Gianluca Guida <glguida@gmail.com>.
* i386/i386at/dev_hdr.h: Merge into `device/dev_hdr.h' and remove.
* i386/i386at/device_emul.h: Rename to `device/device_emul.h'. Adapt
all users.
* i386/i386at/i386at_ds_routines.c: Merge into `device/ds_routines.c'
and remove.
* i386/linux/dev/include/linux_emul.h: Remove file.
* Makefrag.am (libkernel_a_SOURCES): Add `device/device_emul.h'.
* i386/Makefrag.am (libkernel_a_SOURCES): Remove
`i386/i386at/dev_hdr.h', `i386/i386at/device_emul.h' and
`i386/i386at/i386at_ds_routines.c'.
* i386/linux/Makefrag.am (liblinux_a_SOURCES): Remove
`i386/linux/dev/include/linux_emul.h'.
* dev/dev_hdr.h: Adapt all users of `i386' as if it were always
defined.
* device/dev_lookup.c: Likewise.
* device/ds_routines.c: Likewise.
* device/device_init.c (ds_init): Rename to `mach_device_init'.
* device/ds_routines.c (ds_init): Likewise.
(ds_trap_init): Rename to `mach_device_trap_init'.
(mach_device_trap_init): Make it `static'.
* linux/dev/glue/block.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h> and <i386at/disk.h>.
* linux/dev/glue/net.c: Don't include <linux_emul.h>, but instead
include <device/device_emul.h>.
* linux/pcmcia-cs/glue/ds.c: Likewise.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* linux/dev/glue/block.c (free_buffer): Fix
vm_page_lock_queues/vm_page_unlock_queues pair.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[task #5956 --- ``Automake'ify GNU Mach's code base'']
* kern/bootstrap.c: Don't include `bootstrap_symbols.h'.
* ddb/db_command.c: Don't include `cpus.h'.
* ddb/db_mp.c: Likewise.
* i386/i386/ast_check.c: Likewise.
* i386/i386/cswitch.S: Likewise.
* i386/i386/db_interface.c: Likewise.
* i386/i386/fpu.c: Likewise.
* i386/i386/fpu.h: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/mp_desc.c: Likewise.
* i386/i386/mp_desc.h: Likewise.
* i386/i386/pcb.c: Likewise.
* i386/i386/trap.c: Likewise.
* i386/intel/pmap.c: Likewise.
* include/mach/machine.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* kern/ast.c: Likewise.
* kern/ast.h: Likewise.
* kern/cpu_number.h: Likewise.
* kern/debug.c: Likewise.
* kern/eventcount.c: Likewise.
* kern/host.c: Likewise.
* kern/ipc_sched.c: Likewise.
* kern/lock.c: Likewise.
* kern/lock.h: Likewise.
* kern/lock_mon.c: Likewise.
* kern/mach_clock.c: Likewise.
* kern/mach_factor.c: Likewise.
* kern/machine.c: Likewise.
* kern/priority.c: Likewise.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.c: Likewise.
* kern/timer.c: Likewise.
* kern/timer.h: Likewise.
* vm/vm_resident.c: Likewise.
* kern/sched_prim.c: Don't include `fast_tas.h'.
* kern/task.c: Likewise.
* kern/task.h: Likewise.
* kern/sched_prim.c: Don't include `hw_footprint.h'.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* kern/counters.c: Don't include `mach_counters.h'.
* kern/counters.h: Likewise.
* ddb/db_ext_symtab.c: Don't include `mach_debug.h'.
* i386/i386/pcb.c: Likewise.
* kern/ipc_kobject.c: Likewise.
* kern/thread.c: Likewise.
* kern/zalloc.c: Likewise.
* kern/ast.c: Don't include `mach_fixpri.h'.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/syscall_subr.c: Likewise.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* kern/host.c: Don't include `mach_host.h'.
* kern/ipc_sched.c: Likewise.
* kern/machine.c: Likewise.
* kern/processor.c: Likewise.
* kern/processor.h: Likewise.
* kern/sched_prim.c: Likewise.
* kern/startup.c: Likewise.
* kern/task.c: Likewise.
* kern/thread.c: Likewise.
* kern/thread.h: Likewise.
* include/mach/mach.defs: Don't include `mach_ipc_compat.h'.
* include/mach/mach_param.h: Likewise.
* include/mach/mach_traps.h: Likewise.
* include/mach/message.h: Likewise.
* include/mach/mig_errors.h: Likewise.
* include/mach/notify.h: Likewise.
* include/mach/port.h: Likewise.
* include/mach/std_types.defs: Likewise.
* include/mach/task_special_ports.h: Likewise.
* include/mach/thread_special_ports.h: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_notify.c: Likewise.
* ipc/ipc_notify.h: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_object.h: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_port.h: Likewise.
* ipc/ipc_right.c: Likewise.
* ipc/ipc_right.h: Likewise.
* ipc/ipc_space.c: Likewise.
* ipc/ipc_space.h: Likewise.
* ipc/mach_debug.c: Likewise.
* ipc/mach_msg.c: Likewise.
* ipc/mach_msg.h: Likewise.
* ipc/mach_port.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/syscall_sw.c: Likewise.
* kern/thread.h: Likewise.
* include/mach_debug/mach_debug.defs: Don't include `mach_ipc_debug.h'.
* ipc/ipc_hash.c: Likewise.
* ipc/ipc_hash.h: Likewise.
* ipc/ipc_marequest.c: Likewise.
* ipc/ipc_marequest.h: Likewise.
* kern/ipc_kobject.c: Don't include `mach_ipc_test.h'.
* ddb/db_access.c: Don't include `mach_kdb.h'.
* ddb/db_aout.c: Likewise.
* ddb/db_break.c: Likewise.
* ddb/db_command.c: Likewise.
* ddb/db_command.h: Likewise.
* ddb/db_cond.c: Likewise.
* ddb/db_examine.c: Likewise.
* ddb/db_expr.c: Likewise.
* ddb/db_ext_symtab.c: Likewise.
* ddb/db_input.c: Likewise.
* ddb/db_lex.c: Likewise.
* ddb/db_macro.c: Likewise.
* ddb/db_mp.c: Likewise.
* ddb/db_output.c: Likewise.
* ddb/db_print.c: Likewise.
* ddb/db_run.c: Likewise.
* ddb/db_sym.c: Likewise.
* ddb/db_task_thread.c: Likewise.
* ddb/db_trap.c: Likewise.
* ddb/db_variables.c: Likewise.
* ddb/db_watch.c: Likewise.
* ddb/db_watch.h: Likewise.
* ddb/db_write_cmd.c: Likewise.
* i386/i386/db_disasm.c: Likewise.
* i386/i386/db_interface.c: Likewise.
* i386/i386/db_trace.c: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* include/mach_debug/mach_debug.defs: Likewise.
* ipc/ipc_kmsg.c: Likewise.
* ipc/ipc_object.c: Likewise.
* ipc/ipc_port.c: Likewise.
* ipc/ipc_pset.c: Likewise.
* kern/bootstrap.c: Likewise.
* kern/debug.c: Likewise.
* kern/exception.c: Likewise.
* kern/lock.c: Likewise.
* kern/xpr.c: Likewise.
* vm/vm_fault.c: Likewise.
* vm/vm_map.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_resident.c: Likewise.
* kern/lock.h: Don't include `mach_ldebug.h'.
* kern/lock_mon.c: Don't include `mach_lock_mon.h'.
* kern/ipc_kobject.c: Don't include `mach_machine_routines.h'.
* kern/lock_mon.c: Don't include `mach_mp_debug.h'.
* vm/memory_object.c: Don't include `mach_pagemap.h'.
* vm/vm_fault.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_object.h: Likewise.
* vm/vm_pageout.c: Likewise.
* i386/i386/trap.c: Don't include `mach_pcsample.h'.
* kern/mach4.srv: Likewise.
* kern/mach_clock.c: Likewise.
* kern/pc_sample.c: Likewise.
* kern/task.c: Likewise.
* kern/thread.c: Likewise.
* vm/vm_fault.c: Likewise.
* device/net_io.c: Don't include `mach_ttd.h'.
* i386/i386/kttd_interface.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/autoconf.c: Likewise.
* include/mach_debug/mach_debug.defs: Don't include `mach_vm_debug.h'.
* vm/vm_debug.c: Likewise.
* vm/vm_page.h: Likewise.
* vm/vm_resident.c: Likewise.
* kern/sched_prim.c: Don't include `power_save.h'.
* kern/sched.h: Don't include `simple_clock.h'.
* kern/sched_prim.c: Likewise.
* kern/thread.c: Likewise.
* kern/mach_clock.c: Don't include `stat_time.h'.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/locore.S: Likewise.
* kern/sched.h: Likewise.
* kern/timer.c: Likewise.
* kern/timer.h: Likewise.
* kern/startup.c: Don't include `xpr_debug.h'.
* kern/xpr.h: Likewise.
* i386/i386at/autoconf.c: Don't include `com.h'.
* i386/i386at/com.c: Likewise.
* i386/i386at/conf.c: Likewise.
* i386/i386at/cons_conf.c: Likewise.
* i386/i386/fpe_linkage.c: Don't include `fpe.h'.
* i386/i386/fpu.c: Likewise.
* i386/i386/fpu.h: Likewise.
* i386/i386/trap.c: Likewise.
* i386/i386at/autoconf.c: Don't include `lpr.h'.
* i386/i386at/conf.c: Likewise.
* i386/i386at/lpr.c: Likewise.
* i386/i386/cswitch.S: Don't include `platforms.h'.
* i386/i386/fpu.c: Likewise.
* i386/i386/gdt.c: Likewise.
* i386/i386/hardclock.c: Likewise.
* i386/i386/i386asm.sym: Likewise.
* i386/i386/io_emulate.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/pic.c: Likewise.
* i386/i386/pic.h: Likewise.
* i386/i386/pit.c: Likewise.
* i386/i386/pit.h: Likewise.
* i386/i386/seg.h: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386at/com.c: Don't include `rc.h'
* i386/i386at/cons_conf.c: Likewise.
* i386/i386at/pic_isa.c: Likewise.
* device/ds_routines.c: Don't include <i386/linux/device-drivers.h>.
* i386/i386at/i386at_ds_routines.c: Likewise.
* i386/linux/dev/include/linux/autoconf.h: Likewise.
* linux/dev/arch/i386/kernel/setup.c: Likewise.
* linux/dev/init/main.c: Likewise.
* linux/pcmcia-cs/glue/pcmcia_glue.h: Likewise.
* linux/pcmcia-cs/glue/wireless_glue.h: Likewise.
* kern/lock_mon.c: Don't include <time_stamp.h>.
* device/cons.c: Include <device/cons.h> instead of <cons.h>.
* i386/i386at/com.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/cons_conf.c: Likewise.
* i386/i386at/i386at_ds_routines.c: Include <device/device.server.h>
instead of "device_interface.h".
* device/chario.c: Include <device/device_reply.user.h> instead of
"device_reply.h".
* device/ds_routines.c: Likewise.
* linux/dev/glue/block.c: Likewise.
* linux/dev/glue/net.c: Likewise.
* linux/pcmcia-cs/glue/ds.c: Likewise.
* device/cons.c: Include <device/kmsg.h> instead of <kmsg.h>.
* device/kmsg.c: Likewise.
* i386/i386/cswitch.S: Include <i386/cpu_number.h> instead of
"cpu_number.h".
* i386/i386/locore.S: Likewise.
* i386/intel/pmap.c: Likewise.
* ipc/ipc_kmsg.h: Likewise.
* i386/i386/i386asm.sym: Include <i386/gdt.h> instead of "gdt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* i386/i386/cswitch.S: Include <i386/i386asm.h> instead of "i386asm.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/boothdr.S: Likewise.
* i386/i386at/interrupt.S: Likewise.
* i386/i386at/idt.h: Include <i386/idt-gen.h> instead of "idt-gen.h".
* i386/i386at/interrupt.S: Include <i386/ipl.h> instead of "ipl.h".
* i386/i386/i386asm.sym: Include <i386/ldt.h> instead of "ldt.h".
* i386/i386/locore.S: Likewise.
* i386/i386/i386asm.sym: Include <i386/mp_desc.h> instead of
"mp_desc.h".
* i386/i386at/interrupt.S: Include <i386/pic.h> instead of "pic.h".
* i386/i386/cswitch.S: Include <i386/proc_reg.h> instead of
"proc_reg.h".
* i386/i386/locore.S: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/i386/i386asm.sym: Include <i386/seg.h> instead of "seg.h".
* i386/i386/idt.c: Likewise.
* i386/i386/locore.S: Likewise.
* i386/i386/locore.S: Include <i386/trap.h> instead of "trap.h".
* i386/i386/i386asm.sym: Include <i386/tss.h> instead of "tss.h".
* i386/i386/i386asm.sym: Include <i386/vm_param.h> instead of
"vm_param.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/kd.c: Likewise.
* i386/i386at/model_dep.c: Likewise.
* i386/intel/pmap.c: Likewise.
* i386/i386/i386asm.sym: Include <i386at/idt.h> instead of "idt.h".
* i386/i386/idt.c: Likewise.
* i386/i386at/int_init.c: Likewise.
* ipc/ipc_target.c: Include <kern/sched_prim.h> instead of
"sched_prim.h".
* vm/memory_object.c: Include <vm/memory_object_default.user.h> instead
of "memory_object_default.h".
* vm/vm_object.c: Likewise.
* vm/vm_pageout.c: Likewise.
* vm/memory_object.c: Include <vm/memory_object_user.user.h> instead of
"memory_object_user.h".
* vm/vm_fault.c: Likewise.
* vm/vm_object.c: Likewise.
* vm/vm_pageout.c: Likewise.
|
|
|
|
| |
* linux/dev/glue/block.c (rdwr_partial): Remove leftover assert.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* linux/dev/glue/block.c (init_partition): Don't check for BSD
partitions if the DOS partition is too small.
|
|
|
|
|
| |
* linux/dev/glue/block.c (device_get_status): Correctly calculate
the number of blocks.
|
|
|
|
|
| |
* linux/dev/glue/block.c (device_get_status: DEV_GET_RECORDS):
Always return 512 for DEV_GET_SIZE_RECORD_SIZE as DEV_GET_SIZE does.
|
|
|
|
|
|
|
|
|
|
|
| |
* include/device/device_types.h: New get_status call
DEV_GET_RECORDS to get the number of records of a device (rather
than the number of bytes). Accordingly define
DEV_GET_RECORDS_DEVICE_RECORDS, DEV_GET_RECORDS_RECORD_SIZE and
DEV_GET_RECORDS_COUNT.
* linux/dev/glue/block.c (device_get_status): Handle
DEV_GET_RECORDS.
|
|
|
|
|
| |
* linux/dev/glue/block.c: Reverted the changes at 2000-08-17.
Reported by Brent Fulgham <brent.fulgham@xpsystems.com>.
|
|
|
|
|
| |
* linux/dev/glue/block.c (init_partition): Move initialization
of MASK until it is asserted that gd is non-NULL.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* vm/vm_resident.c (vm_page_external_count): Define variable.
(vm_page_grab): New argument `external'. All callers changed.
Keep track of number of externally managed pages. Don't let
non-privileged threads exceed the externally-managed page limit.
(vm_page_grab_contiguous_pages): New argument `external'. All
callers changed. Keep track of number of externally managed
pages. Don't let non-privileged threads exceed the
externally-managed page limit.
(vm_page_convert): New argument `external'. All callers changed.
(vm_page_release): New argument `external'. All callers
changed. Keep track of number of externally managed pages.
(vm_page_bootstrap): Initialize M->external.
* vm/vm_page.h (vm_page_external_limit, vm_page_external_count):
New variables.
(struct vm_page): New members `external' and `extcounted'.
* vm/vm_pageout.c (vm_pageout): Initialize vm_page_external_limit
and vm_page_external_target.
(VM_PAGE_EXTERNAL_LIMIT, VM_PAGE_EXTERNAL_TARGET): New macro.
(vm_pageout_external_target): New variable.
(vm_pageout_scan): Regard "too many externally managed pages" as a
reason to keep doing work, but if that's the only reason we're
doing work, then the only thing we do is schedule cleaning of
pages. Help keep track of the number of externally managed pages
that we care about.
|
|
|
|
|
| |
* linux/dev/glue/block.c (device_get_status): Always set
status_count to DEV_GET_STATUS_COUNT if flavor is DEV_GET_SIZE.
|
|
* device/kmsg.c (kmsginit): Add a missing semicolon.
(kmsggetstat): Fix typos,
DEV_GET_DEVICE_SIZE -> DEV_GET_SIZE_DEVICE_SIZE and
DEV_GET_RECORD_SIZE -> DEV_GET_SIZE_RECORD_SIZE.
(kmsg_putchar): Fix a typo kmsg_done_init -> kmsg_init_done.
* linux/dev/glue/block.c (device_get_status): Allocate a hd_geometry
on the stack.
* linux/dev/drivers/block/ide.c: New file.
* linux/dev/drivers/scsi/sd_ioctl.c: New file.
1999-02-01 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* linux/dev/glue/block.c (dev_getstat): Fix a missing `struct'.
* device/cons.c (cninit): Don't call kmsginit.
* kmsg.c (kmsg_buffer): Defined as static.
(kmsg_write_offset): Likewise.
(kmsg_read_offset): Likewise.
(kmsg_read_queue): Likewise.
(kmsg_in_use): Likewise.
(kmsg_lock): Likewise.
(kmsginit): Likewise, and call queue_init instead of setting
PREV and NEXT manually.
(kmsg_done_init): New variable.
(kmsg_putchar): Call kmsginit if not initialized yet.
(kmsggetstat): New function.
* kmsg.h (kmsggetstat): Add the prototype.
* i386/i386at/kd_event.c (kbdgetstat): Handle DEV_GET_SIZE.
(kbdread): Check if the amount a user specify is a multiple
of sizeof(kd_event).
* i386/i386at/kd_mouse.c (mousegetstat): New function.
(mouseread): Check if the amount a user specify is a multiple
of sizeof(kd_event).
* i386/i386at/conf.c (dev_name_list): Set the mouse getstat entry
to mousegetstat and the kmsg getstat entry to kmsggetstat.
Use MACH_COM instead of NCOM to determine if com is used.
Use MACH_LPR instead of NLPR to determine if lpr is used.
* configure.in (--enable-com): New option.
(--enable-lpr): Likewise.
* Makefile.in (enable_com): New variable.
(enable_lpr): Likewise.
* i386/Makefrag (i386at-files): Remove com.c.
(objfiles): Add com.o if enable_com is yes, and lpr.o if enable_lpr
is yes.
1999-01-24 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* device/kmsg.h (KMSGBUFSIZE): Deleted.
* device/kmsg.c: Rewritten completely to provide stream interface.
* linux/dev/glue/block.c (device_getstat): Added V_GETPARMS support.
* config.guess: New version from automake-1.4.
* config.sub: Likewise.
* install-sh: Likewise.
1998-12-30 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* linux/dev/glue/net.c (dev_alloc_skb): Change the skb arragement.
(dev_kfree_skb): Free only skb.
(device_write): Keep skb elements up-to-date.
1998-12-02 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* configure.in: Fix linuxdev option handling.
* linux/Drivers.in: Remove linuxdev option and fix linking files.
* linux/Makefile.in: Replace @DEFS@ with -DLINUX_DEV.
* linux/dev/arch/i386/kernel/irq.c: Include missing header files.
* linux/dev/arch/i386/kernel/setup.c: Include <device-drivers.h>.
* linux/dev/glue/kmem.c: Add printf declaration.
* linux/dev/glue/misc.c: Include <linux/types.h>.
* linux/dev/init/main.c: Call linux_sched_init instead of sched_init.
* linux/dev/kernel/sched.c: Add timer_bh declaration.
(tqueue_bh): Fix the argument.
(linux_sched_init): Renamed from sched_init.
1998-11-30 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Clean up linux emulation code to make it architecture-independent
as much as possible.
* linux: Renamed from linuxdev.
* Makefile.in (objfiles): Add linux.o instead of linuxdev.o.
(MAKE): New variable. Used for the linux.o target.
* configure.in: Add AC_CHECK_TOOL(MAKE, make).
* i386/i386/spl.h: Include <i386/ipl.h>, for compatibility with
OSF Mach 3.0. Suggested by Elgin Lee <ehl@funghi.com>.
* linux/src: Renamed from linux/linux.
* linux/dev: Renamed from linux/mach.
* linux/Drivers.in (AC_INIT): Use dev/include/linux/autoconf.h,
instead of mach/include/linux/autoconf.h.
* Makefile.in (all): Target ../linux.o instead of ../linuxdev.o.
* linux/dev/drivers/block/genhd.c: Include <machine/spl.h> instead
of <i386/ipl.h>.
* linux/dev/drivers/net/auto_irq.c: Remove unneeded header files,
<i386/ipl.h> and <i386/pic.h>.
* linux/dev/init/main.c: Many i386-dependent codes moved to ...
* linux/dev/arch/i386/irq.c: ... here.
* linux/dev/arch/i386/setup.c: New file.
* linux/dev/arch/i386/linux_emul.h: Likewise.
* linux/dev/arch/i386/glue/timer.c: Merged into sched.c.
* linux/dev/arch/i386/glue/sched.c: Include <machine/spl.h> instead
of <i386/ipl.h>, and moved to ...
* linux/dev/kernel/sched.c: ... here.
* linux/dev/arch/i386/glue/block.c: Include <machine/spl.h> and
<linux_emul.h>, instead of i386-dependent header files, and
moved to ...
* linux/dev/glue/blocl.c: ... here.
* linux/dev/arch/i386/glue/net.c: Include <machine/spl.h> and
<linux_emul.h>, instead of i386-dependent header files, and
moved to ...
* linux/dev/glue/net.c: ... here.
* linux/dev/arch/i386/glue/misc.c: Remove `x86' and moved to ...
* linux/dev/glue/misc.c: ... here.
* linux/dev/arch/i386/glue/kmem.c: Moved to ...
* linux/dev/glue/kmem.c: ... here.
|