#ifndef _KLIBC_ARCHSTAT_H
#define _KLIBC_ARCHSTAT_H

#include <endian.h>

#define _STATBUF_ST_NSEC

/* This matches struct stat64 in glibc2.1, hence the absolutely
 * insane amounts of padding around dev_t's.
 * Note: The kernel zero's the padded region because glibc might read them
 * in the hope that the kernel has stretched to using larger sizes.
 */
struct stat {
	unsigned long long	st_dev;
	unsigned char   __pad0[4];

	unsigned long	__st_ino;
	unsigned int	st_mode;
	unsigned int	st_nlink;

	unsigned long	st_uid;
	unsigned long	st_gid;

	unsigned long long	st_rdev;
	unsigned char   __pad3[4];

	long long	st_size;
	unsigned long	st_blksize;

#if __BYTE_ORDER == __BIG_ENDIAN
	unsigned long   __pad4;		/* Future possible st_blocks hi bits */
	unsigned long   st_blocks;	/* Number 512-byte blocks allocated. */
#else /* Must be little */
	unsigned long   st_blocks;	/* Number 512-byte blocks allocated. */
	unsigned long   __pad4;		/* Future possible st_blocks hi bits */
#endif

	struct timespec st_atim;
	struct timespec st_mtim;
	struct timespec st_ctim;

	unsigned long long	st_ino;
};

#endif
