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

@@ -147,7 +147,7 @@ int socket(int domain, int type, int protocol) {
return (int32_t)rtn;
}
int setsockopt(int sockfd, int level, int optname, const void* optval, uint64_t optlen) {
int setsockopt(int sockfd, int level, int optname, const void* optval, socklen_t optlen) {
long int rtn;
asm volatile (
// Assembly Instructions
@@ -162,14 +162,14 @@ int setsockopt(int sockfd, int level, int optname, const void* optval, uint64_t
// Output operands
: "=r" (rtn)
// Input operand
: "r" ((int64_t)sockfd), "r"((int64_t)level), "r"((int64_t)optname), "r"(optval), "r"(optlen)
: "r" ((int64_t)sockfd), "r"((int64_t)level), "r"((int64_t)optname), "r"(optval), "r"((uint64_t)optlen)
// Clobbered registers
: "x0", "x1", "x2", "x3", "x4", "x8"
);
return (int32_t)rtn;
}
int bind(int sockfd, const void* sockaddr, uint64_t addrlen) {
int bind(int sockfd, const void* sockaddr, socklen_t addrlen) {
long int rtn;
asm volatile (
// Assembly Instructions
@@ -182,7 +182,7 @@ int bind(int sockfd, const void* sockaddr, uint64_t addrlen) {
// Output operands
: "=r" (rtn)
// Input operand
: "r" ((int64_t)sockfd), "r"(sockaddr), "r"(addrlen)
: "r" ((int64_t)sockfd), "r"(sockaddr), "r"((uint64_t)addrlen)
// Clobbered registers
: "x0", "x1", "x2", "x8"
);
@@ -208,7 +208,7 @@ int listen(int fd, int backlog) {
return (int32_t)rtn;
}
int accept(int sockfd, void* addr, uint64_t* addrlen) {
int accept(int sockfd, void* addr, socklen_t* addrlen) {
long int rtn;
asm volatile (
// Assembly Instructions
@@ -228,7 +228,7 @@ int accept(int sockfd, void* addr, uint64_t* addrlen) {
return (int32_t)rtn;
}
int connect(int sockfd, void* addr, uint64_t addrlen) {
int connect(int sockfd, void* addr, socklen_t addrlen) {
long int rtn;
asm volatile (
// Assembly Instructions
@@ -241,15 +241,15 @@ int connect(int sockfd, void* addr, uint64_t addrlen) {
// Output operands
: "=r" (rtn)
// Input operand
: "r" ((int64_t)sockfd), "r"(addr), "r"(addrlen)
: "r" ((int64_t)sockfd), "r"(addr), "r"((uint64_t)addrlen)
// Clobbered registers
: "x0", "x1", "x2", "x8"
);
return (int32_t)rtn;
}
int64_t sendto(int sockfd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen) {
long int rtn;
ssize_t sendto(int sockfd, const void* buf, size_t size, int flags, const void* sockaddr, socklen_t addrlen) {
ssize_t rtn;
asm volatile (
// Assembly Instructions
"mov x8, #206\n" // Syscall number for 'sendto' is 206 in AArch64
@@ -264,15 +264,15 @@ int64_t sendto(int sockfd, const void* buf, uint64_t size, int flags, const void
// Output operands
: "=r" (rtn)
// Input operand
: "r" ((int64_t)sockfd), "r"(buf), "r"(size), "r"((int64_t)flags), "r"(sockaddr), "r"(addrlen)
: "r" ((int64_t)sockfd), "r"(buf), "r"(size), "r"((int64_t)flags), "r"(sockaddr), "r"((uint64_t)addrlen)
// Clobbered registers
: "x0", "x1", "x2", "x3", "x4", "x5", "x8"
);
return rtn;
}
int64_t recvfrom(int sockfd, const void* buf, uint64_t size, int flags, const void* sockaddr, uint64_t addrlen) {
long int rtn;
ssize_t recvfrom(int sockfd, const void* buf, size_t size, int flags, const void* sockaddr, socklen_t addrlen) {
ssize_t rtn;
asm volatile (
// Assembly Instructions
"mov x8, #207\n" // Syscall number for 'recvfrom' is 207 in AArch64
@@ -287,7 +287,7 @@ int64_t recvfrom(int sockfd, const void* buf, uint64_t size, int flags, const vo
// Output operands
: "=r" (rtn)
// Input operand
: "r" ((int64_t)sockfd), "r"(buf), "r"(size), "r"((int64_t)flags), "r"(sockaddr), "r"(addrlen)
: "r" ((int64_t)sockfd), "r"(buf), "r"(size), "r"((int64_t)flags), "r"(sockaddr), "r"((uint64_t)addrlen)
// Clobbered registers
: "x0", "x1", "x2", "x3", "x4", "x5", "x8", "memory"
);