| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
vpi_offset is not currently large enough to store it.
|
| |
|
|
|
|
| |
vm_page_insert would not be able to store the offset.
|
| |
|
| |
|
| |
|
|
|
|
| |
It shall return a phys_addr_t, not vm_offset_t.
|
|
|
|
| |
The map function is supposed to return physical addresses, thus phys_addr_t.
|
|
|
|
| |
Message-Id: <20220215064133.68593-1-damien@zamaudio.com>
|
| |
|
|\ |
|
| |
| |
| |
| | |
* x86_64/Makefrag.am (EXTRA_DIST): Ship the x86_64/x86_64 symlink.
|
| |
| |
| |
| |
| | |
* Makefrag.am (EXTRA_DIST): Ship the x86_64/x86_64 and
x86_64/include/mach/x86_64 symlinks.
|
|/
|
|
|
| |
Otherwise we cannot use _DIST there and have them all taken into account.
As a consequence, we can drop duplicate _DIST between i386 and x86_64.
|
|
|
|
|
| |
We do not want to destroy the port and release the stack if thread is
NULL, i.e. we will fail.
|
|
|
|
|
|
|
|
| |
* hardclock.c: convert to ANSI
* com.c: ditto
* lpr.c: ditto
* mem.c: ditto
Message-Id: <20220120170004.21722-1-etienne.brateau@gmail.com>
|
|
|
|
|
| |
This follows mig's cf4bcc3f1435 ("Also add const qualifiers on server
side")
|
| |
|
| |
|
| |
|
|
|
|
| |
This will avoid forcing the caller to respect the definite string size.
|
|
|
|
| |
This will avoid forcing the caller to respect the definite string size.
|
|
|
|
| |
Like other defs header do, to allow e.g. including libports/ports.h
|
|
|
|
|
| |
881fe9da8bd1 ("kern/thread.c: some minor style changes") introduced a
spurious comment.
|
|
|
|
|
|
| |
* device/dev_name.c: Convert function prototypes from K&R to ANSI.
* device/subr.c: Convert function prototypes from K&R to ANSI.
Message-Id: <20211230112249.13682-2-etienne.brateau@gmail.com>
|
|
|
|
|
|
|
| |
Greeting, I have changed some stuff in kern/thread.c which makes code
more readable for me. Maybe it will be usefull.
Message-Id: <20211230082643.8171-1-sys.arch.adam@gmail.com>
|
|
|
|
| |
Notably trap/interrupt/syscall provide an exact SP value.
|
|
|
|
|
| |
When we don't have a frame but PC points to a RET instruction (e.g. in the
userland system call assembly code), we can trivially unwind it.
|
|
|
|
|
| |
User processes loaded in high memory are not visible to ddb through the
direct mapping. We can however read/write data through copy_from/to_phys.
|
|
|
|
|
| |
We haven't seen the 2032 bug for a long time, f040677be3c0 ("kd: Do not
read the CMOS ram") probably fixed it at last.
|
|
|
|
| |
Like Linux just did.
|
|
|
|
|
|
|
| |
The segment code actually has vm_page entries for reserved pages, and
thus memmmap would reject mapping ACPI pages. Taking the information
from biosmem is much more precise, and indeed knows all hardware quirks
which can now be dropped from memmmap.
|
|
|
|
|
|
| |
The memmmap method may reject some offsets (because it falls in non-device
ranges), so device_map_page has to notice this and report the error.
device_pager_data_request then has to notice as well and report.
|
|
|
|
| |
For coherency with memory_object_create_proxy.
|
|
|
|
|
|
|
|
| |
* vm/vm_map.c (vm_region_get_proxy):
- Return KERN_INVALID_ARGUMENT when the entry is a submap.
- Create a pager for the vm_object when the entry doesn't
have any yet, since it's an anonymous mapping.
Message-Id: <20211106081333.10366-3-jlledom@mailfence.com>
|
|
|
|
|
|
|
|
|
| |
To get a proxy to the region a given address belongs to,
with protection and range limited to the region ones.
* include/mach/mach4.defs: vm_region_get_proxy RPC declaration
* vm/vm_map.c: vm_region_get_proxy implementation
Message-Id: <20211106081333.10366-2-jlledom@mailfence.com>
|
|
|
|
|
| |
* vm/memory_object_proxy.c: Include kern/mach4.server.h.
(memory_object_create_proxy): Drop const qualifiers.
|
|
|
|
|
|
|
|
|
|
| |
mach_port_t is for userland, kernel sees the translated ipc_port_t.
* include/mach/memory_object.h [MACH_KERNEL]: Include ipc/ipc_types.h
[MACH_KERNEL] (memory_object_t): Typedef to ipc_port_t instead of
mach_port_t.
(memory_object_array_t): Typedef to memory_object_t* instead of
mach_port_t*.
|
|
|
|
| |
* device/dev_pager.c (device_pager_release): Drop unused function.
|
|
|
|
|
|
|
|
|
|
|
| |
This is a no-op on i386.
* i386/include/mach/i386/vm_types.h (vm_size_array_t): New type.
* include/mach/mach4.defs (vm_size_array_t): New type.
(memory_object_create_proxy): Turn len parameter from vm_offset_array_t
to vm_size_array_t.
* vm/memory_object_proxy.c (memory_object_create_proxy): Turn len
parameter from const vm_offset_t * to const vm_size_t *.
|
|
|
|
|
|
|
|
|
|
| |
xrstor and xrstors also take the xsave support bitmask.
We were otherwise not necessarily properly reloading all the FPU state,
thus leading to various subtle bugs, notably with glibc 2.33's
ifunc-optimized memcpy etc.
* i386/i386/fpu.h (xrstor, xrstors): Pass fp_xsave_support in EDX:EAX.
|
| |
|
|
|
|
|
|
|
| |
* x86_64/Makefrag.am (include_mach_i386dir): Rename to include_mach_x86_64dir, set to $(includedir)/mach/x86_64.
(include_mach_i386_HEADERS): Rename to include_mach_x86_64_HEADERS.
Reported-by: Andrea Monaco <andrea.monaco@autistici.org>
|
| |
|
|
|
|
|
| |
* linux/dev/drivers/block/ahci.c (ahci_probe_port): Avoid trying AHCI
identify when PxCMD.ATAPI is set.
|
|
|
|
|
| |
* linux/dev/drivers/block/ahci.c (ahci_identify): Fix warning for the
identify timeout.
|
|
|
|
|
|
|
|
|
|
| |
Remove the reference to the pager hash since they are used
both in the pager and the device hashes.
* device/dev_pager.c:
* Rename DEV_PAGER_HASH_COUNT to DEV_HASH_COUNT
* Rename dev_pager_hash to dev_hash
Message-Id: <20210828100252.18376-3-jlledom@mailfence.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* device/dev_pager.c:
* struct dev_pager: add offset field
* new struct dev_device_entry: includes device and offset
* new hash table dev_device_hashtable
* index [device + offset]
* new functions dev_device_hash[init,insert,delete,lookup]
* do the same as their counterparts for
dev_pager_hashtable
* dev_pager_setup(): record the offset
* device_map_page(): add the recorded offset on the fly
Message-Id: <20210828100252.18376-2-jlledom@mailfence.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|