Age | Commit message (Collapse) | Author |
|
It needs to be able to hold > 4G size.
* i386/include/mach/i386/vm_types.h (vm_size_t): Set type to unsigned
long.
* vm/vm_user.c (vm_read, vm_write): Fix type according to RPC.
* i386/i386at/model_dep.c (c_boot_entry): Fix format.
* device/dev_pager.c (device_pager_data_request): Fix format.
|
|
* ipc/mach_port.c (mach_port_destroy, mach_port_deallocate): Cast sizeof
to int.
|
|
* i386/i386/gdt.c: Include <kern/assert.h>
(gdt_init) [__x86_64__]: Assert base is 0, pass 0 limit and 64bit size.
* i386/i386/ktss.c: Warn that it needs to be fixed.
* i386/i386/ldt.c: Warn that it needs to be fixed.
* i386/i386/mp_desc.c: Warn that it needs to be fixed.
|
|
* i386/i386/db_interface.c (i386_last_kdb_sp): Set type to uintptr_t.
(kdb_trap): Cast &type and ®s->uesp to uintptr_t.
(kdb_kentry): Cast interrupt state with uintptr_t.
|
|
* i386/i386at/com.c (comopen, comclose, comparam, comstart, comtimer):
Cast tp->t_addr to uinptr_t instead of int.
|
|
* i386/i386at/biosmem.c: Include <inttypes.h>
(biosmem_map_show, biosmem_load_segment): Use PRIx64.
|
|
* x86_64/locore.S (dr6, dr0, dr1, dr2, dr3): Remove functions.
(dr_msk, dr_addr): Remove variables.
|
|
See VM_MIN_KERNEL_ADDRESS.
* x86_64/Makefrag.am (gnumach_LINKFLAGS): Set _START to
_START_MAP+0x40000000 instead of +0xC0000000.
|
|
* x86_64/Makefrag.am: Add instructions to build
|
|
* x86_64/spl.S: fix instruction length
|
|
* x86_64/configfrag.ac (ncom, nplr) [!at:x86_64]: Set to 0.
(ncom) [at:x86_64]: Set to 4.
(nlpr) [at:x86_64]: Set to 1.
(ATX86_64): Define to 1.
(NCOM): Define.
(NLPR): Define.
* configure.ac [at:x86_64]: Accept combination.
|
|
This must be replaced by 64bit equivalents, but let's enable them for now so
it can build.
* i386/i386/pic.h [ATX86_64]: Enable macros.
* i386/i386/pit.h [ATX86_64]: Likewise.
* i386/i386/fpu.c [ATX86_64]: Enable fpintr function.
|
|
* i386/intel/pmap.c (pmap_bootstrap) [!MACH_PV_PAGETABLES]: Do not call
pmap_set_page_readonly_init.
|
|
* x86_64/kdasm.S (count): Fix type to 32bit.
(kd_slmscu, kd_slmscd): Fix getting count as 32bit.
|
|
* i386/i386/idt.c (idt_init_entry): Set entrypoint type to unsigned long.
* x86_64/idt_inittab.S (IDT_ENTRY): Fix entry format accordingly.
|
|
* x86_64/interrupt.S: New file.
|
|
* i386/i386at/kdasm.S (start, count, value, from, to): Use B_ARG*
instead of reimplementing them.
* x86_64/kdasm.S: New file.
|
|
* i386/i386/proc_reg.h (get_eflags, set_eflags): Add 64bit version.
(get_dr0, set_dr0, get_dr1, set_dr1, get_dr2, set_dr2, get_dr3, set_dr3,
get_dr6, set_dr6, get_dr7, set_dr7): Drop explicit size qualifier.
|
|
* i386/i386/hardclock.c [ATX86_64]: Include <i386/ipl.h>.
|
|
Only Xen platform for now.
* Makefrag.am [HOST_x86_64]: Include x86_64/Makefrag.am.
* configure.ac: Include x86_64/configfrag.ac.
[default:x86_64] (host_platform): Set platform to xen.
* x86_64/Makefrag.am, x86_64/configfrag.ac: New files.
|
|
This makes inclusions easier.
* x86_64/include/mach/x86_64, x86_64/x86_64: New symlinks.
|
|
* x86_64/xen_boothdr.S, x86_64/xen_locore.S: New files.
|
|
* x86_64/spl.S: New file.
|
|
* x86_64/locore.S: New file.
|
|
* x86_64/ldscript: New file.
|
|
* x86_64/idt_inittab.S: New file.
|
|
* x86_64/debug_trace.S: New file.
|
|
* x86_64/cswitch.S: New file.
|
|
* Makefile.am (clib_routines): Add __rela_iplt_start __rela_iplt_end.
|
|
* i386/intel/pmap.h (L4SHIFT, L4MASK, lin2l4num): New macros
(PDPNUM, PDPMASK, set_pmap): Add 64bit variant. Make PAE use the 64bit mask
too.
(pmap): Add l4base, user_l4base, user_pdpbase fields.
* i386/intel/pmap.c (pmap_bootstrap): Clear the whole PDP. Enable write
bit in PDP. Set user pagetable to NULL. Initialize l4base.
(pmap_clear_bootstrap_pagetable): Add 4th-level support.
(pmap_ceate): Clear the whole PDP. Enable write bit in PDP. Initialize
l4base, user_pdpbase, user_l4base.
(pmap_destroy): Clear l4base, user_pdpbase, user_l4base.
* i386/i386at/model_dep.c (i386at_init): Load l4base on 64bits.
|
|
* i386/i386/trap.c: Detect lcall 7 instructions.
|
|
* kern/bootstrap.c (bootstrap_create): Support loading 32bit binaries on
64bit.
|
|
|
|
* xen/evt.c (hyp_intrinit): Fix hyp_set_callbacks for 64bit.
|
|
* kern/syscall_sw.h (mach_trap_t): Fix structure for 64bit.
|
|
* include/mach/xen.h (PFN_LIST): Set to MACH2PHYS_VIRT_START.
|
|
* i386/include/mach/i386/multiboot.h (multiboot32_module): New
structure.
|
|
* i386/include/mach/i386/asm.h (S_ARG0, S_ARG1, S_ARG2, S_ARG3, S_ARG4,
S_ARG5, FRAME, EMARF, B_ARG0, B_ARG1, B_ARG2, B_ARG3, INT_FIX): Add
64bit variants.
|
|
* i386/i386/xen.h (_hypcall_ret, _hypcall_arg1, _hypcall_arg2,
_hypcall_arg3, _hypcall_arg4, _hypcall_arg5): New macros.
(_hypcall0, _hypcall1, _hypcall2, _hypcall3, _hypcall4, _hypcall5): Fix
parameters and return type.
(set_callbacks, update_descriptor, set_segment_base,
update_va_mapping, set_timer_op): Add 64bit variant.
(hyp_set_user_cr3): New macro.
(iretq): New macro.
|
|
* i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS, HYP_VIRT_START,
LINEAR_MIN_KERNEL_ADDRESS, LINEAR_MAX_KERNEL_ADDRESS): Add 64bit
variants.
|
|
* i386/i386/thread.h (i386_saved_state, i386_kernel_state,
i386_interrupt_state): Add 64bit registers.
|
|
* x86_64/_setjmp.S: New file
* i386/i386/setjmp.h (jmp_buf): Add 64bit variant.
|
|
* i386/i386/i386asm.sym (KSS_ESI, KSS_EDI): Remove.
(KSS_R12, KSS_R13, KSS_R14, KSS_R15, r15): Add.
|
|
There is no segmentation in 64bit mode.
* i386/i386/gdt.c (gdt_init): Do not load segments on 64bit.
|
|
* i386/i386/db_trace.c (i386_kregs): On 64bit, remove edi and esi, and
add r12, r13, r14, r15.
|
|
* i386/i386/db_interface.c (int_regs): Drop edi/esi fields on 64bit.
(kdb_kentry): Fix saving rsi/rdi.
|
|
* i386/i386/cpu_number.h (CX): Add 64bit variant.
|
|
* i386/i386/pio.h (inl): Make result unsigned int instead of unsigned
long.
|
|
Suggested by guy fleury iteriteka <gfleury@disroot.org>
* vm/vm_object.c (ipc/mavm_object_copy_call): Make sure vm_object_enter call
succeeds.
|
|
In order to fix year 2038 limit.
* i386/i386at/rtc.h (readtodc): Make tp parameter uint64_t *.
* i386/i386at/rtc.c (readtodc): Likewise.
* xen/time.c (readtodc): Likewise.
* i386/i386at/model_dep.c (inittodr): Pass uint64_t pointer to readtodc.
|