5 #ifdef MAJOR_IN_SYSMACROS
6 # include <sys/sysmacros.h>
10 # include <sys/mkdev.h>
14 decode_mknod(struct tcb *tcp, int offset)
16 int mode = tcp->u_arg[offset + 1];
19 printpath(tcp, tcp->u_arg[offset]);
20 tprintf(", %s", sprintmode(mode));
21 switch (mode & S_IFMT) {
24 #if defined(SPARC) || defined(SPARC64)
25 if (current_personality == 1)
26 tprintf(", makedev(%lu, %lu)",
27 (unsigned long) ((tcp->u_arg[offset + 2] >> 18) & 0x3fff),
28 (unsigned long) (tcp->u_arg[offset + 2] & 0x3ffff));
30 #endif /* SPARC || SPARC64 */
31 tprintf(", makedev(%lu, %lu)",
32 (unsigned long) major(tcp->u_arg[offset + 2]),
33 (unsigned long) minor(tcp->u_arg[offset + 2]));
43 sys_mknod(struct tcb *tcp)
45 return decode_mknod(tcp, 0);
49 sys_mknodat(struct tcb *tcp)
52 print_dirfd(tcp, tcp->u_arg[0]);
53 return decode_mknod(tcp, 1);
56 #if defined(SPARC) || defined(SPARC64)
58 sys_xmknod(struct tcb *tcp)
60 int mode = tcp->u_arg[2];
63 tprintf("%ld, ", tcp->u_arg[0]);
64 printpath(tcp, tcp->u_arg[1]);
65 tprintf(", %s", sprintmode(mode));
66 switch (mode & S_IFMT) {
69 tprintf(", makedev(%lu, %lu)",
70 (unsigned long) ((tcp->u_arg[3] >> 18) & 0x3fff),
71 (unsigned long) (tcp->u_arg[3] & 0x3ffff));
79 #endif /* SPARC || SPARC64 */