6 #ifdef MAJOR_IN_SYSMACROS
7 # include <sys/sysmacros.h>
11 # include <sys/mkdev.h>
15 decode_mknod(struct tcb *tcp, int offset)
17 int mode = tcp->u_arg[offset + 1];
20 printpath(tcp, tcp->u_arg[offset]);
21 tprintf(", %s", sprintmode(mode));
22 switch (mode & S_IFMT) {
25 #if defined(SPARC) || defined(SPARC64)
26 if (current_personality == 1)
27 tprintf(", makedev(%lu, %lu)",
28 (unsigned long) ((tcp->u_arg[offset + 2] >> 18) & 0x3fff),
29 (unsigned long) (tcp->u_arg[offset + 2] & 0x3ffff));
31 #endif /* SPARC || SPARC64 */
32 tprintf(", makedev(%lu, %lu)",
33 (unsigned long) major(tcp->u_arg[offset + 2]),
34 (unsigned long) minor(tcp->u_arg[offset + 2]));
44 sys_mknod(struct tcb *tcp)
46 return decode_mknod(tcp, 0);
50 sys_mknodat(struct tcb *tcp)
53 print_dirfd(tcp, tcp->u_arg[0]);
54 return decode_mknod(tcp, 1);
57 #if defined(SPARC) || defined(SPARC64)
59 sys_xmknod(struct tcb *tcp)
61 int mode = tcp->u_arg[2];
64 tprintf("%ld, ", tcp->u_arg[0]);
65 printpath(tcp, tcp->u_arg[1]);
66 tprintf(", %s", sprintmode(mode));
67 switch (mode & S_IFMT) {
70 tprintf(", makedev(%lu, %lu)",
71 (unsigned long) ((tcp->u_arg[3] >> 18) & 0x3fff),
72 (unsigned long) (tcp->u_arg[3] & 0x3ffff));
80 #endif /* SPARC || SPARC64 */