mirror of
https://github.com/fluencelabs/musl
synced 2025-05-29 15:41:36 +00:00
sexpr-wasm rightfully complained that the imports weren't called with the right signatures. I'm not sure how the syscall macro layering works, but this hack works for now.
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#define __SYSCALL_LL_E(x) \
|
|
((union { long long ll; long l[2]; }){ .ll = x }).l[0], \
|
|
((union { long long ll; long l[2]; }){ .ll = x }).l[1]
|
|
#define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
|
|
|
|
#define __SC_socket 1
|
|
#define __SC_bind 2
|
|
#define __SC_connect 3
|
|
#define __SC_listen 4
|
|
#define __SC_accept 5
|
|
#define __SC_getsockname 6
|
|
#define __SC_getpeername 7
|
|
#define __SC_socketpair 8
|
|
#define __SC_send 9
|
|
#define __SC_recv 10
|
|
#define __SC_sendto 11
|
|
#define __SC_recvfrom 12
|
|
#define __SC_shutdown 13
|
|
#define __SC_setsockopt 14
|
|
#define __SC_getsockopt 15
|
|
#define __SC_sendmsg 16
|
|
#define __SC_recvmsg 17
|
|
#define __SC_accept4 18
|
|
#define __SC_recvmmsg 19
|
|
#define __SC_sendmmsg 20
|
|
|
|
long __syscall0(long n);
|
|
long __syscall1(long n, long a);
|
|
long __syscall2(long n, long a, long b);
|
|
long __syscall3(long n, long a, long b, long c);
|
|
long __syscall4(long n, long a, long b, long c, long d);
|
|
long __syscall5(long n, long a, long b, long c, long d, long e);
|
|
long __syscall6(long n, long a, long b, long c, long d, long e, long f);
|
|
|
|
// HACK other architectures don't do this.
|
|
#include "../../src/internal/syscall.h"
|