Add size_t ssize_t and socklen_t

This commit is contained in:
2025-04-29 15:36:43 -04:00
parent 42268b6cc2
commit 37bf95704e
5 changed files with 60 additions and 56 deletions

View File

@@ -101,21 +101,21 @@ int socket(int domain, int type, int protocol) {
}
#define SYS_SETSOCKOPT 54
int setsockopt(int fd, int level, int optname, const void* optval, uint64_t optlen) {
int setsockopt(int fd, int level, int optname, const void* optval, socklen_t optlen) {
int rtn;
asm volatile(
"mov %5, %%r10\n"
"mov %6, %%r8\n"
"syscall\n"
: "=a"(rtn)
: "a"(SYS_SETSOCKOPT), "D"(fd), "S"(level), "d"(optname), "r"(optval), "r"(optlen)
: "a"(SYS_SETSOCKOPT), "D"(fd), "S"(level), "d"(optname), "r"(optval), "r"((uint64_t)optlen)
: "rcx", "r11"
);
return rtn;
}
#define SYS_BIND 49
int bind(int fd, const void* sockaddr, uint64_t addrlen) {
int bind(int fd, const void* sockaddr, socklen_t addrlen) {
int rtn;
asm volatile(
"syscall\n"
@@ -139,7 +139,7 @@ int listen(int fd, int backlog) {
}
#define SYS_ACCEPT 43
int accept(int fd, void* addr, uint64_t* addrlen) {
int accept(int fd, void* addr, socklen_t* addrlen) {
int rtn;
asm volatile(
"syscall\n"
@@ -151,7 +151,7 @@ int accept(int fd, void* addr, uint64_t* addrlen) {
}
#define SYS_CONNECT 42
int connect(int fd, void* addr, uint64_t addrlen) {
int connect(int fd, void* addr, socklen_t addrlen) {
int rtn;
asm volatile(
"syscall\n"
@@ -163,30 +163,30 @@ int connect(int fd, void* addr, uint64_t addrlen) {
}
#define SYS_SENDTO 44
int64_t sendto(int fd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen) {
int64_t nsent;
ssize_t sendto(int fd, const void* buf, size_t size, int flags, const void* sockaddr, socklen_t addrlen) {
ssize_t nsent;
asm volatile(
"mov %5, %%r10\n"
"mov %6, %%r8\n"
"mov %7, %%r9\n"
"syscall\n"
: "=a"(nsent)
: "a"(SYS_SENDTO), "D"(fd), "S"(buf), "d"(size), "r"((int64_t)flags), "r"(sockaddr), "r"(addrlen)
: "a"(SYS_SENDTO), "D"(fd), "S"(buf), "d"(size), "r"((int64_t)flags), "r"(sockaddr), "r"((uint64_t)addrlen)
: "rcx", "r11"
);
return nsent;
}
#define SYS_RECVFROM 45
int64_t recvfrom(int fd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen) {
int64_t nrecv;
ssize_t recvfrom(int fd, const void* buf, size_t size, int flags, const void* sockaddr, socklen_t addrlen) {
ssize_t nrecv;
asm volatile(
"mov %5, %%r10\n"
"mov %6, %%r8\n"
"mov %7, %%r9\n"
"syscall\n"
: "=a"(nrecv)
: "a"(SYS_RECVFROM), "D"(fd), "S"(buf), "d"(size), "r"((int64_t)flags), "r"(sockaddr), "r"(addrlen)
: "a"(SYS_RECVFROM), "D"(fd), "S"(buf), "d"(size), "r"((int64_t)flags), "r"(sockaddr), "r"((int64_t)addrlen)
: "rcx", "r11", "memory"
);
return nrecv;