root/arch/mips/include/uapi/asm/stat.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  19 struct 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 
  52 struct 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.  */
  93 struct 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 */

/* [<][>][^][v][top][bottom][index][help] */