Ejemplo n.º 1
0
static inline void
linux32_from_stat(struct stat *st, struct linux32_stat64 *st32)
{
	bzero(st32, sizeof(*st32));
	st32->lst_dev = linux_fakedev(st->st_dev, 0);
	st32->__lst_ino = st->st_ino;
	st32->lst_mode = st->st_mode;
	if (st->st_nlink >= (1 << 15))
		st32->lst_nlink = (1 << 15) - 1;
	else
		st32->lst_nlink = st->st_nlink;
	st32->lst_uid = st->st_uid;
	st32->lst_gid = st->st_gid;
	st32->lst_rdev = linux_fakedev(st->st_rdev, 0);
	st32->lst_size = st->st_size;
	st32->lst_blksize = st->st_blksize;
	st32->lst_blocks = st->st_blocks;
	st32->lst_atime = st->st_atime;
	st32->lst_mtime = st->st_mtime;
	st32->lst_ctime = st->st_ctime;
#ifdef LINUX32_STAT64_HAS_NSEC
	st32->lst_atime_nsec = st->st_atimensec;
	st32->lst_mtime_nsec = st->st_mtimensec;
	st32->lst_ctime_nsec = st->st_ctimensec;
#endif
#ifdef LINUX32_STAT64_HAS_BROKEN_ST_INO
	st32->lst_ino = st->st_ino;
#endif

	return;
}
Ejemplo n.º 2
0
/*
 * Convert a NetBSD stat structure to a Linux stat structure.
 * Only the order of the fields and the padding in the structure
 * is different. linux_fakedev is a machine-dependent function
 * which optionally converts device driver major/minor numbers
 * (XXX horrible, but what can you do against code that compares
 * things against constant major device numbers? sigh)
 */
static void
bsd_to_linux_stat(struct stat *bsp, struct linux_stat *lsp)
{

	lsp->lst_dev     = linux_fakedev(bsp->st_dev, 0);
	lsp->lst_ino     = bsp->st_ino;
	lsp->lst_mode    = (linux_mode_t)bsp->st_mode;
	if (bsp->st_nlink >= (1 << 15))
		lsp->lst_nlink = (1 << 15) - 1;
	else
		lsp->lst_nlink = (linux_nlink_t)bsp->st_nlink;
	lsp->lst_uid     = bsp->st_uid;
	lsp->lst_gid     = bsp->st_gid;
	lsp->lst_rdev    = linux_fakedev(bsp->st_rdev, 1);
	lsp->lst_size    = bsp->st_size;
	lsp->lst_blksize = bsp->st_blksize;
	lsp->lst_blocks  = bsp->st_blocks;
	lsp->lst_atime   = bsp->st_atime;
	lsp->lst_mtime   = bsp->st_mtime;
	lsp->lst_ctime   = bsp->st_ctime;
#ifdef LINUX_STAT_HAS_NSEC
	lsp->lst_atime_nsec   = bsp->st_atimensec;
	lsp->lst_mtime_nsec   = bsp->st_mtimensec;
	lsp->lst_ctime_nsec   = bsp->st_ctimensec;
#endif
}
Ejemplo n.º 3
0
static inline void
bsd_to_linux32_stat(struct stat *st, struct linux32_stat *st32)
{
	memset(st32, 0, sizeof(*st32));
	st32->lst_dev = linux_fakedev(st->st_dev, 0);
	st32->lst_ino = st->st_ino;
	st32->lst_mode = st->st_mode;
	if (st->st_nlink >= (1 << 15))
		st32->lst_nlink = (1 << 15) - 1;
	else
		st32->lst_nlink = st->st_nlink;
	st32->lst_uid = st->st_uid;
	st32->lst_gid = st->st_gid;
	st32->lst_rdev = linux_fakedev(st->st_rdev, 0);
	st32->lst_size = st->st_size;
	st32->lst_blksize = st->st_blksize;
	st32->lst_blocks = st->st_blocks;
	st32->lst_atime = st->st_atime;
	st32->lst_mtime = st->st_mtime;
	st32->lst_ctime = st->st_ctime;
#ifdef LINUX32_STAT_HAS_NSEC
	st32->lst_atime_nsec = st->st_atimensec;
	st32->lst_mtime_nsec = st->st_mtimensec;
	st32->lst_ctime_nsec = st->st_ctimensec;
#endif
}