summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-2964bit: Fix vm_size_t sizeSamuel Thibault
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.
2020-03-29mach_port: Fix 64bit warningsSamuel Thibault
* ipc/mach_port.c (mach_port_destroy, mach_port_deallocate): Cast sizeof to int.
2020-03-2964bit: Fix segment definitionsSamuel Thibault
* 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.
2020-03-29db_interface: Fix 64bit warningsSamuel Thibault
* i386/i386/db_interface.c (i386_last_kdb_sp): Set type to uintptr_t. (kdb_trap): Cast &type and &regs->uesp to uintptr_t. (kdb_kentry): Cast interrupt state with uintptr_t.
2020-03-29com: Fix 64bit warningsSamuel Thibault
* i386/i386at/com.c (comopen, comclose, comparam, comstart, comtimer): Cast tp->t_addr to uinptr_t instead of int.
2020-03-2964bit: Fix format warningsSamuel Thibault
* i386/i386at/biosmem.c: Include <inttypes.h> (biosmem_map_show, biosmem_load_segment): Use PRIx64.
2020-03-29x86_64: drop unused functionsSamuel Thibault
* x86_64/locore.S (dr6, dr0, dr1, dr2, dr3): Remove functions. (dr_msk, dr_addr): Remove variables.
2020-03-29x86_64: Fix map address given to linkerSamuel Thibault
See VM_MIN_KERNEL_ADDRESS. * x86_64/Makefrag.am (gnumach_LINKFLAGS): Set _START to _START_MAP+0x40000000 instead of +0xC0000000.
2020-03-29Enable x86_64 build for atEtienne Brateau
* x86_64/Makefrag.am: Add instructions to build
2020-03-29spl: Fix assembly filesEtienne Brateau
* x86_64/spl.S: fix instruction length
2020-03-28Enable at x86_64 buildSamuel Thibault
* 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.
2020-03-28at-x86_64: Enable fpu/pic/pit macrosSamuel Thibault
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.
2020-03-28pmap: fix 64bit non-xen buildSamuel Thibault
* i386/intel/pmap.c (pmap_bootstrap) [!MACH_PV_PAGETABLES]: Do not call pmap_set_page_readonly_init.
2020-03-28kdasm: Fix 64bit buildSamuel Thibault
* x86_64/kdasm.S (count): Fix type to 32bit. (kd_slmscu, kd_slmscd): Fix getting count as 32bit.
2020-03-28IDT: fix entries formatSamuel Thibault
* i386/i386/idt.c (idt_init_entry): Set entrypoint type to unsigned long. * x86_64/idt_inittab.S (IDT_ENTRY): Fix entry format accordingly.
2020-03-28interrupt: Add 64bit variantSamuel Thibault
* x86_64/interrupt.S: New file.
2020-03-28kdasm: Add 64bit variantSamuel Thibault
* i386/i386at/kdasm.S (start, count, value, from, to): Use B_ARG* instead of reimplementing them. * x86_64/kdasm.S: New file.
2020-03-28Fix low-level macros for 64bitSamuel Thibault
* 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.
2020-03-28Fix hardclock build on 64bitEtienne Brateau
* i386/i386/hardclock.c [ATX86_64]: Include <i386/ipl.h>.
2020-03-28build system: Add 64bit variantSamuel Thibault
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.
2020-03-28Add 64bit/32bit compatibility symlinksSamuel Thibault
This makes inclusions easier. * x86_64/include/mach/x86_64, x86_64/x86_64: New symlinks.
2020-03-28xen: Add 64bit variantSamuel Thibault
* x86_64/xen_boothdr.S, x86_64/xen_locore.S: New files.
2020-03-28spl: Add 64bit variantSamuel Thibault
* x86_64/spl.S: New file.
2020-03-28locore: Add 64bit variantSamuel Thibault
* x86_64/locore.S: New file.
2020-03-28ldscript: Add 64bit variantSamuel Thibault
* x86_64/ldscript: New file.
2020-03-28idt_inittab: Add 64bit variantSamuel Thibault
* x86_64/idt_inittab.S: New file.
2020-03-28debug_trace: Add 64bit variantSamuel Thibault
* x86_64/debug_trace.S: New file.
2020-03-28cswitch: Add 64bit variantSamuel Thibault
* x86_64/cswitch.S: New file.
2020-03-28Fix 64bit linkSamuel Thibault
* Makefile.am (clib_routines): Add __rela_iplt_start __rela_iplt_end.
2020-03-28pmap.h: Add 64bit variantSamuel Thibault
* 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.
2020-03-28trap.c: Add 32bit lcall 7 emulation on 64bitSamuel Thibault
* i386/i386/trap.c: Detect lcall 7 instructions.
2020-03-28bootstrap.c: Add 32-on-64bit supportSamuel Thibault
* kern/bootstrap.c (bootstrap_create): Support loading 32bit binaries on 64bit.
2020-03-28Fix tab vs spacesSamuel Thibault
2020-03-28* xen/evt.c: Add 64bit variantSamuel Thibault
* xen/evt.c (hyp_intrinit): Fix hyp_set_callbacks for 64bit.
2020-03-28syscall_sw.h: Add 64bit variantSamuel Thibault
* kern/syscall_sw.h (mach_trap_t): Fix structure for 64bit.
2020-03-28include/mach/xen.h: Add 64bit variantSamuel Thibault
* include/mach/xen.h (PFN_LIST): Set to MACH2PHYS_VIRT_START.
2020-03-28multiboot.h: Add 64bit variantSamuel Thibault
* i386/include/mach/i386/multiboot.h (multiboot32_module): New structure.
2020-03-28asm.h: Add 64bit variantSamuel Thibault
* 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.
2020-03-28xen.h: Add 64bit variantSamuel Thibault
* 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.
2020-03-28vm_param: Add 64bit variantSamuel Thibault
* i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS, HYP_VIRT_START, LINEAR_MIN_KERNEL_ADDRESS, LINEAR_MAX_KERNEL_ADDRESS): Add 64bit variants.
2020-03-28thread.h: Add 64bit variantSamuel Thibault
* i386/i386/thread.h (i386_saved_state, i386_kernel_state, i386_interrupt_state): Add 64bit registers.
2020-03-28setjmp: Add 64bit variantSamuel Thibault
* x86_64/_setjmp.S: New file * i386/i386/setjmp.h (jmp_buf): Add 64bit variant.
2020-03-28i386asm.sym: Add 64bit variantSamuel Thibault
* i386/i386/i386asm.sym (KSS_ESI, KSS_EDI): Remove. (KSS_R12, KSS_R13, KSS_R14, KSS_R15, r15): Add.
2020-03-28gdt: 64bit VariantSamuel Thibault
There is no segmentation in 64bit mode. * i386/i386/gdt.c (gdt_init): Do not load segments on 64bit.
2020-03-28db_trace: Add 64bit variantSamuel Thibault
* i386/i386/db_trace.c (i386_kregs): On 64bit, remove edi and esi, and add r12, r13, r14, r15.
2020-03-28db_interface: Add 64bit variantSamuel Thibault
* i386/i386/db_interface.c (int_regs): Drop edi/esi fields on 64bit. (kdb_kentry): Fix saving rsi/rdi.
2020-03-28cpu_number: Add 64bit variantSamuel Thibault
* i386/i386/cpu_number.h (CX): Add 64bit variant.
2020-03-28Fix inl result sizeEtienne Brateau
* i386/i386/pio.h (inl): Make result unsigned int instead of unsigned long.
2020-03-15vm_object_copy_call: Make sure vm_object_enter succeedsSamuel Thibault
Suggested by guy fleury iteriteka <gfleury@disroot.org> * vm/vm_object.c (ipc/mavm_object_copy_call): Make sure vm_object_enter call succeeds.
2020-03-09Set readtodc parameter 64bitv1.8+git20200309Samuel Thibault
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.