add chdir
[snitchaser:mainline.git] / oldcode / checkpoint / fstat64.c
1
2 #include "syscalls.h"
3
4 struct stat64 {
5         unsigned long long      st_dev;
6         unsigned char   __pad0[4];
7
8         unsigned long   __st_ino;
9
10         unsigned int    st_mode;
11         unsigned int    st_nlink;
12
13         unsigned long   st_uid;
14         unsigned long   st_gid;
15
16         unsigned long long      st_rdev;
17         unsigned char   __pad3[4];
18
19         long long       st_size;
20         unsigned long   st_blksize;
21
22         /* Number 512-byte blocks allocated. */
23         unsigned long long      st_blocks;
24
25         unsigned long   st_atime;
26         unsigned long   st_atime_nsec;
27
28         unsigned long   st_mtime;
29         unsigned int    st_mtime_nsec;
30
31         unsigned long   st_ctime;
32         unsigned long   st_ctime_nsec;
33
34         unsigned long long      st_ino;
35 };
36
37
38 #ifndef SYSCALL_PRINTER
39
40 int SCOPE
41 post_fstat64(const struct syscall_regs * regs)
42 {
43         write_eax(regs);
44         if (regs->eax >= 0) {
45                 write_mem(regs->ecx, sizeof(struct stat64));
46         }
47         return 0;
48 }
49
50 int SCOPE
51 replay_fstat64(const struct syscall_regs * regs)
52 {
53         int eax = read_int32();
54         if (eax >= 0) {
55                 read_mem(regs->ecx, sizeof(struct stat64));
56         }
57         return eax;
58 }
59
60 #else
61
62 void
63 output_fstat64(int nr)
64 {
65         int32_t ret;
66         ret = read_eax();
67         if (ret >= 0)
68                 skip(sizeof(struct stat64));
69         printf("fstat64\t%d\n", ret);
70 }
71 #endif
72