add chdir
[snitchaser:mainline.git] / oldcode / checkpoint / ugetrlimit.c
1
2 #include "syscalls.h"
3
4 struct rlimit {
5         unsigned long   rlim_cur;
6         unsigned long   rlim_max;
7 };
8
9 /* ugetrlimit is actually getrlimit in kernel,
10  * libc's getrlimit is old_getrlimit in kernel  */
11
12 #ifndef SYSCALL_PRINTER
13 int SCOPE
14 post_ugetrlimit(const struct syscall_regs * regs)
15 {
16         write_eax(regs);
17         if (regs->eax == 0) {
18                 write_mem(regs->ecx, sizeof(struct rlimit));
19         }
20         return 0;
21 }
22
23 int SCOPE
24 replay_ugetrlimit(const struct syscall_regs * regs)
25 {
26         int32_t eax = read_int32();
27         if (eax == 0) {
28                 read_mem(regs->ecx, sizeof(struct rlimit));
29         }
30         return eax;
31 }
32
33 #else
34
35 void
36 output_ugetrlimit(int nr)
37 {
38         int32_t ret = read_eax();
39         if (ret == 0)
40                 skip(sizeof(struct rlimit));
41         printf("ugetrlimit:\t%d\n", ret);
42 }
43 #endif
44