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 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 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 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