Closed laokz closed 1 year ago
Add riscv64 linux support referenced to other arches, tested under QEMU 7.0 virt machine.
To verify various types, I used the following program. It seems that there is no swblk_t type in linux and I leave it same as aarch64.
swblk_t
#include <stdio.h> #include <stdint.h> #include <unistd.h> #include <stdlib.h> #include <netinet/in.h> #include <asm-generic/termbits.h> #include <sys/resource.h> #define tYpeof(t) _Generic(t,\ int8_t: printf("i8\n"),\ uint8_t: printf("u8\n"),\ int16_t: printf("i16\n"),\ uint16_t: printf("u16\n"),\ int32_t: printf("i32\n"),\ uint32_t: printf("u32\n"),\ int64_t: printf("i64\n"),\ uint64_t: printf("u64\n"),\ char *: printf("char *\n")) int main() { { int8_t a;printf("%20s","int8_t ");tYpeof(a);} { u_int8_t a;printf("%20s","u_int8_t ");tYpeof(a);} { int16_t a;printf("%20s","int16_t ");tYpeof(a);} { u_int16_t a;printf("%20s","u_int16_t ");tYpeof(a);} { int32_t a;printf("%20s","int32_t ");tYpeof(a);} { u_int32_t a;printf("%20s","u_int32_t ");tYpeof(a);} { int64_t a;printf("%20s","int64_t ");tYpeof(a);} { u_int64_t a;printf("%20s","u_int64_t ");tYpeof(a);} { intptr_t a;printf("%20s","intptr_t ");tYpeof(a);} { uintptr_t a;printf("%20s","uintptr_t ");tYpeof(a);} { caddr_t a;printf("%20s","caddr_t ");tYpeof(a);} { dev_t a;printf("%20s","dev_t ");tYpeof(a);} { blkcnt_t a;printf("%20s","blkcnt_t ");tYpeof(a);} { blksize_t a;printf("%20s","blksize_t ");tYpeof(a);} { gid_t a;printf("%20s","gid_t ");tYpeof(a);} { in_addr_t a;printf("%20s","in_addr_t ");tYpeof(a);} { in_port_t a;printf("%20s","in_port_t ");tYpeof(a);} { ino_t a;printf("%20s","ino_t ");tYpeof(a);} { printf("%20s","ino64_t\n"); } { key_t a;printf("%20s","key_t ");tYpeof(a);} { mode_t a;printf("%20s","mode_t ");tYpeof(a);} { nlink_t a;printf("%20s","nlink_t ");tYpeof(a);} { id_t a;printf("%20s","id_t ");tYpeof(a);} { pid_t a;printf("%20s","pid_t ");tYpeof(a);} { off_t a;printf("%20s","off_t ");tYpeof(a);} { printf("%20s","swblk_t\n"); } { uid_t a;printf("%20s","uid_t ");tYpeof(a);} { clock_t a;printf("%20s","clock_t ");tYpeof(a);} { size_t a;printf("%20s","size_t ");tYpeof(a);} { ssize_t a;printf("%20s","ssize_t ");tYpeof(a);} { time_t a;printf("%20s","time_t ");tYpeof(a);} { fsblkcnt_t a;printf("%20s","fsblkcnt_t ");tYpeof(a);} { fsfilcnt_t a;printf("%20s","fsfilcnt_t ");tYpeof(a);} { sa_family_t a;printf("%20s","sa_family_t ");tYpeof(a);} { socklen_t a;printf("%20s","socklen_t ");tYpeof(a);} { rlim_t a;printf("%20s","rlim_t ");tYpeof(a);} { cc_t a;printf("%20s","cc_t ");tYpeof(a);} { speed_t a;printf("%20s","speed_t ");tYpeof(a);} { tcflag_t a;printf("%20s","tcflag_t ");tYpeof(a);} }
Looks good, and sorry for delay getting this merged! I'll fix the wonky formatting myself.
Add riscv64 linux support referenced to other arches, tested under QEMU 7.0 virt machine.
To verify various types, I used the following program. It seems that there is no
swblk_t
type in linux and I leave it same as aarch64.