linux/arch/mips/include/uapi/asm/stat.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * This file is subject to the terms and conditions of the GNU General Public
   4 * License.  See the file "COPYING" in the main directory of this archive
   5 * for more details.
   6 *
   7 * Copyright (C) 1995, 1999, 2000 Ralf Baechle
   8 * Copyright (C) 2000 Silicon Graphics, Inc.
   9 */
  10#ifndef _ASM_STAT_H
  11#define _ASM_STAT_H
  12
  13#include <linux/types.h>
  14
  15#include <asm/sgidefs.h>
  16
  17#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
  18
  19struct stat {
  20        unsigned        st_dev;
  21        long            st_pad1[3];             /* Reserved for network id */
  22        ino_t           st_ino;
  23        mode_t          st_mode;
  24        __u32           st_nlink;
  25        uid_t           st_uid;
  26        gid_t           st_gid;
  27        unsigned        st_rdev;
  28        long            st_pad2[2];
  29        off_t           st_size;
  30        long            st_pad3;
  31        /*
  32         * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
  33         * but we don't have it under Linux.
  34         */
  35        time_t          st_atime;
  36        long            st_atime_nsec;
  37        time_t          st_mtime;
  38        long            st_mtime_nsec;
  39        time_t          st_ctime;
  40        long            st_ctime_nsec;
  41        long            st_blksize;
  42        long            st_blocks;
  43        long            st_pad4[14];
  44};
  45
  46/*
  47 * This matches struct stat64 in glibc2.1, hence the absolutely insane
  48 * amounts of padding around dev_t's.  The memory layout is the same as of
  49 * struct stat of the 64-bit kernel.
  50 */
  51
  52struct stat64 {
  53        unsigned long   st_dev;
  54        unsigned long   st_pad0[3];     /* Reserved for st_dev expansion  */
  55
  56        unsigned long long      st_ino;
  57
  58        mode_t          st_mode;
  59        __u32           st_nlink;
  60
  61        uid_t           st_uid;
  62        gid_t           st_gid;
  63
  64        unsigned long   st_rdev;
  65        unsigned long   st_pad1[3];     /* Reserved for st_rdev expansion  */
  66
  67        long long       st_size;
  68
  69        /*
  70         * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
  71         * but we don't have it under Linux.
  72         */
  73        time_t          st_atime;
  74        unsigned long   st_atime_nsec;  /* Reserved for st_atime expansion  */
  75
  76        time_t          st_mtime;
  77        unsigned long   st_mtime_nsec;  /* Reserved for st_mtime expansion  */
  78
  79        time_t          st_ctime;
  80        unsigned long   st_ctime_nsec;  /* Reserved for st_ctime expansion  */
  81
  82        unsigned long   st_blksize;
  83        unsigned long   st_pad2;
  84
  85        long long       st_blocks;
  86};
  87
  88#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
  89
  90#if _MIPS_SIM == _MIPS_SIM_ABI64
  91
  92/* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
  93struct stat {
  94        unsigned int            st_dev;
  95        unsigned int            st_pad0[3]; /* Reserved for st_dev expansion */
  96
  97        unsigned long           st_ino;
  98
  99        mode_t                  st_mode;
 100        __u32                   st_nlink;
 101
 102        uid_t                   st_uid;
 103        gid_t                   st_gid;
 104
 105        unsigned int            st_rdev;
 106        unsigned int            st_pad1[3]; /* Reserved for st_rdev expansion */
 107
 108        off_t                   st_size;
 109
 110        /*
 111         * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
 112         * but we don't have it under Linux.
 113         */
 114        unsigned int            st_atime;
 115        unsigned int            st_atime_nsec;
 116
 117        unsigned int            st_mtime;
 118        unsigned int            st_mtime_nsec;
 119
 120        unsigned int            st_ctime;
 121        unsigned int            st_ctime_nsec;
 122
 123        unsigned int            st_blksize;
 124        unsigned int            st_pad2;
 125
 126        unsigned long           st_blocks;
 127};
 128
 129#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
 130
 131#define STAT_HAVE_NSEC 1
 132
 133#endif /* _ASM_STAT_H */
 134