blob: 41ddf94d53f3504c4975c0f63782ebe2de7d6612 [file] [log] [blame]
/*
* Copyright 2008 The Native Client Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can
* be found in the LICENSE file.
*/
/* TODO(mseaborn): Import this header file from outside rather than
keeping a copy in the glibc tree. */
#ifndef _NACL_STAT_H
#define _NACL_STAT_H
/* From service_runtime/include/machine/_types.h */
#include <stdint.h>
#ifndef nacl_abi___dev_t_defined
#define nacl_abi___dev_t_defined
typedef int64_t nacl_abi___dev_t;
typedef nacl_abi___dev_t nacl_abi_dev_t;
#endif
#ifndef nacl_abi___ino_t_defined
#define nacl_abi___ino_t_defined
typedef int64_t nacl_abi___ino_t;
typedef nacl_abi___ino_t nacl_abi_ino_t;
#endif
#ifndef nacl_abi___mode_t_defined
#define nacl_abi___mode_t_defined
typedef uint32_t nacl_abi___mode_t;
typedef nacl_abi___mode_t nacl_abi_mode_t;
#endif
#ifndef nacl_abi___nlink_t_defined
#define nacl_abi___nlink_t_defined
typedef unsigned int nacl_abi___nlink_t;
typedef nacl_abi___nlink_t nacl_abi_nlink_t;
#endif
#ifndef nacl_abi___uid_t_defined
#define nacl_abi___uid_t_defined
typedef uint32_t nacl_abi___uid_t;
typedef nacl_abi___uid_t nacl_abi_uid_t;
#endif
#ifndef nacl_abi___gid_t_defined
#define nacl_abi___gid_t_defined
typedef uint32_t nacl_abi___gid_t;
typedef nacl_abi___gid_t nacl_abi_gid_t;
#endif
#ifndef nacl_abi___off_t_defined
#define nacl_abi___off_t_defined
typedef int64_t nacl_abi__off_t;
typedef nacl_abi__off_t nacl_abi_off_t;
#endif
#ifndef nacl_abi___blksize_t_defined
#define nacl_abi___blksize_t_defined
typedef long int nacl_abi___blksize_t;
typedef nacl_abi___blksize_t nacl_abi_blksize_t;
#endif
#ifndef nacl_abi___blkcnt_t_defined
#define nacl_abi___blkcnt_t_defined
typedef long int nacl_abi___blkcnt_t;
typedef nacl_abi___blkcnt_t nacl_abi_blkcnt_t;
#endif
#ifndef nacl_abi___time_t_defined
#define nacl_abi___time_t_defined
typedef int64_t nacl_abi___time_t;
typedef nacl_abi___time_t nacl_abi_time_t;
#endif
/* From service_runtime/fs/fs.h */
struct nacl_abi_stat { /* must be renamed when ABI is exported */
nacl_abi_dev_t nacl_abi_st_dev; /* not implemented */
nacl_abi_ino_t nacl_abi_st_ino; /* not implemented */
nacl_abi_mode_t nacl_abi_st_mode; /* partially implemented. */
nacl_abi_nlink_t nacl_abi_st_nlink; /* link count */
nacl_abi_uid_t nacl_abi_st_uid; /* not implemented */
nacl_abi_gid_t nacl_abi_st_gid; /* not implemented */
nacl_abi_dev_t nacl_abi_st_rdev; /* not implemented */
nacl_abi_off_t nacl_abi_st_size; /* object size */
nacl_abi_blksize_t nacl_abi_st_blksize; /* not implemented */
nacl_abi_blkcnt_t nacl_abi_st_blocks; /* not implemented */
nacl_abi_time_t nacl_abi_st_atime; /* access time */
int64_t nacl_abi_st_atimensec; /* possibly just pad */
nacl_abi_time_t nacl_abi_st_mtime; /* modification time */
int64_t nacl_abi_st_mtimensec; /* possibly just pad */
nacl_abi_time_t nacl_abi_st_ctime; /* inode change time */
int64_t nacl_abi_st_ctimensec; /* possibly just pad */
};
/* Converts struct nacl_abi_stat to struct stat. Implemented in fxstat.c */
void __nacl_abi_stat_to_stat (struct nacl_abi_stat *nacl_st,
struct stat *st);
#endif