Skip to content

Commit

Permalink
Avoid having type members and enum members of Arch with the same name
Browse files Browse the repository at this point in the history
Resolves #3485
  • Loading branch information
rocallahan committed Apr 4, 2023
1 parent 061f041 commit e32502d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 29 deletions.
32 changes: 16 additions & 16 deletions src/kernel_abi.h
Expand Up @@ -1282,7 +1282,7 @@ struct BaseArch : public wordsize,
};
RR_VERIFY_TYPE_EXPLICIT(struct ::timezone, timezone);

struct statfs {
struct statfs_t {
__statfs_word f_type;
__statfs_word f_bsize;
__statfs_word f_blocks;
Expand All @@ -1298,9 +1298,9 @@ struct BaseArch : public wordsize,
__statfs_word f_flags;
__statfs_word f_spare[4];
};
RR_VERIFY_TYPE_EXPLICIT(struct ::statfs, statfs);
RR_VERIFY_TYPE_EXPLICIT(struct ::statfs, statfs_t);

struct statfs64 {
struct statfs64_t {
__statfs_word f_type;
__statfs_word f_bsize;
uint64_t f_blocks;
Expand All @@ -1316,7 +1316,7 @@ struct BaseArch : public wordsize,
__statfs_word f_flags;
__statfs_word f_spare[4];
};
RR_VERIFY_TYPE_EXPLICIT(struct ::statfs64, statfs64);
RR_VERIFY_TYPE_EXPLICIT(struct ::statfs64, statfs64_t);

struct itimerval {
timeval it_interval;
Expand All @@ -1338,7 +1338,7 @@ struct BaseArch : public wordsize,
} stack_t;
RR_VERIFY_TYPE(stack_t);

struct sysinfo {
struct sysinfo_t {
__kernel_long_t uptime;
__kernel_ulong_t loads[3];
__kernel_ulong_t totalram;
Expand All @@ -1355,7 +1355,7 @@ struct BaseArch : public wordsize,
uint32_t mem_unit;
char _f[20 - 2 * sizeof(__kernel_ulong_t) - sizeof(uint32_t)];
};
RR_VERIFY_TYPE_EXPLICIT(struct ::sysinfo, sysinfo);
RR_VERIFY_TYPE_EXPLICIT(struct ::sysinfo, sysinfo_t);

static const ::size_t UTSNAME_LENGTH = 65;
struct utsname {
Expand Down Expand Up @@ -2093,7 +2093,7 @@ struct X64Arch : public BaseArch<SupportedArch::x86_64, WordSize64Defs> {
// Can't verify this one because glibc leaves out the last two members and the
// kernel header isn't available to userspace.

struct stat {
struct stat_t {
dev_t st_dev;
ino_t st_ino;
nlink_t st_nlink;
Expand All @@ -2110,10 +2110,10 @@ struct X64Arch : public BaseArch<SupportedArch::x86_64, WordSize64Defs> {
struct timespec st_ctim;
syscall_slong_t __rr_unused[3];
};
RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat, struct stat);
RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat, struct stat_t);

struct stat64 : public stat {};
RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat64, struct stat64);
struct stat64_t : public stat_t {};
RR_VERIFY_TYPE_ARCH(SupportedArch::x86_64, struct ::stat64, struct stat64_t);

struct semid64_ds {
ipc64_perm sem_perm;
Expand Down Expand Up @@ -2291,7 +2291,7 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
};
RR_VERIFY_TYPE_X86_ARCH(SupportedArch::x86, ::user, user);

struct stat {
struct stat_t {
dev_t st_dev;
unsigned_short __pad1;
ino_t st_ino;
Expand All @@ -2310,9 +2310,9 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
unsigned_long __unused4;
unsigned_long __unused5;
};
RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat, struct stat);
RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat, struct stat_t);

struct __attribute__((packed)) stat64 {
struct __attribute__((packed)) stat64_t {
dev_t st_dev;
unsigned_int __pad1;
ino_t __st_ino;
Expand All @@ -2330,7 +2330,7 @@ struct X86Arch : public BaseArch<SupportedArch::x86, WordSize32Defs> {
timespec st_ctim;
ino64_t st_ino;
};
RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat64, struct stat64);
RR_VERIFY_TYPE_ARCH(SupportedArch::x86, struct ::stat64, struct stat64_t);

struct semid64_ds {
ipc64_perm sem_perm;
Expand Down Expand Up @@ -2377,7 +2377,7 @@ struct GenericArch : public BaseArch<arch_, wordsize> {
typedef uint32_t legacy_uid_t;
typedef uint32_t legacy_gid_t;

struct stat {
struct stat_t {
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
Expand Down Expand Up @@ -2405,7 +2405,7 @@ struct GenericArch : public BaseArch<arch_, wordsize> {
typename BaseArch<arch_, wordsize>::unsigned_long __unused4;
};

struct stat64 : public stat {};
struct stat64_t : public stat_t {};
};

struct ARM64Arch : public GenericArch<SupportedArch::aarch64, WordSize64Defs> {
Expand Down
26 changes: 13 additions & 13 deletions src/syscalls.py
Expand Up @@ -544,15 +544,15 @@ def __init__(self, **kwargs):
# system. path is the pathname of any file within the mounted file
# system. buf is a pointer to a statfs structure defined
# approximately as follows:
statfs = EmulatedSyscall(x86=99, x64=137, generic=43, arg2="struct Arch::statfs")
statfs = EmulatedSyscall(x86=99, x64=137, generic=43, arg2="struct Arch::statfs_t")

# int fstatfs(int fd, struct statfs *buf)
#
# The function statfs() returns information about a mounted file
# system. path is the pathname of any file within the
# get_time(GET_TID(thread_id));mounted file system. buf is a pointer
# to a statfs structure defined approximately as follows:
fstatfs = EmulatedSyscall(x86=100, x64=138, generic=44, arg2="struct Arch::statfs")
fstatfs = EmulatedSyscall(x86=100, x64=138, generic=44, arg2="struct Arch::statfs_t")

ioperm = EmulatedSyscall(x86=101, x64=173)

Expand All @@ -574,9 +574,9 @@ def __init__(self, **kwargs):
# stored there.
setitimer = EmulatedSyscall(x86=104, x64=38, generic=103, arg3="typename Arch::itimerval")
getitimer = EmulatedSyscall(x86=105, x64=36, generic=102, arg2="typename Arch::itimerval")
stat = EmulatedSyscall(x86=106, x64=4, arg2="struct Arch::stat")
lstat = EmulatedSyscall(x86=107, x64=6, arg2="struct Arch::stat")
fstat = EmulatedSyscall(x86=108, x64=5, generic=80, arg2="struct Arch::stat")
stat = EmulatedSyscall(x86=106, x64=4, arg2="struct Arch::stat_t")
lstat = EmulatedSyscall(x86=107, x64=6, arg2="struct Arch::stat_t")
fstat = EmulatedSyscall(x86=108, x64=5, generic=80, arg2="struct Arch::stat_t")
olduname = UnsupportedSyscall(x86=109)
iopl = EmulatedSyscall(x86=110, x64=172)
vhangup = UnsupportedSyscall(x86=111, x64=153, generic=58)
Expand All @@ -596,7 +596,7 @@ def __init__(self, **kwargs):
#
# sysinfo() provides a simple way of getting overall system
# statistics.
sysinfo = EmulatedSyscall(x86=116, x64=99, generic=179, arg1="struct Arch::sysinfo")
sysinfo = EmulatedSyscall(x86=116, x64=99, generic=179, arg1="struct Arch::sysinfo_t")
# int ipc(unsigned int call, int first, int second, int third, void *ptr, long
#fifth);
#
Expand Down Expand Up @@ -992,20 +992,20 @@ def __init__(self, **kwargs):
# int stat(const char *path, struct stat *buf);
#
# stat() stats the file pointed to by path and fills in buf.
stat64 = EmulatedSyscall(x86=195, arg2="struct Arch::stat64")
stat64 = EmulatedSyscall(x86=195, arg2="struct Arch::stat64_t")

# int lstat(const char *path, struct stat *buf);
#
# lstat() is identical to stat(), except that if path is a symbolic
# link, then the link itself is stat-ed, not the file that it refers
# to.
lstat64 = EmulatedSyscall(x86=196, arg2="struct Arch::stat64")
lstat64 = EmulatedSyscall(x86=196, arg2="struct Arch::stat64_t")

# int fstat(int fd, struct stat *buf)
#
# fstat() is identical to stat(), except that the file to be stat-ed
# is specified by the file descriptor fd.
fstat64 = EmulatedSyscall(x86=197, arg2="struct Arch::stat64")
fstat64 = EmulatedSyscall(x86=197, arg2="struct Arch::stat64_t")

lchown32 = EmulatedSyscall(x86=198)

Expand Down Expand Up @@ -1342,8 +1342,8 @@ def __init__(self, **kwargs):
#
# FIXME: we use arg3() here, although according to man pages this system
# call has only 2 parameters. However, strace tells another story...
statfs64 = EmulatedSyscall(x86=268, arg3="struct Arch::statfs64")
fstatfs64 = EmulatedSyscall(x86=269, arg3="struct Arch::statfs64")
statfs64 = EmulatedSyscall(x86=268, arg3="struct Arch::statfs64_t")
fstatfs64 = EmulatedSyscall(x86=269, arg3="struct Arch::statfs64_t")

# int tgkill(int tgid, int tid, int sig)
#
Expand Down Expand Up @@ -1443,8 +1443,8 @@ def __init__(self, **kwargs):
# The fstatat() system call operates in exactly the same way as
# stat(2), except for the differences described in this manual
# page....
fstatat = EmulatedSyscall(x64=262, generic=79, arg3="struct Arch::stat")
fstatat64 = EmulatedSyscall(x86=300, arg3="struct Arch::stat64")
fstatat = EmulatedSyscall(x64=262, generic=79, arg3="struct Arch::stat_t")
fstatat64 = EmulatedSyscall(x86=300, arg3="struct Arch::stat64_t")

# int unlinkat(int dirfd, const char *pathname, int flags)
#
Expand Down

0 comments on commit e32502d

Please sign in to comment.