* Authors:
* Jonathan Pryor (jonpryor@vt.edu)
*
- * Copyright (C) 2004 Jonathan Pryor
+ * Copyright (C) 2004-2006 Jonathan Pryor
*/
#ifndef _GNU_SOURCE
G_BEGIN_DECLS
-struct Mono_Posix_Stat {
- /* dev_t */ mph_dev_t st_dev; /* device */
- /* ino_t */ mph_ino_t st_ino; /* inode */
- /* mode_t */ guint32 st_mode; /* protection */
- guint32 _padding_; /* structure padding */
- /* nlink_t */ mph_nlink_t st_nlink; /* number of hard links */
- /* uid_t */ mph_uid_t st_uid; /* user ID of owner */
- /* gid_t */ mph_gid_t st_gid; /* group ID of owner */
- /* dev_t */ mph_dev_t st_rdev; /* device type (if inode device) */
- /* off_t */ mph_off_t st_size; /* total size, in bytes */
- /* blksize_t */ mph_blksize_t st_blksize; /* blocksize for filesystem I/O */
- /* blkcnt_t */ mph_blkcnt_t st_blocks; /* number of blocks allocated */
-
- /* st_atime, st_mtime, and st_ctime are macros (!), so use a slightly
- * different name to appease CPP */
-
- /* time_t */ mph_time_t st_atime_; /* time of last access */
- /* time_t */ mph_time_t st_mtime_; /* time of last modification */
- /* time_t */ mph_time_t st_ctime_; /* time of last status change */
-};
-
-static int
-copy_stat (struct Mono_Posix_Stat *to, struct stat *from)
-{
- if (Mono_Posix_ToFilePermissions (from->st_mode, &to->st_mode) == -1)
- return -1;
- to->st_dev = from->st_dev;
- to->st_ino = from->st_ino;
- to->st_nlink = from->st_nlink;
- to->st_uid = from->st_uid;
- to->st_gid = from->st_gid;
- to->st_rdev = from->st_rdev;
- to->st_size = from->st_size;
- to->st_blksize = from->st_blksize;
- to->st_blocks = from->st_blocks;
- to->st_atime_ = from->st_atime;
- to->st_mtime_ = from->st_mtime;
- to->st_ctime_ = from->st_ctime;
- return 0;
-}
-
gint32
Mono_Posix_Syscall_stat (const char *file_name, struct Mono_Posix_Stat *buf)
{
return -1;
}
r = stat (file_name, &_buf);
- if (r != -1 && copy_stat (buf, &_buf) == -1)
+ if (r != -1 && Mono_Posix_ToStat (&_buf, buf) == -1)
r = -1;
return r;
}
return -1;
}
r = fstat (filedes, &_buf);
- if (r != -1 && copy_stat (buf, &_buf) == -1)
+ if (r != -1 && Mono_Posix_ToStat (&_buf, buf) == -1)
r = -1;
return r;
}
return -1;
}
r = lstat (file_name, &_buf);
- if (r != -1 && copy_stat (buf, &_buf) == -1)
+ if (r != -1 && Mono_Posix_ToStat (&_buf, buf) == -1)
r = -1;
return r;
}