Date: Sat, 27 Jun 2020 15:51:10 +0000 From: adr@SDF.ORG To: freebsd-arm@freebsd.org Subject: calling mmap from assembly, invalid argument Message-ID: <20200627155110.GA22042@SDF.ORG>
next in thread | raw e-mail | index | archive | help
Hello, I can't make a simple call to mmap. I'm not using system calls because I've to use other c functions in the real code, so there is not gain following the possible changes on the syscalls. I should be missing something. I've used clang in openbsd without a problem. I'll appreciate any help. adr ============================================ % uname -a FreeBSD fbsd 13.0-CURRENT FreeBSD 13.0-CURRENT #0 r362037: Thu Jun 11 05:06:50 UTC 2020 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/arm.armv7/sys/GENERIC arm It doesn't matter if I assemble the code with gas. % clang -o test test.s % ./test Invalid argument mmap addr: 0xffffffff ============================== .syntax unified @ /usr/include/sys/mman.h PROT_READ = 1 PROT_WRITE = 2 MAP_PRIVATE = 2 MAP_ANONYMOUS = 0x1000 .data ostr: .string "mmap addr: %#x\n" .align .text .global main main: mov r5, 0 @ offset mov r4, -1 @ fd push {r4, r5} mov r3, MAP_ANONYMOUS|MAP_PRIVATE mov r2, PROT_READ|PROT_WRITE mov r1, 4096 @ len mov r0, 0 @ addr bl mmap mov r5, r0 mov r0, 0 bl perror ldr r0, =ostr mov r1, r5 bl printf mov r0, 0 bl fflush b exit
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200627155110.GA22042>