Changeset View
Changeset View
Standalone View
Standalone View
usr.bin/truss/syscall.h
Show First 20 Lines • Show All 153 Lines • ▼ Show 20 Lines | enum Argtype { | ||||
Readlinkres, | Readlinkres, | ||||
ShmName, | ShmName, | ||||
StringArray, | StringArray, | ||||
/* Pointers to structures. */ | /* Pointers to structures. */ | ||||
Itimerval, | Itimerval, | ||||
Kevent, | Kevent, | ||||
Kevent11, | Kevent11, | ||||
LinuxSockArgs, | |||||
Msghdr, | Msghdr, | ||||
Pollfd, | Pollfd, | ||||
Rlimit, | Rlimit, | ||||
Rusage, | Rusage, | ||||
Schedparam, | Schedparam, | ||||
Sctpsndrcvinfo, | Sctpsndrcvinfo, | ||||
Sigaction, | Sigaction, | ||||
Siginfo, | Siginfo, | ||||
Show All 23 Lines | enum Argtype { | ||||
CloudABISDFlags, | CloudABISDFlags, | ||||
CloudABISignal, | CloudABISignal, | ||||
CloudABISockStat, | CloudABISockStat, | ||||
CloudABISSFlags, | CloudABISSFlags, | ||||
CloudABITimestamp, | CloudABITimestamp, | ||||
CloudABIULFlags, | CloudABIULFlags, | ||||
CloudABIWhence, | CloudABIWhence, | ||||
LinuxAtflags, | |||||
LinuxNewstat, | |||||
LinuxSockArgs, | |||||
LinuxStat64, | |||||
MAX_ARG_TYPE, | MAX_ARG_TYPE, | ||||
}; | }; | ||||
#define ARG_MASK 0xff | #define ARG_MASK 0xff | ||||
#define OUT 0x100 | #define OUT 0x100 | ||||
#define IN /*0x20*/0 | #define IN /*0x20*/0 | ||||
_Static_assert(ARG_MASK > MAX_ARG_TYPE, | _Static_assert(ARG_MASK > MAX_ARG_TYPE, | ||||
Show All 15 Lines | struct syscall { | ||||
int ncalls; /* Number of calls */ | int ncalls; /* Number of calls */ | ||||
int nerror; /* Number of calls that returned with error */ | int nerror; /* Number of calls that returned with error */ | ||||
bool unknown; /* Unknown system call */ | bool unknown; /* Unknown system call */ | ||||
}; | }; | ||||
struct syscall *get_syscall(struct threadinfo *, u_int, u_int); | struct syscall *get_syscall(struct threadinfo *, u_int, u_int); | ||||
char *print_arg(struct syscall_args *, unsigned long*, register_t *, | char *print_arg(struct syscall_args *, unsigned long*, register_t *, | ||||
struct trussinfo *); | struct trussinfo *); | ||||
/* | |||||
* Linux Socket defines | |||||
*/ | |||||
#define LINUX_SOCKET 1 | |||||
#define LINUX_BIND 2 | |||||
#define LINUX_CONNECT 3 | |||||
#define LINUX_LISTEN 4 | |||||
#define LINUX_ACCEPT 5 | |||||
#define LINUX_GETSOCKNAME 6 | |||||
#define LINUX_GETPEERNAME 7 | |||||
#define LINUX_SOCKETPAIR 8 | |||||
#define LINUX_SEND 9 | |||||
#define LINUX_RECV 10 | |||||
#define LINUX_SENDTO 11 | |||||
#define LINUX_RECVFROM 12 | |||||
#define LINUX_SHUTDOWN 13 | |||||
#define LINUX_SETSOCKOPT 14 | |||||
#define LINUX_GETSOCKOPT 15 | |||||
#define LINUX_SENDMSG 16 | |||||
#define LINUX_RECVMSG 17 | |||||
#define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \ | |||||
0 : sizeof(register_t) - sizeof(t)) | |||||
#if BYTE_ORDER == LITTLE_ENDIAN | |||||
#define PADL_(t) 0 | |||||
#define PADR_(t) PAD_(t) | |||||
#else | |||||
#define PADL_(t) PAD_(t) | |||||
#define PADR_(t) 0 | |||||
#endif | |||||
typedef int l_int; | |||||
typedef uint32_t l_ulong; | |||||
struct linux_socketcall_args { | |||||
char what_l_[PADL_(l_int)]; l_int what; char what_r_[PADR_(l_int)]; | |||||
char args_l_[PADL_(l_ulong)]; l_ulong args; char args_r_[PADR_(l_ulong)]; | |||||
}; | |||||
void init_syscalls(void); | void init_syscalls(void); | ||||
void print_syscall(struct trussinfo *); | void print_syscall(struct trussinfo *); | ||||
void print_syscall_ret(struct trussinfo *, int, register_t *); | void print_syscall_ret(struct trussinfo *, int, register_t *); | ||||
void print_summary(struct trussinfo *trussinfo); | void print_summary(struct trussinfo *trussinfo); |