1 #include <sys/cdefs.h>
2 #include "namespace.h"
3 #include <lib.h>
4
5 #include <sys/stat.h>
6 #include <string.h>
7
8 #ifdef __weak_alias
9 __weak_alias(_stat, __stat50);
10 __weak_alias(_lstat, __lstat50);
11 __weak_alias(_fstat, __fstat50);
12
13 __weak_alias(stat, __stat50);
14 __weak_alias(lstat, __lstat50);
15 __weak_alias(fstat, __fstat50);
16 #endif
17
stat(const char * name,struct stat * buffer)18 int stat(const char *name, struct stat *buffer)
19 {
20 message m;
21
22 memset(&m, 0, sizeof(m));
23 m.m_lc_vfs_stat.len = strlen(name) + 1;
24 m.m_lc_vfs_stat.name = (vir_bytes)name;
25 m.m_lc_vfs_stat.buf = (vir_bytes)buffer;
26
27 return _syscall(VFS_PROC_NR, VFS_STAT, &m);
28 }
29
fstat(int fd,struct stat * buffer)30 int fstat(int fd, struct stat *buffer)
31 {
32 message m;
33
34 memset(&m, 0, sizeof(m));
35 m.m_lc_vfs_fstat.fd = fd;
36 m.m_lc_vfs_fstat.buf = (vir_bytes)buffer;
37
38 return _syscall(VFS_PROC_NR, VFS_FSTAT, &m);
39 }
40
lstat(const char * name,struct stat * buffer)41 int lstat(const char *name, struct stat *buffer)
42 {
43 message m;
44
45 memset(&m, 0, sizeof(m));
46 m.m_lc_vfs_stat.len = strlen(name) + 1;
47 m.m_lc_vfs_stat.name = (vir_bytes)name;
48 m.m_lc_vfs_stat.buf = (vir_bytes)buffer;
49
50 return _syscall(VFS_PROC_NR, VFS_LSTAT, &m);
51 }
52