Index: head/sys/conf/files.amd64 =================================================================== --- head/sys/conf/files.amd64 (revision 304553) +++ head/sys/conf/files.amd64 (revision 304554) @@ -1,657 +1,657 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # # $FreeBSD$ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and # dependency lines other than the first are silently ignored. # # cloudabi64_vdso.o optional compat_cloudabi64 \ - dependency "$S/contrib/cloudabi/cloudabi_vdso_x86_64.c" \ - compile-with "${CC} -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s -D_KERNEL -I. -I$S -I$S/contrib/cloudabi -O2 -fomit-frame-pointer $S/contrib/cloudabi/cloudabi_vdso_x86_64.c -o ${.TARGET}" \ + dependency "$S/contrib/cloudabi/cloudabi_vdso_x86_64.S" \ + compile-with "${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s $S/contrib/cloudabi/cloudabi_vdso_x86_64.S -o ${.TARGET}" \ no-obj no-implicit-rule \ clean "cloudabi64_vdso.o" # cloudabi64_vdso_blob.o optional compat_cloudabi64 \ dependency "cloudabi64_vdso.o" \ compile-with "${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd --binary-architecture i386 cloudabi64_vdso.o ${.TARGET}" \ no-implicit-rule \ clean "cloudabi64_vdso_blob.o" # linux32_genassym.o optional compat_linux32 \ dependency "$S/amd64/linux32/linux32_genassym.c" \ compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "linux32_genassym.o" # linux32_assym.h optional compat_linux32 \ dependency "$S/kern/genassym.sh linux32_genassym.o" \ compile-with "sh $S/kern/genassym.sh linux32_genassym.o > ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "linux32_assym.h" # linux32_locore.o optional compat_linux32 \ dependency "linux32_assym.h $S/amd64/linux32/linux32_locore.s" \ compile-with "${CC} -x assembler-with-cpp -DLOCORE -m32 -shared -s -pipe -I. -I$S -Werror -Wall -fno-common -nostdinc -nostdlib -Wl,-T$S/amd64/linux32/linux32_vdso.lds.s -Wl,-soname=linux32_vdso.so,--eh-frame-hdr,-fPIC,-warn-common ${.IMPSRC} -o ${.TARGET}" \ no-obj no-implicit-rule \ clean "linux32_locore.o" # linux32_vdso.so optional compat_linux32 \ dependency "linux32_locore.o" \ compile-with "${OBJCOPY} --input-target binary --output-target elf64-x86-64-freebsd --binary-architecture i386 linux32_locore.o ${.TARGET}" \ no-implicit-rule \ clean "linux32_vdso.so" # ia32_genassym.o standard \ dependency "$S/compat/ia32/ia32_genassym.c" \ compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ no-obj no-implicit-rule \ clean "ia32_genassym.o" # ia32_assym.h standard \ dependency "$S/kern/genassym.sh ia32_genassym.o" \ compile-with "env NM='${NM}' NMFLAGS='${NMFLAGS}' sh $S/kern/genassym.sh ia32_genassym.o > ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "ia32_assym.h" # font.h optional sc_dflt_font \ compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'static u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'static u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'static u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \ no-obj no-implicit-rule before-depend \ clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" # atkbdmap.h optional atkbd_dflt_keymap \ compile-with "kbdcontrol -P ${S:S/sys$/share/}/vt/keymaps -P ${S:S/sys$/share/}/syscons/keymaps -L ${ATKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > atkbdmap.h" \ no-obj no-implicit-rule before-depend \ clean "atkbdmap.h" # ukbdmap.h optional ukbd_dflt_keymap \ compile-with "kbdcontrol -P ${S:S/sys$/share/}/vt/keymaps -P ${S:S/sys$/share/}/syscons/keymaps -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # hpt27xx_lib.o optional hpt27xx \ dependency "$S/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu" \ compile-with "uudecode < $S/dev/hpt27xx/amd64-elf.hpt27xx_lib.o.uu" \ no-implicit-rule # hptmvraid.o optional hptmv \ dependency "$S/dev/hptmv/amd64-elf.raid.o.uu" \ compile-with "uudecode < $S/dev/hptmv/amd64-elf.raid.o.uu" \ no-implicit-rule # hptnr_lib.o optional hptnr \ dependency "$S/dev/hptnr/amd64-elf.hptnr_lib.o.uu" \ compile-with "uudecode < $S/dev/hptnr/amd64-elf.hptnr_lib.o.uu" \ no-implicit-rule # hptrr_lib.o optional hptrr \ dependency "$S/dev/hptrr/amd64-elf.hptrr_lib.o.uu" \ compile-with "uudecode < $S/dev/hptrr/amd64-elf.hptrr_lib.o.uu" \ no-implicit-rule # amd64/acpica/acpi_machdep.c optional acpi acpi_wakecode.o optional acpi \ dependency "$S/amd64/acpica/acpi_wakecode.S assym.s" \ compile-with "${NORMAL_S}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.o" acpi_wakecode.bin optional acpi \ dependency "acpi_wakecode.o" \ compile-with "${OBJCOPY} -S -O binary acpi_wakecode.o ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.bin" acpi_wakecode.h optional acpi \ dependency "acpi_wakecode.bin" \ compile-with "file2c -sx 'static char wakecode[] = {' '};' < acpi_wakecode.bin > ${.TARGET}" \ no-obj no-implicit-rule before-depend \ clean "acpi_wakecode.h" acpi_wakedata.h optional acpi \ dependency "acpi_wakecode.o" \ compile-with '${NM} -n --defined-only acpi_wakecode.o | while read offset dummy what; do echo "#define $${what} 0x$${offset}"; done > ${.TARGET}' \ no-obj no-implicit-rule before-depend \ clean "acpi_wakedata.h" # amd64/amd64/amd64_mem.c optional mem #amd64/amd64/apic_vector.S standard amd64/amd64/atomic.c standard amd64/amd64/bios.c standard amd64/amd64/bpf_jit_machdep.c optional bpf_jitter amd64/amd64/cpu_switch.S standard amd64/amd64/db_disasm.c optional ddb amd64/amd64/db_interface.c optional ddb amd64/amd64/db_trace.c optional ddb amd64/amd64/elf_machdep.c standard amd64/amd64/exception.S standard amd64/amd64/fpu.c standard amd64/amd64/gdb_machdep.c optional gdb amd64/amd64/in_cksum.c optional inet | inet6 amd64/amd64/initcpu.c standard amd64/amd64/io.c optional io amd64/amd64/locore.S standard no-obj amd64/amd64/xen-locore.S optional xenhvm amd64/amd64/machdep.c standard amd64/amd64/mem.c optional mem amd64/amd64/minidump_machdep.c standard amd64/amd64/mp_machdep.c optional smp amd64/amd64/mpboot.S optional smp amd64/amd64/pmap.c standard amd64/amd64/prof_machdep.c optional profiling-routine amd64/amd64/ptrace_machdep.c standard amd64/amd64/sigtramp.S standard amd64/amd64/support.S standard amd64/amd64/sys_machdep.c standard amd64/amd64/trap.c standard amd64/amd64/uio_machdep.c standard amd64/amd64/uma_machdep.c standard amd64/amd64/vm_machdep.c standard amd64/cloudabi64/cloudabi64_sysvec.c optional compat_cloudabi64 amd64/pci/pci_cfgreg.c optional pci cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S optional zfs | dtrace compile-with "${ZFS_S}" cddl/dev/dtrace/amd64/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/amd64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/x86/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" cddl/dev/dtrace/x86/dis_tables.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" cddl/dev/dtrace/x86/instr_size.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" crypto/aesni/aeskeys_amd64.S optional aesni crypto/aesni/aesni.c optional aesni aesni_ghash.o optional aesni \ dependency "$S/crypto/aesni/aesni_ghash.c" \ compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc} ${WERROR} ${NO_WCAST_QUAL} ${PROF} -mmmx -msse -msse4 -maes -mpclmul ${.IMPSRC}" \ no-implicit-rule \ clean "aesni_ghash.o" aesni_wrap.o optional aesni \ dependency "$S/crypto/aesni/aesni_wrap.c" \ compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc} ${WERROR} ${NO_WCAST_QUAL} ${PROF} -mmmx -msse -msse4 -maes ${.IMPSRC}" \ no-implicit-rule \ clean "aesni_wrap.o" crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb crypto/via/padlock.c optional padlock crypto/via/padlock_cipher.c optional padlock crypto/via/padlock_hash.c optional padlock dev/acpica/acpi_if.m standard dev/acpica/acpi_hpet.c optional acpi dev/acpi_support/acpi_wmi_if.m standard dev/agp/agp_amd64.c optional agp dev/agp/agp_i810.c optional agp dev/agp/agp_via.c optional agp dev/amdsbwd/amdsbwd.c optional amdsbwd dev/amdtemp/amdtemp.c optional amdtemp dev/arcmsr/arcmsr.c optional arcmsr pci dev/asmc/asmc.c optional asmc isa dev/atkbdc/atkbd.c optional atkbd atkbdc dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc dev/atkbdc/atkbdc.c optional atkbdc dev/atkbdc/atkbdc_isa.c optional atkbdc isa dev/atkbdc/atkbdc_subr.c optional atkbdc dev/atkbdc/psm.c optional psm atkbdc dev/bxe/bxe.c optional bxe pci dev/bxe/bxe_stats.c optional bxe pci dev/bxe/bxe_debug.c optional bxe pci dev/bxe/ecore_sp.c optional bxe pci dev/bxe/bxe_elink.c optional bxe pci dev/bxe/57710_init_values.c optional bxe pci dev/bxe/57711_init_values.c optional bxe pci dev/bxe/57712_init_values.c optional bxe pci dev/coretemp/coretemp.c optional coretemp dev/cpuctl/cpuctl.c optional cpuctl dev/dpms/dpms.c optional dpms # There are no systems with isa slots, so all ed isa entries should go.. dev/ed/if_ed_3c503.c optional ed isa ed_3c503 dev/ed/if_ed_isa.c optional ed isa dev/ed/if_ed_wd80x3.c optional ed isa dev/ed/if_ed_hpp.c optional ed isa ed_hpp dev/ed/if_ed_sic.c optional ed isa ed_sic dev/fb/fb.c optional fb | vga dev/fb/s3_pci.c optional s3pci dev/fb/vesa.c optional vga vesa dev/fb/vga.c optional vga dev/ichwd/ichwd.c optional ichwd dev/if_ndis/if_ndis.c optional ndis dev/if_ndis/if_ndis_pccard.c optional ndis pccard dev/if_ndis/if_ndis_pci.c optional ndis cardbus | ndis pci dev/if_ndis/if_ndis_usb.c optional ndis usb dev/io/iodev.c optional io dev/ioat/ioat.c optional ioat pci dev/ioat/ioat_test.c optional ioat pci dev/ipmi/ipmi.c optional ipmi dev/ipmi/ipmi_acpi.c optional ipmi acpi dev/ipmi/ipmi_isa.c optional ipmi isa dev/ipmi/ipmi_kcs.c optional ipmi dev/ipmi/ipmi_smic.c optional ipmi dev/ipmi/ipmi_smbus.c optional ipmi smbus dev/ipmi/ipmi_smbios.c optional ipmi dev/ipmi/ipmi_ssif.c optional ipmi smbus dev/ipmi/ipmi_pci.c optional ipmi pci dev/ipmi/ipmi_linux.c optional ipmi compat_linux32 dev/ixl/if_ixl.c optional ixl pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/ixl_pf_main.c optional ixl pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/ixl_pf_qmgr.c optional ixl pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/ixl_pf_iov.c optional ixl pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/if_ixlv.c optional ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/ixlvc.c optional ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/ixl_txrx.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_osdep.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_lan_hmc.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_hmc.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_common.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_nvm.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_adminq.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/fdc/fdc.c optional fdc dev/fdc/fdc_acpi.c optional fdc dev/fdc/fdc_isa.c optional fdc isa dev/fdc/fdc_pccard.c optional fdc pccard dev/hpt27xx/hpt27xx_os_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_osm_bsd.c optional hpt27xx dev/hpt27xx/hpt27xx_config.c optional hpt27xx dev/hptmv/entry.c optional hptmv dev/hptmv/mv.c optional hptmv dev/hptmv/gui_lib.c optional hptmv dev/hptmv/hptproc.c optional hptmv dev/hptmv/ioctl.c optional hptmv dev/hptnr/hptnr_os_bsd.c optional hptnr dev/hptnr/hptnr_osm_bsd.c optional hptnr dev/hptnr/hptnr_config.c optional hptnr dev/hptrr/hptrr_os_bsd.c optional hptrr dev/hptrr/hptrr_osm_bsd.c optional hptrr dev/hptrr/hptrr_config.c optional hptrr dev/hwpmc/hwpmc_amd.c optional hwpmc dev/hwpmc/hwpmc_intel.c optional hwpmc dev/hwpmc/hwpmc_core.c optional hwpmc dev/hwpmc/hwpmc_uncore.c optional hwpmc dev/hwpmc/hwpmc_piv.c optional hwpmc dev/hwpmc/hwpmc_tsc.c optional hwpmc dev/hwpmc/hwpmc_x86.c optional hwpmc dev/hyperv/netvsc/hv_net_vsc.c optional hyperv dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c optional hyperv dev/hyperv/netvsc/hv_rndis_filter.c optional hyperv dev/hyperv/stordisengage/hv_ata_pci_disengage.c optional hyperv dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c optional hyperv dev/hyperv/utilities/hv_heartbeat.c optional hyperv dev/hyperv/utilities/hv_kvp.c optional hyperv dev/hyperv/utilities/hv_shutdown.c optional hyperv dev/hyperv/utilities/hv_timesync.c optional hyperv dev/hyperv/utilities/hv_util.c optional hyperv dev/hyperv/vmbus/hyperv.c optional hyperv dev/hyperv/vmbus/hyperv_busdma.c optional hyperv dev/hyperv/vmbus/vmbus.c optional hyperv dev/hyperv/vmbus/vmbus_br.c optional hyperv dev/hyperv/vmbus/vmbus_chan.c optional hyperv dev/hyperv/vmbus/vmbus_et.c optional hyperv dev/hyperv/vmbus/vmbus_if.m optional hyperv dev/hyperv/vmbus/vmbus_xact.c optional hyperv dev/hyperv/vmbus/amd64/hyperv_machdep.c optional hyperv dev/hyperv/vmbus/amd64/vmbus_vector.S optional hyperv dev/nfe/if_nfe.c optional nfe pci dev/ntb/if_ntb/if_ntb.c optional if_ntb dev/ntb/ntb_transport.c optional if_ntb dev/ntb/ntb.c optional if_ntb | ntb_hw dev/ntb/ntb_if.m optional if_ntb | ntb_hw dev/ntb/ntb_hw/ntb_hw.c optional ntb_hw dev/nvd/nvd.c optional nvd nvme dev/nvme/nvme.c optional nvme dev/nvme/nvme_ctrlr.c optional nvme dev/nvme/nvme_ctrlr_cmd.c optional nvme dev/nvme/nvme_ns.c optional nvme dev/nvme/nvme_ns_cmd.c optional nvme dev/nvme/nvme_qpair.c optional nvme dev/nvme/nvme_sim.c optional nvme scbus !nvd dev/nvme/nvme_sysctl.c optional nvme dev/nvme/nvme_test.c optional nvme dev/nvme/nvme_util.c optional nvme dev/nvram/nvram.c optional nvram isa dev/random/ivy.c optional rdrand_rng dev/random/nehemiah.c optional padlock_rng dev/qlxge/qls_dbg.c optional qlxge pci dev/qlxge/qls_dump.c optional qlxge pci dev/qlxge/qls_hw.c optional qlxge pci dev/qlxge/qls_ioctl.c optional qlxge pci dev/qlxge/qls_isr.c optional qlxge pci dev/qlxge/qls_os.c optional qlxge pci dev/qlxgb/qla_dbg.c optional qlxgb pci dev/qlxgb/qla_hw.c optional qlxgb pci dev/qlxgb/qla_ioctl.c optional qlxgb pci dev/qlxgb/qla_isr.c optional qlxgb pci dev/qlxgb/qla_misc.c optional qlxgb pci dev/qlxgb/qla_os.c optional qlxgb pci dev/qlxgbe/ql_dbg.c optional qlxgbe pci dev/qlxgbe/ql_hw.c optional qlxgbe pci dev/qlxgbe/ql_ioctl.c optional qlxgbe pci dev/qlxgbe/ql_isr.c optional qlxgbe pci dev/qlxgbe/ql_misc.c optional qlxgbe pci dev/qlxgbe/ql_os.c optional qlxgbe pci dev/qlxgbe/ql_reset.c optional qlxgbe pci dev/sfxge/common/ef10_ev.c optional sfxge pci dev/sfxge/common/ef10_filter.c optional sfxge pci dev/sfxge/common/ef10_intr.c optional sfxge pci dev/sfxge/common/ef10_mac.c optional sfxge pci dev/sfxge/common/ef10_mcdi.c optional sfxge pci dev/sfxge/common/ef10_nic.c optional sfxge pci dev/sfxge/common/ef10_nvram.c optional sfxge pci dev/sfxge/common/ef10_phy.c optional sfxge pci dev/sfxge/common/ef10_rx.c optional sfxge pci dev/sfxge/common/ef10_tx.c optional sfxge pci dev/sfxge/common/ef10_vpd.c optional sfxge pci dev/sfxge/common/efx_bootcfg.c optional sfxge pci dev/sfxge/common/efx_crc32.c optional sfxge pci dev/sfxge/common/efx_ev.c optional sfxge pci dev/sfxge/common/efx_filter.c optional sfxge pci dev/sfxge/common/efx_hash.c optional sfxge pci dev/sfxge/common/efx_intr.c optional sfxge pci dev/sfxge/common/efx_lic.c optional sfxge pci dev/sfxge/common/efx_mac.c optional sfxge pci dev/sfxge/common/efx_mcdi.c optional sfxge pci dev/sfxge/common/efx_mon.c optional sfxge pci dev/sfxge/common/efx_nic.c optional sfxge pci dev/sfxge/common/efx_nvram.c optional sfxge pci dev/sfxge/common/efx_phy.c optional sfxge pci dev/sfxge/common/efx_port.c optional sfxge pci dev/sfxge/common/efx_rx.c optional sfxge pci dev/sfxge/common/efx_sram.c optional sfxge pci dev/sfxge/common/efx_tx.c optional sfxge pci dev/sfxge/common/efx_vpd.c optional sfxge pci dev/sfxge/common/efx_wol.c optional sfxge pci dev/sfxge/common/hunt_nic.c optional sfxge pci dev/sfxge/common/hunt_phy.c optional sfxge pci dev/sfxge/common/mcdi_mon.c optional sfxge pci dev/sfxge/common/medford_nic.c optional sfxge pci dev/sfxge/common/siena_mac.c optional sfxge pci dev/sfxge/common/siena_mcdi.c optional sfxge pci dev/sfxge/common/siena_nic.c optional sfxge pci dev/sfxge/common/siena_nvram.c optional sfxge pci dev/sfxge/common/siena_phy.c optional sfxge pci dev/sfxge/common/siena_sram.c optional sfxge pci dev/sfxge/common/siena_vpd.c optional sfxge pci dev/sfxge/sfxge.c optional sfxge pci dev/sfxge/sfxge_dma.c optional sfxge pci dev/sfxge/sfxge_ev.c optional sfxge pci dev/sfxge/sfxge_intr.c optional sfxge pci dev/sfxge/sfxge_mcdi.c optional sfxge pci dev/sfxge/sfxge_nvram.c optional sfxge pci dev/sfxge/sfxge_port.c optional sfxge pci dev/sfxge/sfxge_rx.c optional sfxge pci dev/sfxge/sfxge_tx.c optional sfxge pci dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa dev/sio/sio_pccard.c optional sio pccard dev/sio/sio_pci.c optional sio pci dev/sio/sio_puc.c optional sio puc dev/speaker/spkr.c optional speaker dev/syscons/apm/apm_saver.c optional apm_saver apm dev/syscons/scterm-teken.c optional sc dev/syscons/scvesactl.c optional sc vga vesa dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/tpm/tpm.c optional tpm dev/tpm/tpm_acpi.c optional tpm acpi dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_x86.c optional uart dev/viawd/viawd.c optional viawd dev/vmware/vmxnet3/if_vmx.c optional vmx dev/wbwd/wbwd.c optional wbwd dev/wpi/if_wpi.c optional wpi dev/xen/pci/xen_acpi_pci.c optional xenhvm dev/xen/pci/xen_pci.c optional xenhvm dev/isci/isci.c optional isci dev/isci/isci_controller.c optional isci dev/isci/isci_domain.c optional isci dev/isci/isci_interrupt.c optional isci dev/isci/isci_io_request.c optional isci dev/isci/isci_logger.c optional isci dev/isci/isci_oem_parameters.c optional isci dev/isci/isci_remote_device.c optional isci dev/isci/isci_sysctl.c optional isci dev/isci/isci_task_request.c optional isci dev/isci/isci_timer.c optional isci dev/isci/scil/sati.c optional isci dev/isci/scil/sati_abort_task_set.c optional isci dev/isci/scil/sati_atapi.c optional isci dev/isci/scil/sati_device.c optional isci dev/isci/scil/sati_inquiry.c optional isci dev/isci/scil/sati_log_sense.c optional isci dev/isci/scil/sati_lun_reset.c optional isci dev/isci/scil/sati_mode_pages.c optional isci dev/isci/scil/sati_mode_select.c optional isci dev/isci/scil/sati_mode_sense.c optional isci dev/isci/scil/sati_mode_sense_10.c optional isci dev/isci/scil/sati_mode_sense_6.c optional isci dev/isci/scil/sati_move.c optional isci dev/isci/scil/sati_passthrough.c optional isci dev/isci/scil/sati_read.c optional isci dev/isci/scil/sati_read_buffer.c optional isci dev/isci/scil/sati_read_capacity.c optional isci dev/isci/scil/sati_reassign_blocks.c optional isci dev/isci/scil/sati_report_luns.c optional isci dev/isci/scil/sati_request_sense.c optional isci dev/isci/scil/sati_start_stop_unit.c optional isci dev/isci/scil/sati_synchronize_cache.c optional isci dev/isci/scil/sati_test_unit_ready.c optional isci dev/isci/scil/sati_unmap.c optional isci dev/isci/scil/sati_util.c optional isci dev/isci/scil/sati_verify.c optional isci dev/isci/scil/sati_write.c optional isci dev/isci/scil/sati_write_and_verify.c optional isci dev/isci/scil/sati_write_buffer.c optional isci dev/isci/scil/sati_write_long.c optional isci dev/isci/scil/sci_abstract_list.c optional isci dev/isci/scil/sci_base_controller.c optional isci dev/isci/scil/sci_base_domain.c optional isci dev/isci/scil/sci_base_iterator.c optional isci dev/isci/scil/sci_base_library.c optional isci dev/isci/scil/sci_base_logger.c optional isci dev/isci/scil/sci_base_memory_descriptor_list.c optional isci dev/isci/scil/sci_base_memory_descriptor_list_decorator.c optional isci dev/isci/scil/sci_base_object.c optional isci dev/isci/scil/sci_base_observer.c optional isci dev/isci/scil/sci_base_phy.c optional isci dev/isci/scil/sci_base_port.c optional isci dev/isci/scil/sci_base_remote_device.c optional isci dev/isci/scil/sci_base_request.c optional isci dev/isci/scil/sci_base_state_machine.c optional isci dev/isci/scil/sci_base_state_machine_logger.c optional isci dev/isci/scil/sci_base_state_machine_observer.c optional isci dev/isci/scil/sci_base_subject.c optional isci dev/isci/scil/sci_util.c optional isci dev/isci/scil/scic_sds_controller.c optional isci dev/isci/scil/scic_sds_library.c optional isci dev/isci/scil/scic_sds_pci.c optional isci dev/isci/scil/scic_sds_phy.c optional isci dev/isci/scil/scic_sds_port.c optional isci dev/isci/scil/scic_sds_port_configuration_agent.c optional isci dev/isci/scil/scic_sds_remote_device.c optional isci dev/isci/scil/scic_sds_remote_node_context.c optional isci dev/isci/scil/scic_sds_remote_node_table.c optional isci dev/isci/scil/scic_sds_request.c optional isci dev/isci/scil/scic_sds_sgpio.c optional isci dev/isci/scil/scic_sds_smp_remote_device.c optional isci dev/isci/scil/scic_sds_smp_request.c optional isci dev/isci/scil/scic_sds_ssp_request.c optional isci dev/isci/scil/scic_sds_stp_packet_request.c optional isci dev/isci/scil/scic_sds_stp_remote_device.c optional isci dev/isci/scil/scic_sds_stp_request.c optional isci dev/isci/scil/scic_sds_unsolicited_frame_control.c optional isci dev/isci/scil/scif_sas_controller.c optional isci dev/isci/scil/scif_sas_controller_state_handlers.c optional isci dev/isci/scil/scif_sas_controller_states.c optional isci dev/isci/scil/scif_sas_domain.c optional isci dev/isci/scil/scif_sas_domain_state_handlers.c optional isci dev/isci/scil/scif_sas_domain_states.c optional isci dev/isci/scil/scif_sas_high_priority_request_queue.c optional isci dev/isci/scil/scif_sas_internal_io_request.c optional isci dev/isci/scil/scif_sas_io_request.c optional isci dev/isci/scil/scif_sas_io_request_state_handlers.c optional isci dev/isci/scil/scif_sas_io_request_states.c optional isci dev/isci/scil/scif_sas_library.c optional isci dev/isci/scil/scif_sas_remote_device.c optional isci dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c optional isci dev/isci/scil/scif_sas_remote_device_ready_substates.c optional isci dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c optional isci dev/isci/scil/scif_sas_remote_device_starting_substates.c optional isci dev/isci/scil/scif_sas_remote_device_state_handlers.c optional isci dev/isci/scil/scif_sas_remote_device_states.c optional isci dev/isci/scil/scif_sas_request.c optional isci dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c optional isci dev/isci/scil/scif_sas_smp_io_request.c optional isci dev/isci/scil/scif_sas_smp_phy.c optional isci dev/isci/scil/scif_sas_smp_remote_device.c optional isci dev/isci/scil/scif_sas_stp_io_request.c optional isci dev/isci/scil/scif_sas_stp_remote_device.c optional isci dev/isci/scil/scif_sas_stp_task_request.c optional isci dev/isci/scil/scif_sas_task_request.c optional isci dev/isci/scil/scif_sas_task_request_state_handlers.c optional isci dev/isci/scil/scif_sas_task_request_states.c optional isci dev/isci/scil/scif_sas_timer.c optional isci isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/kern_clocksource.c standard kern/link_elf_obj.c standard # # IA32 binary support # #amd64/ia32/ia32_exception.S optional compat_freebsd32 amd64/ia32/ia32_reg.c optional compat_freebsd32 amd64/ia32/ia32_signal.c optional compat_freebsd32 amd64/ia32/ia32_sigtramp.S optional compat_freebsd32 amd64/ia32/ia32_syscall.c optional compat_freebsd32 amd64/ia32/ia32_misc.c optional compat_freebsd32 compat/ia32/ia32_sysvec.c optional compat_freebsd32 compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs # # Linux/i386 binary support # amd64/linux32/linux32_dummy.c optional compat_linux32 amd64/linux32/linux32_machdep.c optional compat_linux32 amd64/linux32/linux32_support.s optional compat_linux32 \ dependency "linux32_assym.h" amd64/linux32/linux32_sysent.c optional compat_linux32 amd64/linux32/linux32_sysvec.c optional compat_linux32 compat/linux/linux_emul.c optional compat_linux32 compat/linux/linux_file.c optional compat_linux32 compat/linux/linux_fork.c optional compat_linux32 compat/linux/linux_futex.c optional compat_linux32 compat/linux/linux_getcwd.c optional compat_linux32 compat/linux/linux_ioctl.c optional compat_linux32 compat/linux/linux_ipc.c optional compat_linux32 compat/linux/linux_mib.c optional compat_linux32 compat/linux/linux_misc.c optional compat_linux32 compat/linux/linux_mmap.c optional compat_linux32 compat/linux/linux_signal.c optional compat_linux32 compat/linux/linux_socket.c optional compat_linux32 compat/linux/linux_stats.c optional compat_linux32 compat/linux/linux_sysctl.c optional compat_linux32 compat/linux/linux_time.c optional compat_linux32 compat/linux/linux_timer.c optional compat_linux32 compat/linux/linux_uid16.c optional compat_linux32 compat/linux/linux_util.c optional compat_linux32 compat/linux/linux_vdso.c optional compat_linux32 compat/linux/linux_common.c optional compat_linux32 compat/linux/linux_event.c optional compat_linux32 compat/linux/linux.c optional compat_linux32 dev/amr/amr_linux.c optional compat_linux32 amr dev/mfi/mfi_linux.c optional compat_linux32 mfi # # Windows NDIS driver support # compat/ndis/kern_ndis.c optional ndisapi pci compat/ndis/kern_windrv.c optional ndisapi pci compat/ndis/subr_hal.c optional ndisapi pci compat/ndis/subr_ndis.c optional ndisapi pci compat/ndis/subr_ntoskrnl.c optional ndisapi pci compat/ndis/subr_pe.c optional ndisapi pci compat/ndis/subr_usbd.c optional ndisapi pci compat/ndis/winx64_wrap.S optional ndisapi pci # libkern/memmove.c standard libkern/memset.c standard # # x86 real mode BIOS emulator, required by dpms/pci/vesa # compat/x86bios/x86bios.c optional x86bios | dpms | pci | vesa contrib/x86emu/x86emu.c optional x86bios | dpms | pci | vesa # # bvm console # dev/bvm/bvm_console.c optional bvmconsole dev/bvm/bvm_dbg.c optional bvmdebug # # x86 shared code between IA32, AMD64 and PC98 architectures # x86/acpica/OsdEnvironment.c optional acpi x86/acpica/acpi_apm.c optional acpi x86/acpica/acpi_wakeup.c optional acpi x86/acpica/madt.c optional acpi x86/acpica/srat.c optional acpi x86/bios/smbios.c optional smbios x86/bios/vpd.c optional vpd x86/cpufreq/powernow.c optional cpufreq x86/cpufreq/est.c optional cpufreq x86/cpufreq/hwpstate.c optional cpufreq x86/cpufreq/p4tcc.c optional cpufreq x86/iommu/busdma_dmar.c optional acpi acpi_dmar pci x86/iommu/intel_ctx.c optional acpi acpi_dmar pci x86/iommu/intel_drv.c optional acpi acpi_dmar pci x86/iommu/intel_fault.c optional acpi acpi_dmar pci x86/iommu/intel_gas.c optional acpi acpi_dmar pci x86/iommu/intel_idpgtbl.c optional acpi acpi_dmar pci x86/iommu/intel_intrmap.c optional acpi acpi_dmar pci x86/iommu/intel_qi.c optional acpi acpi_dmar pci x86/iommu/intel_quirks.c optional acpi acpi_dmar pci x86/iommu/intel_utils.c optional acpi acpi_dmar pci x86/isa/atpic.c optional atpic isa x86/isa/atrtc.c standard x86/isa/clock.c standard x86/isa/elcr.c optional atpic isa | mptable x86/isa/isa.c standard x86/isa/isa_dma.c standard x86/isa/nmi.c standard x86/isa/orm.c optional isa x86/pci/pci_bus.c optional pci x86/pci/qpi.c optional pci x86/x86/autoconf.c standard x86/x86/bus_machdep.c standard x86/x86/busdma_bounce.c standard x86/x86/busdma_machdep.c standard x86/x86/cpu_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/fdt_machdep.c optional fdt x86/x86/identcpu.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c standard x86/x86/legacy.c standard x86/x86/local_apic.c standard x86/x86/mca.c standard x86/x86/mptable.c optional mptable x86/x86/mptable_pci.c optional mptable pci x86/x86/mp_x86.c optional smp x86/x86/mp_watchdog.c optional mp_watchdog smp x86/x86/msi.c optional pci x86/x86/nexus.c standard x86/x86/pvclock.c standard x86/x86/stack_machdep.c optional ddb | stack x86/x86/tsc.c standard x86/x86/delay.c standard x86/xen/hvm.c optional xenhvm x86/xen/xen_intr.c optional xenhvm x86/xen/pv.c optional xenhvm x86/xen/pvcpu_enum.c optional xenhvm x86/xen/xen_apic.c optional xenhvm x86/xen/xenpv.c optional xenhvm x86/xen/xen_nexus.c optional xenhvm x86/xen/xen_msi.c optional xenhvm x86/xen/xen_pci_bus.c optional xenhvm Index: head/sys/conf/files.arm64 =================================================================== --- head/sys/conf/files.arm64 (revision 304553) +++ head/sys/conf/files.arm64 (revision 304554) @@ -1,114 +1,114 @@ # $FreeBSD$ cloudabi64_vdso.o optional compat_cloudabi64 \ - dependency "$S/contrib/cloudabi/cloudabi_vdso_aarch64.c" \ - compile-with "${CC} -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s -D_KERNEL -I. -I$S -I$S/contrib/cloudabi -O2 -fomit-frame-pointer $S/contrib/cloudabi/cloudabi_vdso_aarch64.c -o ${.TARGET}" \ + dependency "$S/contrib/cloudabi/cloudabi_vdso_aarch64.S" \ + compile-with "${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib -Wl,-T$S/compat/cloudabi64/cloudabi64_vdso.lds.s $S/contrib/cloudabi/cloudabi_vdso_aarch64.S -o ${.TARGET}" \ no-obj no-implicit-rule \ clean "cloudabi64_vdso.o" # cloudabi64_vdso_blob.o optional compat_cloudabi64 \ dependency "cloudabi64_vdso.o" \ compile-with "${OBJCOPY} --input-target binary --output-target elf64-littleaarch64 --binary-architecture aarch64 cloudabi64_vdso.o ${.TARGET}" \ no-implicit-rule \ clean "cloudabi64_vdso_blob.o" # arm/arm/generic_timer.c standard arm/arm/gic.c standard arm/arm/gic_fdt.c optional fdt arm/arm/pmu.c standard arm64/acpica/acpi_machdep.c optional acpi arm64/acpica/OsdEnvironment.c optional acpi arm64/acpica/acpi_wakeup.c optional acpi arm64/acpica/pci_cfgreg.c optional acpi pci arm64/arm64/autoconf.c standard arm64/arm64/bcopy.c standard arm64/arm64/bus_machdep.c standard arm64/arm64/bus_space_asm.S standard arm64/arm64/busdma_bounce.c standard arm64/arm64/busdma_machdep.c standard arm64/arm64/bzero.S standard arm64/arm64/clock.c standard arm64/arm64/copyinout.S standard arm64/arm64/copystr.c standard arm64/arm64/cpufunc_asm.S standard arm64/arm64/db_disasm.c optional ddb arm64/arm64/db_interface.c optional ddb arm64/arm64/db_trace.c optional ddb arm64/arm64/debug_monitor.c optional kdb arm64/arm64/disassem.c optional ddb arm64/arm64/dump_machdep.c standard arm64/arm64/elf_machdep.c standard arm64/arm64/exception.S standard arm64/arm64/gicv3_its.c optional intrng arm64/arm64/gic_v3.c standard arm64/arm64/gic_v3_fdt.c optional fdt arm64/arm64/identcpu.c standard arm64/arm64/in_cksum.c optional inet | inet6 arm64/arm64/locore.S standard no-obj arm64/arm64/machdep.c standard arm64/arm64/mem.c standard arm64/arm64/minidump_machdep.c standard arm64/arm64/mp_machdep.c optional smp arm64/arm64/nexus.c standard arm64/arm64/ofw_machdep.c optional fdt arm64/arm64/pmap.c standard arm64/arm64/stack_machdep.c optional ddb | stack arm64/arm64/support.S standard arm64/arm64/swtch.S standard arm64/arm64/sys_machdep.c standard arm64/arm64/trap.c standard arm64/arm64/uio_machdep.c standard arm64/arm64/uma_machdep.c standard arm64/arm64/unwind.c optional ddb | kdtrace_hooks | stack arm64/arm64/vfp.c standard arm64/arm64/vm_machdep.c standard arm64/cavium/thunder_pcie_fdt.c optional soc_cavm_thunderx pci fdt arm64/cavium/thunder_pcie_pem.c optional soc_cavm_thunderx pci arm64/cavium/thunder_pcie_pem_fdt.c optional soc_cavm_thunderx pci fdt arm64/cavium/thunder_pcie_common.c optional soc_cavm_thunderx pci arm64/cloudabi64/cloudabi64_sysvec.c optional compat_cloudabi64 crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/acpica/acpi_if.m optional acpi dev/ahci/ahci_generic.c optional ahci fdt dev/hwpmc/hwpmc_arm64.c optional hwpmc dev/hwpmc/hwpmc_arm64_md.c optional hwpmc dev/mmc/host/dwmmc.c optional dwmmc fdt dev/mmc/host/dwmmc_hisi.c optional dwmmc fdt soc_hisi_hi6220 dev/ofw/ofw_cpu.c optional fdt dev/ofw/ofwpci.c optional fdt pci dev/pci/pci_host_generic.c optional pci fdt dev/psci/psci.c optional psci dev/psci/psci_arm64.S optional psci dev/uart/uart_cpu_fdt.c optional uart fdt dev/uart/uart_dev_pl011.c optional uart pl011 dev/usb/controller/dwc_otg_hisi.c optional dwcotg fdt soc_hisi_hi6220 dev/usb/controller/generic_ehci.c optional ehci acpi dev/usb/controller/generic_ohci.c optional ohci fdt dev/usb/controller/generic_usb_if.m optional ohci fdt dev/vnic/mrml_bridge.c optional vnic fdt dev/vnic/nic_main.c optional vnic pci dev/vnic/nicvf_main.c optional vnic pci pci_iov dev/vnic/nicvf_queues.c optional vnic pci pci_iov dev/vnic/thunder_bgx_fdt.c optional vnic fdt dev/vnic/thunder_bgx.c optional vnic pci dev/vnic/thunder_mdio_fdt.c optional vnic fdt dev/vnic/thunder_mdio.c optional vnic dev/vnic/lmac_if.m optional inet | inet6 | vnic kern/kern_clocksource.c standard kern/msi_if.m optional intrng kern/pic_if.m optional intrng kern/subr_devmap.c standard kern/subr_intr.c optional intrng libkern/bcmp.c standard libkern/ffs.c standard libkern/ffsl.c standard libkern/ffsll.c standard libkern/fls.c standard libkern/flsl.c standard libkern/flsll.c standard libkern/memmove.c standard libkern/memset.c standard cddl/contrib/opensolaris/common/atomic/aarch64/opensolaris_atomic.S optional zfs | dtrace compile-with "${CDDL_C}" cddl/dev/dtrace/aarch64/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}" cddl/dev/dtrace/aarch64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/aarch64/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" Index: head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c (revision 304553) +++ head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c (nonexistent) @@ -1,1058 +0,0 @@ -// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// This file is automatically generated. Do not edit. -// -// Source: https://github.com/NuxiNL/cloudabi - -#include - -cloudabi_errno_t cloudabi_sys_clock_res_get(cloudabi_clockid_t clock_id, - cloudabi_timestamp_t *resolution) { - register uint64_t reg_x8 asm("x8") = 0; - register uint64_t reg_x0 asm("x0") = (uint64_t)clock_id; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - if (okay) { - *resolution = (cloudabi_timestamp_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_clock_time_get(cloudabi_clockid_t clock_id, - cloudabi_timestamp_t precision, - cloudabi_timestamp_t *time) { - register uint64_t reg_x8 asm("x8") = 1; - register uint64_t reg_x0 asm("x0") = (uint64_t)clock_id; - register uint64_t reg_x1 asm("x1") = (uint64_t)precision; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *time = (cloudabi_timestamp_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_condvar_signal(_Atomic(cloudabi_condvar_t) * - condvar, - cloudabi_scope_t scope, - cloudabi_nthreads_t nwaiters) { - register uint64_t reg_x8 asm("x8") = 2; - register uint64_t reg_x0 asm("x0") = (uint64_t)condvar; - register uint64_t reg_x1 asm("x1") = (uint64_t)scope; - register uint64_t reg_x2 asm("x2") = (uint64_t)nwaiters; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_close(cloudabi_fd_t fd) { - register uint64_t reg_x8 asm("x8") = 3; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_create1(cloudabi_filetype_t type, - cloudabi_fd_t *fd) { - register uint64_t reg_x8 asm("x8") = 4; - register uint64_t reg_x0 asm("x0") = (uint64_t)type; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - if (okay) { - *fd = (cloudabi_fd_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_create2(cloudabi_filetype_t type, - cloudabi_fd_t *fd1, - cloudabi_fd_t *fd2) { - register uint64_t reg_x8 asm("x8") = 5; - register uint64_t reg_x0 asm("x0") = (uint64_t)type; - register uint64_t reg_x1 asm("x1"); - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0), "=r"(reg_x1) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *fd1 = (cloudabi_fd_t)reg_x0; - *fd2 = (cloudabi_fd_t)reg_x1; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_datasync(cloudabi_fd_t fd) { - register uint64_t reg_x8 asm("x8") = 6; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_dup(cloudabi_fd_t from, cloudabi_fd_t *fd) { - register uint64_t reg_x8 asm("x8") = 7; - register uint64_t reg_x0 asm("x0") = (uint64_t)from; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - if (okay) { - *fd = (cloudabi_fd_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_pread(cloudabi_fd_t fd, - const cloudabi_iovec_t *iov, - size_t iovcnt, - cloudabi_filesize_t offset, - size_t *nread) { - register uint64_t reg_x8 asm("x8") = 8; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)iov; - register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt; - register uint64_t reg_x3 asm("x3") = (uint64_t)offset; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", - "d6", "d7"); - if (okay) { - *nread = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_pwrite(cloudabi_fd_t fd, - const cloudabi_ciovec_t *iov, - size_t iovcnt, - cloudabi_filesize_t offset, - size_t *nwritten) { - register uint64_t reg_x8 asm("x8") = 9; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)iov; - register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt; - register uint64_t reg_x3 asm("x3") = (uint64_t)offset; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", - "d6", "d7"); - if (okay) { - *nwritten = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_read(cloudabi_fd_t fd, - const cloudabi_iovec_t *iov, - size_t iovcnt, size_t *nread) { - register uint64_t reg_x8 asm("x8") = 10; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)iov; - register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *nread = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_replace(cloudabi_fd_t from, cloudabi_fd_t to) { - register uint64_t reg_x8 asm("x8") = 11; - register uint64_t reg_x0 asm("x0") = (uint64_t)from; - register uint64_t reg_x1 asm("x1") = (uint64_t)to; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_seek(cloudabi_fd_t fd, - cloudabi_filedelta_t offset, - cloudabi_whence_t whence, - cloudabi_filesize_t *newoffset) { - register uint64_t reg_x8 asm("x8") = 12; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)offset; - register uint64_t reg_x2 asm("x2") = (uint64_t)whence; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *newoffset = (cloudabi_filesize_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_stat_get(cloudabi_fd_t fd, - cloudabi_fdstat_t *buf) { - register uint64_t reg_x8 asm("x8") = 13; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_stat_put(cloudabi_fd_t fd, - const cloudabi_fdstat_t *buf, - cloudabi_fdsflags_t flags) { - register uint64_t reg_x8 asm("x8") = 14; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - register uint64_t reg_x2 asm("x2") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_sync(cloudabi_fd_t fd) { - register uint64_t reg_x8 asm("x8") = 15; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_fd_write(cloudabi_fd_t fd, - const cloudabi_ciovec_t *iov, - size_t iovcnt, size_t *nwritten) { - register uint64_t reg_x8 asm("x8") = 16; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)iov; - register uint64_t reg_x2 asm("x2") = (uint64_t)iovcnt; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *nwritten = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_advise(cloudabi_fd_t fd, - cloudabi_filesize_t offset, - cloudabi_filesize_t len, - cloudabi_advice_t advice) { - register uint64_t reg_x8 asm("x8") = 17; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)offset; - register uint64_t reg_x2 asm("x2") = (uint64_t)len; - register uint64_t reg_x3 asm("x3") = (uint64_t)advice; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_allocate(cloudabi_fd_t fd, - cloudabi_filesize_t offset, - cloudabi_filesize_t len) { - register uint64_t reg_x8 asm("x8") = 18; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)offset; - register uint64_t reg_x2 asm("x2") = (uint64_t)len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_create(cloudabi_fd_t fd, const char *path, - size_t pathlen, - cloudabi_filetype_t type) { - register uint64_t reg_x8 asm("x8") = 19; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)type; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_link(cloudabi_lookup_t fd1, - const char *path1, size_t path1len, - cloudabi_fd_t fd2, const char *path2, - size_t path2len) { - register uint64_t reg_x8 asm("x8") = 20; - register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd1; - register uint64_t reg_x1 asm("x1") = (uint64_t)path1; - register uint64_t reg_x2 asm("x2") = (uint64_t)path1len; - register uint64_t reg_x3 asm("x3") = (uint64_t)fd2; - register uint64_t reg_x4 asm("x4") = (uint64_t)path2; - register uint64_t reg_x5 asm("x5") = (uint64_t)path2len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), - "r"(reg_x3), "r"(reg_x4), "r"(reg_x5) - : "memory", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", - "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", - "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_open(cloudabi_lookup_t dirfd, - const char *path, size_t pathlen, - cloudabi_oflags_t oflags, - const cloudabi_fdstat_t *fds, - cloudabi_fd_t *fd) { - register uint64_t reg_x8 asm("x8") = 21; - register uint64_t reg_x0 asm("x0") = *(uint64_t *)&dirfd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)oflags; - register uint64_t reg_x4 asm("x4") = (uint64_t)fds; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3), - "r"(reg_x4) - : "memory", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", - "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", "d6", - "d7"); - if (okay) { - *fd = (cloudabi_fd_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_readdir(cloudabi_fd_t fd, void *buf, - size_t nbyte, - cloudabi_dircookie_t cookie, - size_t *bufused) { - register uint64_t reg_x8 asm("x8") = 22; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - register uint64_t reg_x2 asm("x2") = (uint64_t)nbyte; - register uint64_t reg_x3 asm("x3") = (uint64_t)cookie; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", - "d6", "d7"); - if (okay) { - *bufused = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_readlink(cloudabi_fd_t fd, const char *path, - size_t pathlen, char *buf, - size_t bufsize, size_t *bufused) { - register uint64_t reg_x8 asm("x8") = 23; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)buf; - register uint64_t reg_x4 asm("x4") = (uint64_t)bufsize; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3), - "r"(reg_x4) - : "memory", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", - "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", "d6", - "d7"); - if (okay) { - *bufused = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_rename(cloudabi_fd_t oldfd, const char *old, - size_t oldlen, cloudabi_fd_t newfd, - const char *new, size_t newlen) { - register uint64_t reg_x8 asm("x8") = 24; - register uint64_t reg_x0 asm("x0") = (uint64_t)oldfd; - register uint64_t reg_x1 asm("x1") = (uint64_t)old; - register uint64_t reg_x2 asm("x2") = (uint64_t)oldlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)newfd; - register uint64_t reg_x4 asm("x4") = (uint64_t) new; - register uint64_t reg_x5 asm("x5") = (uint64_t)newlen; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), - "r"(reg_x3), "r"(reg_x4), "r"(reg_x5) - : "memory", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", - "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", - "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_stat_fget(cloudabi_fd_t fd, - cloudabi_filestat_t *buf) { - register uint64_t reg_x8 asm("x8") = 25; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_stat_fput(cloudabi_fd_t fd, - const cloudabi_filestat_t *buf, - cloudabi_fsflags_t flags) { - register uint64_t reg_x8 asm("x8") = 26; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - register uint64_t reg_x2 asm("x2") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_stat_get(cloudabi_lookup_t fd, - const char *path, size_t pathlen, - cloudabi_filestat_t *buf) { - register uint64_t reg_x8 asm("x8") = 27; - register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)buf; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_stat_put(cloudabi_lookup_t fd, - const char *path, size_t pathlen, - const cloudabi_filestat_t *buf, - cloudabi_fsflags_t flags) { - register uint64_t reg_x8 asm("x8") = 28; - register uint64_t reg_x0 asm("x0") = *(uint64_t *)&fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)buf; - register uint64_t reg_x4 asm("x4") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), - "r"(reg_x3), "r"(reg_x4) - : "memory", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_symlink(const char *path1, size_t path1len, - cloudabi_fd_t fd, const char *path2, - size_t path2len) { - register uint64_t reg_x8 asm("x8") = 29; - register uint64_t reg_x0 asm("x0") = (uint64_t)path1; - register uint64_t reg_x1 asm("x1") = (uint64_t)path1len; - register uint64_t reg_x2 asm("x2") = (uint64_t)fd; - register uint64_t reg_x3 asm("x3") = (uint64_t)path2; - register uint64_t reg_x4 asm("x4") = (uint64_t)path2len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), - "r"(reg_x3), "r"(reg_x4) - : "memory", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_file_unlink(cloudabi_fd_t fd, const char *path, - size_t pathlen, - cloudabi_ulflags_t flags) { - register uint64_t reg_x8 asm("x8") = 30; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)path; - register uint64_t reg_x2 asm("x2") = (uint64_t)pathlen; - register uint64_t reg_x3 asm("x3") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_lock_unlock(_Atomic(cloudabi_lock_t) * lock, - cloudabi_scope_t scope) { - register uint64_t reg_x8 asm("x8") = 31; - register uint64_t reg_x0 asm("x0") = (uint64_t)lock; - register uint64_t reg_x1 asm("x1") = (uint64_t)scope; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_advise(void *addr, size_t len, - cloudabi_advice_t advice) { - register uint64_t reg_x8 asm("x8") = 32; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - register uint64_t reg_x2 asm("x2") = (uint64_t)advice; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_lock(const void *addr, size_t len) { - register uint64_t reg_x8 asm("x8") = 33; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_map(void *addr, size_t len, - cloudabi_mprot_t prot, - cloudabi_mflags_t flags, cloudabi_fd_t fd, - cloudabi_filesize_t off, void **mem) { - register uint64_t reg_x8 asm("x8") = 34; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - register uint64_t reg_x2 asm("x2") = (uint64_t)prot; - register uint64_t reg_x3 asm("x3") = (uint64_t)flags; - register uint64_t reg_x4 asm("x4") = (uint64_t)fd; - register uint64_t reg_x5 asm("x5") = (uint64_t)off; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3), - "r"(reg_x4), "r"(reg_x5) - : "memory", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", "x15", - "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - if (okay) { - *mem = (void *)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_protect(void *addr, size_t len, - cloudabi_mprot_t prot) { - register uint64_t reg_x8 asm("x8") = 35; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - register uint64_t reg_x2 asm("x2") = (uint64_t)prot; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_sync(void *addr, size_t len, - cloudabi_msflags_t flags) { - register uint64_t reg_x8 asm("x8") = 36; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - register uint64_t reg_x2 asm("x2") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_unlock(const void *addr, size_t len) { - register uint64_t reg_x8 asm("x8") = 37; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_mem_unmap(void *addr, size_t len) { - register uint64_t reg_x8 asm("x8") = 38; - register uint64_t reg_x0 asm("x0") = (uint64_t)addr; - register uint64_t reg_x1 asm("x1") = (uint64_t)len; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_poll(const cloudabi_subscription_t *in, - cloudabi_event_t *out, size_t nsubscriptions, - size_t *nevents) { - register uint64_t reg_x8 asm("x8") = 39; - register uint64_t reg_x0 asm("x0") = (uint64_t)in; - register uint64_t reg_x1 asm("x1") = (uint64_t)out; - register uint64_t reg_x2 asm("x2") = (uint64_t)nsubscriptions; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *nevents = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_poll_fd(cloudabi_fd_t fd, - const cloudabi_subscription_t *in, - size_t nin, cloudabi_event_t *out, - size_t nout, - const cloudabi_subscription_t *timeout, - size_t *nevents) { - register uint64_t reg_x8 asm("x8") = 40; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)in; - register uint64_t reg_x2 asm("x2") = (uint64_t)nin; - register uint64_t reg_x3 asm("x3") = (uint64_t)out; - register uint64_t reg_x4 asm("x4") = (uint64_t)nout; - register uint64_t reg_x5 asm("x5") = (uint64_t)timeout; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3), - "r"(reg_x4), "r"(reg_x5) - : "memory", "x6", "x7", "x9", "x10", "x11", "x12", "x13", "x14", "x15", - "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - if (okay) { - *nevents = (size_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_proc_exec(cloudabi_fd_t fd, const void *data, - size_t datalen, - const cloudabi_fd_t *fds, - size_t fdslen) { - register uint64_t reg_x8 asm("x8") = 41; - register uint64_t reg_x0 asm("x0") = (uint64_t)fd; - register uint64_t reg_x1 asm("x1") = (uint64_t)data; - register uint64_t reg_x2 asm("x2") = (uint64_t)datalen; - register uint64_t reg_x3 asm("x3") = (uint64_t)fds; - register uint64_t reg_x4 asm("x4") = (uint64_t)fdslen; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), - "r"(reg_x3), "r"(reg_x4) - : "memory", "x5", "x6", "x7", "x9", "x10", "x11", "x12", "x13", - "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - return reg_x0; -} - -_Noreturn void cloudabi_sys_proc_exit(cloudabi_exitcode_t rval) { - register uint64_t reg_x8 asm("x8") = 42; - register uint64_t reg_x0 asm("x0") = (uint64_t)rval; - asm volatile("\tsvc 0\n" - : - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - for (;;) - ; -} - -cloudabi_errno_t cloudabi_sys_proc_fork(cloudabi_fd_t *fd, - cloudabi_tid_t *tid) { - register uint64_t reg_x8 asm("x8") = 43; - register uint64_t reg_x0 asm("x0"); - register uint64_t reg_x1 asm("x1"); - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0), "=r"(reg_x1) - : "r"(reg_x8) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *fd = (cloudabi_fd_t)reg_x0; - *tid = (cloudabi_tid_t)reg_x1; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_proc_raise(cloudabi_signal_t sig) { - register uint64_t reg_x8 asm("x8") = 44; - register uint64_t reg_x0 asm("x0") = (uint64_t)sig; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_random_get(void *buf, size_t nbyte) { - register uint64_t reg_x8 asm("x8") = 45; - register uint64_t reg_x0 asm("x0") = (uint64_t)buf; - register uint64_t reg_x1 asm("x1") = (uint64_t)nbyte; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_accept(cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_fd_t *conn) { - register uint64_t reg_x8 asm("x8") = 46; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", "d4", - "d5", "d6", "d7"); - if (okay) { - *conn = (cloudabi_fd_t)reg_x0; - return 0; - } - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_bind(cloudabi_fd_t sock, cloudabi_fd_t fd, - const char *path, size_t pathlen) { - register uint64_t reg_x8 asm("x8") = 47; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)fd; - register uint64_t reg_x2 asm("x2") = (uint64_t)path; - register uint64_t reg_x3 asm("x3") = (uint64_t)pathlen; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_connect(cloudabi_fd_t sock, cloudabi_fd_t fd, - const char *path, size_t pathlen) { - register uint64_t reg_x8 asm("x8") = 48; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)fd; - register uint64_t reg_x2 asm("x2") = (uint64_t)path; - register uint64_t reg_x3 asm("x3") = (uint64_t)pathlen; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2), "r"(reg_x3) - : "memory", "x4", "x5", "x6", "x7", "x9", "x10", "x11", "x12", - "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", - "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_listen(cloudabi_fd_t sock, - cloudabi_backlog_t backlog) { - register uint64_t reg_x8 asm("x8") = 49; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)backlog; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_recv(cloudabi_fd_t sock, - const cloudabi_recv_in_t *in, - cloudabi_recv_out_t *out) { - register uint64_t reg_x8 asm("x8") = 50; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)in; - register uint64_t reg_x2 asm("x2") = (uint64_t)out; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_send(cloudabi_fd_t sock, - const cloudabi_send_in_t *in, - cloudabi_send_out_t *out) { - register uint64_t reg_x8 asm("x8") = 51; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)in; - register uint64_t reg_x2 asm("x2") = (uint64_t)out; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_shutdown(cloudabi_fd_t sock, - cloudabi_sdflags_t how) { - register uint64_t reg_x8 asm("x8") = 52; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)how; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_sock_stat_get(cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_ssflags_t flags) { - register uint64_t reg_x8 asm("x8") = 53; - register uint64_t reg_x0 asm("x0") = (uint64_t)sock; - register uint64_t reg_x1 asm("x1") = (uint64_t)buf; - register uint64_t reg_x2 asm("x2") = (uint64_t)flags; - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1), "r"(reg_x2) - : "memory", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", - "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} - -cloudabi_errno_t cloudabi_sys_thread_create(cloudabi_threadattr_t *attr, - cloudabi_tid_t *tid) { - register uint64_t reg_x8 asm("x8") = 54; - register uint64_t reg_x0 asm("x0") = (uint64_t)attr; - register uint64_t okay; - asm volatile( - "\tsvc 0\n" - "\tcset %0, cc\n" - : "=r"(okay), "=r"(reg_x0) - : "r"(reg_x8), "r"(reg_x0) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", "x11", - "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", "d1", "d2", "d3", - "d4", "d5", "d6", "d7"); - if (okay) { - *tid = (cloudabi_tid_t)reg_x0; - return 0; - } - return reg_x0; -} - -_Noreturn void cloudabi_sys_thread_exit(_Atomic(cloudabi_lock_t) * lock, - cloudabi_scope_t scope) { - register uint64_t reg_x8 asm("x8") = 55; - register uint64_t reg_x0 asm("x0") = (uint64_t)lock; - register uint64_t reg_x1 asm("x1") = (uint64_t)scope; - asm volatile("\tsvc 0\n" - : - : "r"(reg_x8), "r"(reg_x0), "r"(reg_x1) - : "memory", "x2", "x3", "x4", "x5", "x6", "x7", "x9", "x10", - "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "d0", - "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - for (;;) - ; -} - -cloudabi_errno_t cloudabi_sys_thread_yield(void) { - register uint64_t reg_x8 asm("x8") = 56; - register uint64_t reg_x0 asm("x0"); - asm volatile("\tsvc 0\n" - : "=r"(reg_x0) - : "r"(reg_x8) - : "memory", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x9", - "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", - "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7"); - return reg_x0; -} Property changes on: head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c (revision 304553) +++ head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c (nonexistent) @@ -1,950 +0,0 @@ -// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. -// -// This file is automatically generated. Do not edit. -// -// Source: https://github.com/NuxiNL/cloudabi - -#include - -cloudabi_errno_t cloudabi_sys_clock_res_get(cloudabi_clockid_t clock_id, - cloudabi_timestamp_t *resolution) { - register uint64_t reg_rax asm("rax") = 0; - register uint64_t reg_rdi asm("rdi") = (uint64_t)clock_id; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *resolution = (cloudabi_timestamp_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_clock_time_get(cloudabi_clockid_t clock_id, - cloudabi_timestamp_t precision, - cloudabi_timestamp_t *time) { - register uint64_t reg_rax asm("rax") = 1; - register uint64_t reg_rdi asm("rdi") = (uint64_t)clock_id; - register uint64_t reg_rsi asm("rsi") = (uint64_t)precision; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *time = (cloudabi_timestamp_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_condvar_signal(_Atomic(cloudabi_condvar_t) * - condvar, - cloudabi_scope_t scope, - cloudabi_nthreads_t nwaiters) { - register uint64_t reg_rax asm("rax") = 2; - register uint64_t reg_rdi asm("rdi") = (uint64_t)condvar; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nwaiters; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_close(cloudabi_fd_t fd) { - register uint64_t reg_rax asm("rax") = 3; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_create1(cloudabi_filetype_t type, - cloudabi_fd_t *fd) { - register uint64_t reg_rax asm("rax") = 4; - register uint64_t reg_rdi asm("rdi") = (uint64_t)type; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_create2(cloudabi_filetype_t type, - cloudabi_fd_t *fd1, - cloudabi_fd_t *fd2) { - register uint64_t reg_rax asm("rax") = 5; - register uint64_t reg_rdi asm("rdi") = (uint64_t)type; - register uint64_t reg_rdx asm("rdx"); - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax), "=r"(reg_rdx) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd1 = (cloudabi_fd_t)reg_rax; - *fd2 = (cloudabi_fd_t)reg_rdx; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_datasync(cloudabi_fd_t fd) { - register uint64_t reg_rax asm("rax") = 6; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_dup(cloudabi_fd_t from, cloudabi_fd_t *fd) { - register uint64_t reg_rax asm("rax") = 7; - register uint64_t reg_rdi asm("rdi") = (uint64_t)from; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_pread(cloudabi_fd_t fd, - const cloudabi_iovec_t *iov, - size_t iovcnt, - cloudabi_filesize_t offset, - size_t *nread) { - register uint64_t reg_rax asm("rax") = 8; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register uint64_t reg_r10 asm("r10") = (uint64_t)offset; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - if (okay) { - *nread = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_pwrite(cloudabi_fd_t fd, - const cloudabi_ciovec_t *iov, - size_t iovcnt, - cloudabi_filesize_t offset, - size_t *nwritten) { - register uint64_t reg_rax asm("rax") = 9; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register uint64_t reg_r10 asm("r10") = (uint64_t)offset; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - if (okay) { - *nwritten = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_read(cloudabi_fd_t fd, - const cloudabi_iovec_t *iov, - size_t iovcnt, size_t *nread) { - register uint64_t reg_rax asm("rax") = 10; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *nread = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_replace(cloudabi_fd_t from, cloudabi_fd_t to) { - register uint64_t reg_rax asm("rax") = 11; - register uint64_t reg_rdi asm("rdi") = (uint64_t)from; - register uint64_t reg_rsi asm("rsi") = (uint64_t)to; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_seek(cloudabi_fd_t fd, - cloudabi_filedelta_t offset, - cloudabi_whence_t whence, - cloudabi_filesize_t *newoffset) { - register uint64_t reg_rax asm("rax") = 12; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)whence; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *newoffset = (cloudabi_filesize_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_stat_get(cloudabi_fd_t fd, - cloudabi_fdstat_t *buf) { - register uint64_t reg_rax asm("rax") = 13; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_stat_put(cloudabi_fd_t fd, - const cloudabi_fdstat_t *buf, - cloudabi_fdsflags_t flags) { - register uint64_t reg_rax asm("rax") = 14; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_sync(cloudabi_fd_t fd) { - register uint64_t reg_rax asm("rax") = 15; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_fd_write(cloudabi_fd_t fd, - const cloudabi_ciovec_t *iov, - size_t iovcnt, size_t *nwritten) { - register uint64_t reg_rax asm("rax") = 16; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)iov; - register uint64_t reg_rdx asm("rdx") = (uint64_t)iovcnt; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *nwritten = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_advise(cloudabi_fd_t fd, - cloudabi_filesize_t offset, - cloudabi_filesize_t len, - cloudabi_advice_t advice) { - register uint64_t reg_rax asm("rax") = 17; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)len; - register uint64_t reg_r10 asm("r10") = (uint64_t)advice; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_allocate(cloudabi_fd_t fd, - cloudabi_filesize_t offset, - cloudabi_filesize_t len) { - register uint64_t reg_rax asm("rax") = 18; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)offset; - register uint64_t reg_rdx asm("rdx") = (uint64_t)len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_create(cloudabi_fd_t fd, const char *path, - size_t pathlen, - cloudabi_filetype_t type) { - register uint64_t reg_rax asm("rax") = 19; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)type; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_link(cloudabi_lookup_t fd1, - const char *path1, size_t path1len, - cloudabi_fd_t fd2, const char *path2, - size_t path2len) { - register uint64_t reg_rax asm("rax") = 20; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd1; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path1; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path1len; - register uint64_t reg_r10 asm("r10") = (uint64_t)fd2; - register uint64_t reg_r8 asm("r8") = (uint64_t)path2; - register uint64_t reg_r9 asm("r9") = (uint64_t)path2len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10), "r"(reg_r8), "r"(reg_r9) - : "memory", "rcx", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_open(cloudabi_lookup_t dirfd, - const char *path, size_t pathlen, - cloudabi_oflags_t oflags, - const cloudabi_fdstat_t *fds, - cloudabi_fd_t *fd) { - register uint64_t reg_rax asm("rax") = 21; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&dirfd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)oflags; - register uint64_t reg_r8 asm("r8") = (uint64_t)fds; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10), - "r"(reg_r8) - : "memory", "rcx", "r9", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_readdir(cloudabi_fd_t fd, void *buf, - size_t nbyte, - cloudabi_dircookie_t cookie, - size_t *bufused) { - register uint64_t reg_rax asm("rax") = 22; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nbyte; - register uint64_t reg_r10 asm("r10") = (uint64_t)cookie; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - if (okay) { - *bufused = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_readlink(cloudabi_fd_t fd, const char *path, - size_t pathlen, char *buf, - size_t bufsize, size_t *bufused) { - register uint64_t reg_rax asm("rax") = 23; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - register uint64_t reg_r8 asm("r8") = (uint64_t)bufsize; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10), - "r"(reg_r8) - : "memory", "rcx", "r9", "r11"); - if (okay) { - *bufused = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_rename(cloudabi_fd_t oldfd, const char *old, - size_t oldlen, cloudabi_fd_t newfd, - const char *new, size_t newlen) { - register uint64_t reg_rax asm("rax") = 24; - register uint64_t reg_rdi asm("rdi") = (uint64_t)oldfd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)old; - register uint64_t reg_rdx asm("rdx") = (uint64_t)oldlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)newfd; - register uint64_t reg_r8 asm("r8") = (uint64_t) new; - register uint64_t reg_r9 asm("r9") = (uint64_t)newlen; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10), "r"(reg_r8), "r"(reg_r9) - : "memory", "rcx", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_stat_fget(cloudabi_fd_t fd, - cloudabi_filestat_t *buf) { - register uint64_t reg_rax asm("rax") = 25; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_stat_fput(cloudabi_fd_t fd, - const cloudabi_filestat_t *buf, - cloudabi_fsflags_t flags) { - register uint64_t reg_rax asm("rax") = 26; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_stat_get(cloudabi_lookup_t fd, - const char *path, size_t pathlen, - cloudabi_filestat_t *buf) { - register uint64_t reg_rax asm("rax") = 27; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_stat_put(cloudabi_lookup_t fd, - const char *path, size_t pathlen, - const cloudabi_filestat_t *buf, - cloudabi_fsflags_t flags) { - register uint64_t reg_rax asm("rax") = 28; - register uint64_t reg_rdi asm("rdi") = *(uint64_t *)&fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)buf; - register uint64_t reg_r8 asm("r8") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10), "r"(reg_r8) - : "memory", "rcx", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_symlink(const char *path1, size_t path1len, - cloudabi_fd_t fd, const char *path2, - size_t path2len) { - register uint64_t reg_rax asm("rax") = 29; - register uint64_t reg_rdi asm("rdi") = (uint64_t)path1; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path1len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)fd; - register uint64_t reg_r10 asm("r10") = (uint64_t)path2; - register uint64_t reg_r8 asm("r8") = (uint64_t)path2len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10), "r"(reg_r8) - : "memory", "rcx", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_file_unlink(cloudabi_fd_t fd, const char *path, - size_t pathlen, - cloudabi_ulflags_t flags) { - register uint64_t reg_rax asm("rax") = 30; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)path; - register uint64_t reg_rdx asm("rdx") = (uint64_t)pathlen; - register uint64_t reg_r10 asm("r10") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_lock_unlock(_Atomic(cloudabi_lock_t) * lock, - cloudabi_scope_t scope) { - register uint64_t reg_rax asm("rax") = 31; - register uint64_t reg_rdi asm("rdi") = (uint64_t)lock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_advise(void *addr, size_t len, - cloudabi_advice_t advice) { - register uint64_t reg_rax asm("rax") = 32; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)advice; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_lock(const void *addr, size_t len) { - register uint64_t reg_rax asm("rax") = 33; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_map(void *addr, size_t len, - cloudabi_mprot_t prot, - cloudabi_mflags_t flags, cloudabi_fd_t fd, - cloudabi_filesize_t off, void **mem) { - register uint64_t reg_rax asm("rax") = 34; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)prot; - register uint64_t reg_r10 asm("r10") = (uint64_t)flags; - register uint64_t reg_r8 asm("r8") = (uint64_t)fd; - register uint64_t reg_r9 asm("r9") = (uint64_t)off; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10), - "r"(reg_r8), "r"(reg_r9) - : "memory", "rcx", "r11"); - if (okay) { - *mem = (void *)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_protect(void *addr, size_t len, - cloudabi_mprot_t prot) { - register uint64_t reg_rax asm("rax") = 35; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)prot; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_sync(void *addr, size_t len, - cloudabi_msflags_t flags) { - register uint64_t reg_rax asm("rax") = 36; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_unlock(const void *addr, size_t len) { - register uint64_t reg_rax asm("rax") = 37; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_mem_unmap(void *addr, size_t len) { - register uint64_t reg_rax asm("rax") = 38; - register uint64_t reg_rdi asm("rdi") = (uint64_t)addr; - register uint64_t reg_rsi asm("rsi") = (uint64_t)len; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_poll(const cloudabi_subscription_t *in, - cloudabi_event_t *out, size_t nsubscriptions, - size_t *nevents) { - register uint64_t reg_rax asm("rax") = 39; - register uint64_t reg_rdi asm("rdi") = (uint64_t)in; - register uint64_t reg_rsi asm("rsi") = (uint64_t)out; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nsubscriptions; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *nevents = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_poll_fd(cloudabi_fd_t fd, - const cloudabi_subscription_t *in, - size_t nin, cloudabi_event_t *out, - size_t nout, - const cloudabi_subscription_t *timeout, - size_t *nevents) { - register uint64_t reg_rax asm("rax") = 40; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)nin; - register uint64_t reg_r10 asm("r10") = (uint64_t)out; - register uint64_t reg_r8 asm("r8") = (uint64_t)nout; - register uint64_t reg_r9 asm("r9") = (uint64_t)timeout; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), "r"(reg_r10), - "r"(reg_r8), "r"(reg_r9) - : "memory", "rcx", "r11"); - if (okay) { - *nevents = (size_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_proc_exec(cloudabi_fd_t fd, const void *data, - size_t datalen, - const cloudabi_fd_t *fds, - size_t fdslen) { - register uint64_t reg_rax asm("rax") = 41; - register uint64_t reg_rdi asm("rdi") = (uint64_t)fd; - register uint64_t reg_rsi asm("rsi") = (uint64_t)data; - register uint64_t reg_rdx asm("rdx") = (uint64_t)datalen; - register uint64_t reg_r10 asm("r10") = (uint64_t)fds; - register uint64_t reg_r8 asm("r8") = (uint64_t)fdslen; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10), "r"(reg_r8) - : "memory", "rcx", "r9", "r11"); - return reg_rax; -} - -_Noreturn void cloudabi_sys_proc_exit(cloudabi_exitcode_t rval) { - register uint64_t reg_rax asm("rax") = 42; - register uint64_t reg_rdi asm("rdi") = (uint64_t)rval; - asm volatile("\tsyscall\n" - : - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - for (;;) - ; -} - -cloudabi_errno_t cloudabi_sys_proc_fork(cloudabi_fd_t *fd, - cloudabi_tid_t *tid) { - register uint64_t reg_rax asm("rax") = 43; - register uint64_t reg_rdx asm("rdx"); - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax), "=r"(reg_rdx) - : "r"(reg_rax) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - if (okay) { - *fd = (cloudabi_fd_t)reg_rax; - *tid = (cloudabi_tid_t)reg_rdx; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_proc_raise(cloudabi_signal_t sig) { - register uint64_t reg_rax asm("rax") = 44; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sig; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_random_get(void *buf, size_t nbyte) { - register uint64_t reg_rax asm("rax") = 45; - register uint64_t reg_rdi asm("rdi") = (uint64_t)buf; - register uint64_t reg_rsi asm("rsi") = (uint64_t)nbyte; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_accept(cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_fd_t *conn) { - register uint64_t reg_rax asm("rax") = 46; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *conn = (cloudabi_fd_t)reg_rax; - return 0; - } - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_bind(cloudabi_fd_t sock, cloudabi_fd_t fd, - const char *path, size_t pathlen) { - register uint64_t reg_rax asm("rax") = 47; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)fd; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path; - register uint64_t reg_r10 asm("r10") = (uint64_t)pathlen; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_connect(cloudabi_fd_t sock, cloudabi_fd_t fd, - const char *path, size_t pathlen) { - register uint64_t reg_rax asm("rax") = 48; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)fd; - register uint64_t reg_rdx asm("rdx") = (uint64_t)path; - register uint64_t reg_r10 asm("r10") = (uint64_t)pathlen; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx), - "r"(reg_r10) - : "memory", "rcx", "r8", "r9", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_listen(cloudabi_fd_t sock, - cloudabi_backlog_t backlog) { - register uint64_t reg_rax asm("rax") = 49; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)backlog; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_recv(cloudabi_fd_t sock, - const cloudabi_recv_in_t *in, - cloudabi_recv_out_t *out) { - register uint64_t reg_rax asm("rax") = 50; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)out; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_send(cloudabi_fd_t sock, - const cloudabi_send_in_t *in, - cloudabi_send_out_t *out) { - register uint64_t reg_rax asm("rax") = 51; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)in; - register uint64_t reg_rdx asm("rdx") = (uint64_t)out; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_shutdown(cloudabi_fd_t sock, - cloudabi_sdflags_t how) { - register uint64_t reg_rax asm("rax") = 52; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)how; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_sock_stat_get(cloudabi_fd_t sock, - cloudabi_sockstat_t *buf, - cloudabi_ssflags_t flags) { - register uint64_t reg_rax asm("rax") = 53; - register uint64_t reg_rdi asm("rdi") = (uint64_t)sock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)buf; - register uint64_t reg_rdx asm("rdx") = (uint64_t)flags; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi), "r"(reg_rdx) - : "memory", "rcx", "r8", "r9", "r10", "r11"); - return reg_rax; -} - -cloudabi_errno_t cloudabi_sys_thread_create(cloudabi_threadattr_t *attr, - cloudabi_tid_t *tid) { - register uint64_t reg_rax asm("rax") = 54; - register uint64_t reg_rdi asm("rdi") = (uint64_t)attr; - register char okay; - asm volatile( - "\tsyscall\n" - "\tsetnc %0\n" - : "=r"(okay), "=r"(reg_rax) - : "r"(reg_rax), "r"(reg_rdi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - if (okay) { - *tid = (cloudabi_tid_t)reg_rax; - return 0; - } - return reg_rax; -} - -_Noreturn void cloudabi_sys_thread_exit(_Atomic(cloudabi_lock_t) * lock, - cloudabi_scope_t scope) { - register uint64_t reg_rax asm("rax") = 55; - register uint64_t reg_rdi asm("rdi") = (uint64_t)lock; - register uint64_t reg_rsi asm("rsi") = (uint64_t)scope; - asm volatile("\tsyscall\n" - : - : "r"(reg_rax), "r"(reg_rdi), "r"(reg_rsi) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - for (;;) - ; -} - -cloudabi_errno_t cloudabi_sys_thread_yield(void) { - register uint64_t reg_rax asm("rax") = 56; - asm volatile("\tsyscall\n" - : "=r"(reg_rax) - : "r"(reg_rax) - : "memory", "rcx", "rdx", "r8", "r9", "r10", "r11"); - return reg_rax; -} Property changes on: head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S (nonexistent) +++ head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S (revision 304554) @@ -0,0 +1,491 @@ +// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// This file is automatically generated. Do not edit. +// +// Source: https://github.com/NuxiNL/cloudabi + +#define ENTRY(name) \ + .text; \ + .p2align 2; \ + .global name; \ + .type name, @function; \ +name: + +#define END(name) .size name, . - name + +ENTRY(cloudabi_sys_clock_res_get) + str x1, [sp, #-8] + mov w8, #0 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_clock_res_get) + +ENTRY(cloudabi_sys_clock_time_get) + str x2, [sp, #-8] + mov w8, #1 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_clock_time_get) + +ENTRY(cloudabi_sys_condvar_signal) + mov w8, #2 + svc #0 + ret +END(cloudabi_sys_condvar_signal) + +ENTRY(cloudabi_sys_fd_close) + mov w8, #3 + svc #0 + ret +END(cloudabi_sys_fd_close) + +ENTRY(cloudabi_sys_fd_create1) + str x1, [sp, #-8] + mov w8, #4 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str w0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_create1) + +ENTRY(cloudabi_sys_fd_create2) + stp x1, x2, [sp, #-16] + mov w8, #5 + svc #0 + ldp x2, x3, [sp, #-16] + b.cs 1f + str w0, [x2] + str w1, [x3] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_create2) + +ENTRY(cloudabi_sys_fd_datasync) + mov w8, #6 + svc #0 + ret +END(cloudabi_sys_fd_datasync) + +ENTRY(cloudabi_sys_fd_dup) + str x1, [sp, #-8] + mov w8, #7 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str w0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_dup) + +ENTRY(cloudabi_sys_fd_pread) + str x4, [sp, #-8] + mov w8, #8 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_pread) + +ENTRY(cloudabi_sys_fd_pwrite) + str x4, [sp, #-8] + mov w8, #9 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_pwrite) + +ENTRY(cloudabi_sys_fd_read) + str x3, [sp, #-8] + mov w8, #10 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_read) + +ENTRY(cloudabi_sys_fd_replace) + mov w8, #11 + svc #0 + ret +END(cloudabi_sys_fd_replace) + +ENTRY(cloudabi_sys_fd_seek) + str x3, [sp, #-8] + mov w8, #12 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_seek) + +ENTRY(cloudabi_sys_fd_stat_get) + mov w8, #13 + svc #0 + ret +END(cloudabi_sys_fd_stat_get) + +ENTRY(cloudabi_sys_fd_stat_put) + mov w8, #14 + svc #0 + ret +END(cloudabi_sys_fd_stat_put) + +ENTRY(cloudabi_sys_fd_sync) + mov w8, #15 + svc #0 + ret +END(cloudabi_sys_fd_sync) + +ENTRY(cloudabi_sys_fd_write) + str x3, [sp, #-8] + mov w8, #16 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_fd_write) + +ENTRY(cloudabi_sys_file_advise) + mov w8, #17 + svc #0 + ret +END(cloudabi_sys_file_advise) + +ENTRY(cloudabi_sys_file_allocate) + mov w8, #18 + svc #0 + ret +END(cloudabi_sys_file_allocate) + +ENTRY(cloudabi_sys_file_create) + mov w8, #19 + svc #0 + ret +END(cloudabi_sys_file_create) + +ENTRY(cloudabi_sys_file_link) + mov w8, #20 + svc #0 + ret +END(cloudabi_sys_file_link) + +ENTRY(cloudabi_sys_file_open) + str x5, [sp, #-8] + mov w8, #21 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str w0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_file_open) + +ENTRY(cloudabi_sys_file_readdir) + str x4, [sp, #-8] + mov w8, #22 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_file_readdir) + +ENTRY(cloudabi_sys_file_readlink) + str x5, [sp, #-8] + mov w8, #23 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_file_readlink) + +ENTRY(cloudabi_sys_file_rename) + mov w8, #24 + svc #0 + ret +END(cloudabi_sys_file_rename) + +ENTRY(cloudabi_sys_file_stat_fget) + mov w8, #25 + svc #0 + ret +END(cloudabi_sys_file_stat_fget) + +ENTRY(cloudabi_sys_file_stat_fput) + mov w8, #26 + svc #0 + ret +END(cloudabi_sys_file_stat_fput) + +ENTRY(cloudabi_sys_file_stat_get) + mov w8, #27 + svc #0 + ret +END(cloudabi_sys_file_stat_get) + +ENTRY(cloudabi_sys_file_stat_put) + mov w8, #28 + svc #0 + ret +END(cloudabi_sys_file_stat_put) + +ENTRY(cloudabi_sys_file_symlink) + mov w8, #29 + svc #0 + ret +END(cloudabi_sys_file_symlink) + +ENTRY(cloudabi_sys_file_unlink) + mov w8, #30 + svc #0 + ret +END(cloudabi_sys_file_unlink) + +ENTRY(cloudabi_sys_lock_unlock) + mov w8, #31 + svc #0 + ret +END(cloudabi_sys_lock_unlock) + +ENTRY(cloudabi_sys_mem_advise) + mov w8, #32 + svc #0 + ret +END(cloudabi_sys_mem_advise) + +ENTRY(cloudabi_sys_mem_lock) + mov w8, #33 + svc #0 + ret +END(cloudabi_sys_mem_lock) + +ENTRY(cloudabi_sys_mem_map) + str x6, [sp, #-8] + mov w8, #34 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_mem_map) + +ENTRY(cloudabi_sys_mem_protect) + mov w8, #35 + svc #0 + ret +END(cloudabi_sys_mem_protect) + +ENTRY(cloudabi_sys_mem_sync) + mov w8, #36 + svc #0 + ret +END(cloudabi_sys_mem_sync) + +ENTRY(cloudabi_sys_mem_unlock) + mov w8, #37 + svc #0 + ret +END(cloudabi_sys_mem_unlock) + +ENTRY(cloudabi_sys_mem_unmap) + mov w8, #38 + svc #0 + ret +END(cloudabi_sys_mem_unmap) + +ENTRY(cloudabi_sys_poll) + str x3, [sp, #-8] + mov w8, #39 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_poll) + +ENTRY(cloudabi_sys_poll_fd) + str x6, [sp, #-8] + mov w8, #40 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str x0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_poll_fd) + +ENTRY(cloudabi_sys_proc_exec) + mov w8, #41 + svc #0 + ret +END(cloudabi_sys_proc_exec) + +ENTRY(cloudabi_sys_proc_exit) + mov w8, #42 + svc #0 +END(cloudabi_sys_proc_exit) + +ENTRY(cloudabi_sys_proc_fork) + stp x0, x1, [sp, #-16] + mov w8, #43 + svc #0 + ldp x2, x3, [sp, #-16] + b.cs 1f + str w0, [x2] + str w1, [x3] + mov w0, wzr +1: + ret +END(cloudabi_sys_proc_fork) + +ENTRY(cloudabi_sys_proc_raise) + mov w8, #44 + svc #0 + ret +END(cloudabi_sys_proc_raise) + +ENTRY(cloudabi_sys_random_get) + mov w8, #45 + svc #0 + ret +END(cloudabi_sys_random_get) + +ENTRY(cloudabi_sys_sock_accept) + str x2, [sp, #-8] + mov w8, #46 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str w0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_sock_accept) + +ENTRY(cloudabi_sys_sock_bind) + mov w8, #47 + svc #0 + ret +END(cloudabi_sys_sock_bind) + +ENTRY(cloudabi_sys_sock_connect) + mov w8, #48 + svc #0 + ret +END(cloudabi_sys_sock_connect) + +ENTRY(cloudabi_sys_sock_listen) + mov w8, #49 + svc #0 + ret +END(cloudabi_sys_sock_listen) + +ENTRY(cloudabi_sys_sock_recv) + mov w8, #50 + svc #0 + ret +END(cloudabi_sys_sock_recv) + +ENTRY(cloudabi_sys_sock_send) + mov w8, #51 + svc #0 + ret +END(cloudabi_sys_sock_send) + +ENTRY(cloudabi_sys_sock_shutdown) + mov w8, #52 + svc #0 + ret +END(cloudabi_sys_sock_shutdown) + +ENTRY(cloudabi_sys_sock_stat_get) + mov w8, #53 + svc #0 + ret +END(cloudabi_sys_sock_stat_get) + +ENTRY(cloudabi_sys_thread_create) + str x1, [sp, #-8] + mov w8, #54 + svc #0 + ldr x2, [sp, #-8] + b.cs 1f + str w0, [x2] + mov w0, wzr +1: + ret +END(cloudabi_sys_thread_create) + +ENTRY(cloudabi_sys_thread_exit) + mov w8, #55 + svc #0 +END(cloudabi_sys_thread_exit) + +ENTRY(cloudabi_sys_thread_yield) + mov w8, #56 + svc #0 + ret +END(cloudabi_sys_thread_yield) Property changes on: head/sys/contrib/cloudabi/cloudabi_vdso_aarch64.S ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S =================================================================== --- head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S (nonexistent) +++ head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S (revision 304554) @@ -0,0 +1,511 @@ +// Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// This file is automatically generated. Do not edit. +// +// Source: https://github.com/NuxiNL/cloudabi + +#define ENTRY(name) \ + .text; \ + .p2align 4, 0x90; \ + .global name; \ + .type name, @function; \ +name: + +#define END(name) .size name, . - name + +ENTRY(cloudabi_sys_clock_res_get) + push %rsi + mov $0, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_clock_res_get) + +ENTRY(cloudabi_sys_clock_time_get) + push %rdx + mov $1, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_clock_time_get) + +ENTRY(cloudabi_sys_condvar_signal) + mov $2, %eax + syscall + ret +END(cloudabi_sys_condvar_signal) + +ENTRY(cloudabi_sys_fd_close) + mov $3, %eax + syscall + ret +END(cloudabi_sys_fd_close) + +ENTRY(cloudabi_sys_fd_create1) + push %rsi + mov $4, %eax + syscall + pop %rcx + jc 1f + mov %eax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_create1) + +ENTRY(cloudabi_sys_fd_create2) + push %rsi + push %rdx + mov $5, %eax + syscall + pop %rsi + pop %rcx + jc 1f + mov %eax, (%rcx) + mov %edx, (%rsi) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_create2) + +ENTRY(cloudabi_sys_fd_datasync) + mov $6, %eax + syscall + ret +END(cloudabi_sys_fd_datasync) + +ENTRY(cloudabi_sys_fd_dup) + push %rsi + mov $7, %eax + syscall + pop %rcx + jc 1f + mov %eax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_dup) + +ENTRY(cloudabi_sys_fd_pread) + mov %rcx, %r10 + push %r8 + mov $8, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_pread) + +ENTRY(cloudabi_sys_fd_pwrite) + mov %rcx, %r10 + push %r8 + mov $9, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_pwrite) + +ENTRY(cloudabi_sys_fd_read) + push %rcx + mov $10, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_read) + +ENTRY(cloudabi_sys_fd_replace) + mov $11, %eax + syscall + ret +END(cloudabi_sys_fd_replace) + +ENTRY(cloudabi_sys_fd_seek) + push %rcx + mov $12, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_seek) + +ENTRY(cloudabi_sys_fd_stat_get) + mov $13, %eax + syscall + ret +END(cloudabi_sys_fd_stat_get) + +ENTRY(cloudabi_sys_fd_stat_put) + mov $14, %eax + syscall + ret +END(cloudabi_sys_fd_stat_put) + +ENTRY(cloudabi_sys_fd_sync) + mov $15, %eax + syscall + ret +END(cloudabi_sys_fd_sync) + +ENTRY(cloudabi_sys_fd_write) + push %rcx + mov $16, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_fd_write) + +ENTRY(cloudabi_sys_file_advise) + mov %rcx, %r10 + mov $17, %eax + syscall + ret +END(cloudabi_sys_file_advise) + +ENTRY(cloudabi_sys_file_allocate) + mov $18, %eax + syscall + ret +END(cloudabi_sys_file_allocate) + +ENTRY(cloudabi_sys_file_create) + mov %rcx, %r10 + mov $19, %eax + syscall + ret +END(cloudabi_sys_file_create) + +ENTRY(cloudabi_sys_file_link) + mov %rcx, %r10 + mov $20, %eax + syscall + ret +END(cloudabi_sys_file_link) + +ENTRY(cloudabi_sys_file_open) + mov %rcx, %r10 + push %r9 + mov $21, %eax + syscall + pop %rcx + jc 1f + mov %eax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_file_open) + +ENTRY(cloudabi_sys_file_readdir) + mov %rcx, %r10 + push %r8 + mov $22, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_file_readdir) + +ENTRY(cloudabi_sys_file_readlink) + mov %rcx, %r10 + push %r9 + mov $23, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_file_readlink) + +ENTRY(cloudabi_sys_file_rename) + mov %rcx, %r10 + mov $24, %eax + syscall + ret +END(cloudabi_sys_file_rename) + +ENTRY(cloudabi_sys_file_stat_fget) + mov $25, %eax + syscall + ret +END(cloudabi_sys_file_stat_fget) + +ENTRY(cloudabi_sys_file_stat_fput) + mov $26, %eax + syscall + ret +END(cloudabi_sys_file_stat_fput) + +ENTRY(cloudabi_sys_file_stat_get) + mov %rcx, %r10 + mov $27, %eax + syscall + ret +END(cloudabi_sys_file_stat_get) + +ENTRY(cloudabi_sys_file_stat_put) + mov %rcx, %r10 + mov $28, %eax + syscall + ret +END(cloudabi_sys_file_stat_put) + +ENTRY(cloudabi_sys_file_symlink) + mov %rcx, %r10 + mov $29, %eax + syscall + ret +END(cloudabi_sys_file_symlink) + +ENTRY(cloudabi_sys_file_unlink) + mov %rcx, %r10 + mov $30, %eax + syscall + ret +END(cloudabi_sys_file_unlink) + +ENTRY(cloudabi_sys_lock_unlock) + mov $31, %eax + syscall + ret +END(cloudabi_sys_lock_unlock) + +ENTRY(cloudabi_sys_mem_advise) + mov $32, %eax + syscall + ret +END(cloudabi_sys_mem_advise) + +ENTRY(cloudabi_sys_mem_lock) + mov $33, %eax + syscall + ret +END(cloudabi_sys_mem_lock) + +ENTRY(cloudabi_sys_mem_map) + mov %rcx, %r10 + mov $34, %eax + syscall + jc 1f + mov 8(%rsp), %rcx + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_mem_map) + +ENTRY(cloudabi_sys_mem_protect) + mov $35, %eax + syscall + ret +END(cloudabi_sys_mem_protect) + +ENTRY(cloudabi_sys_mem_sync) + mov $36, %eax + syscall + ret +END(cloudabi_sys_mem_sync) + +ENTRY(cloudabi_sys_mem_unlock) + mov $37, %eax + syscall + ret +END(cloudabi_sys_mem_unlock) + +ENTRY(cloudabi_sys_mem_unmap) + mov $38, %eax + syscall + ret +END(cloudabi_sys_mem_unmap) + +ENTRY(cloudabi_sys_poll) + push %rcx + mov $39, %eax + syscall + pop %rcx + jc 1f + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_poll) + +ENTRY(cloudabi_sys_poll_fd) + mov %rcx, %r10 + mov $40, %eax + syscall + jc 1f + mov 8(%rsp), %rcx + mov %rax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_poll_fd) + +ENTRY(cloudabi_sys_proc_exec) + mov %rcx, %r10 + mov $41, %eax + syscall + ret +END(cloudabi_sys_proc_exec) + +ENTRY(cloudabi_sys_proc_exit) + mov $42, %eax + syscall +END(cloudabi_sys_proc_exit) + +ENTRY(cloudabi_sys_proc_fork) + push %rdi + push %rsi + mov $43, %eax + syscall + pop %rsi + pop %rcx + jc 1f + mov %eax, (%rcx) + mov %edx, (%rsi) + xor %eax, %eax +1: + ret +END(cloudabi_sys_proc_fork) + +ENTRY(cloudabi_sys_proc_raise) + mov $44, %eax + syscall + ret +END(cloudabi_sys_proc_raise) + +ENTRY(cloudabi_sys_random_get) + mov $45, %eax + syscall + ret +END(cloudabi_sys_random_get) + +ENTRY(cloudabi_sys_sock_accept) + push %rdx + mov $46, %eax + syscall + pop %rcx + jc 1f + mov %eax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_sock_accept) + +ENTRY(cloudabi_sys_sock_bind) + mov %rcx, %r10 + mov $47, %eax + syscall + ret +END(cloudabi_sys_sock_bind) + +ENTRY(cloudabi_sys_sock_connect) + mov %rcx, %r10 + mov $48, %eax + syscall + ret +END(cloudabi_sys_sock_connect) + +ENTRY(cloudabi_sys_sock_listen) + mov $49, %eax + syscall + ret +END(cloudabi_sys_sock_listen) + +ENTRY(cloudabi_sys_sock_recv) + mov $50, %eax + syscall + ret +END(cloudabi_sys_sock_recv) + +ENTRY(cloudabi_sys_sock_send) + mov $51, %eax + syscall + ret +END(cloudabi_sys_sock_send) + +ENTRY(cloudabi_sys_sock_shutdown) + mov $52, %eax + syscall + ret +END(cloudabi_sys_sock_shutdown) + +ENTRY(cloudabi_sys_sock_stat_get) + mov $53, %eax + syscall + ret +END(cloudabi_sys_sock_stat_get) + +ENTRY(cloudabi_sys_thread_create) + push %rsi + mov $54, %eax + syscall + pop %rcx + jc 1f + mov %eax, (%rcx) + xor %eax, %eax +1: + ret +END(cloudabi_sys_thread_create) + +ENTRY(cloudabi_sys_thread_exit) + mov $55, %eax + syscall +END(cloudabi_sys_thread_exit) + +ENTRY(cloudabi_sys_thread_yield) + mov $56, %eax + syscall + ret +END(cloudabi_sys_thread_yield) Property changes on: head/sys/contrib/cloudabi/cloudabi_vdso_x86_64.S ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/sys/modules/cloudabi64/Makefile =================================================================== --- head/sys/modules/cloudabi64/Makefile (revision 304553) +++ head/sys/modules/cloudabi64/Makefile (revision 304554) @@ -1,39 +1,37 @@ # $FreeBSD$ SYSDIR?=${.CURDIR}/../.. .PATH: ${SYSDIR}/compat/cloudabi64 .PATH: ${SYSDIR}/${MACHINE}/cloudabi64 KMOD= cloudabi64 SRCS= cloudabi64_fd.c cloudabi64_module.c cloudabi64_poll.c \ cloudabi64_sock.c cloudabi64_syscalls.c cloudabi64_sysent.c \ cloudabi64_sysvec.c cloudabi64_thread.c OBJS= cloudabi64_vdso_blob.o CLEANFILES=cloudabi64_vdso.o .if ${MACHINE_CPUARCH} == "aarch64" -VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_aarch64.c +VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_aarch64.S OUTPUT_TARGET=elf64-littleaarch64 BINARY_ARCHITECTURE=aarch64 .elif ${MACHINE_CPUARCH} == "amd64" -VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_x86_64.c +VDSO_SRCS=${SYSDIR}/contrib/cloudabi/cloudabi_vdso_x86_64.S OUTPUT_TARGET=elf64-x86-64-freebsd BINARY_ARCHITECTURE=i386 .endif cloudabi64_vdso.o: ${VDSO_SRCS} - ${CC} -shared -nostdinc -nostdlib \ + ${CC} -x assembler-with-cpp -shared -nostdinc -nostdlib \ -Wl,-T${SYSDIR}/compat/cloudabi64/cloudabi64_vdso.lds.s \ - -D_KERNEL -I. -I${SYSDIR} -I${SYSDIR}/contrib/cloudabi \ - -O2 -fomit-frame-pointer \ ${VDSO_SRCS} -o ${.TARGET} cloudabi64_vdso_blob.o: cloudabi64_vdso.o ${OBJCOPY} --input-target binary \ --output-target ${OUTPUT_TARGET} \ --binary-architecture ${BINARY_ARCHITECTURE} \ cloudabi64_vdso.o ${.TARGET} .include