blob: b5bbf6704caef7a659763fe19a77ef3b4fff2705 [file] [log] [blame]
Greg Kroah-Hartman6f52b162017-11-01 15:08:43 +01001/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#ifndef _PARISC_STAT_H
3#define _PARISC_STAT_H
4
5#include <linux/types.h>
6
7struct stat {
8 unsigned int st_dev; /* dev_t is 32 bits on parisc */
Helge Deller9391bc72014-01-31 23:00:38 +01009 unsigned int st_ino; /* 32 bits */
10 unsigned short st_mode; /* 16 bits */
Al Viro1dfb5752012-05-19 10:17:45 -040011 unsigned short st_nlink; /* 16 bits */
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 unsigned short st_reserved1; /* old st_uid */
13 unsigned short st_reserved2; /* old st_gid */
14 unsigned int st_rdev;
Helge Deller9391bc72014-01-31 23:00:38 +010015 signed int st_size;
16 signed int st_atime;
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 unsigned int st_atime_nsec;
Helge Deller9391bc72014-01-31 23:00:38 +010018 signed int st_mtime;
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 unsigned int st_mtime_nsec;
Helge Deller9391bc72014-01-31 23:00:38 +010020 signed int st_ctime;
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 unsigned int st_ctime_nsec;
22 int st_blksize;
23 int st_blocks;
24 unsigned int __unused1; /* ACL stuff */
25 unsigned int __unused2; /* network */
Helge Deller9391bc72014-01-31 23:00:38 +010026 unsigned int __unused3; /* network */
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 unsigned int __unused4; /* cnodes */
28 unsigned short __unused5; /* netsite */
29 short st_fstype;
30 unsigned int st_realdev;
31 unsigned short st_basemode;
32 unsigned short st_spareshort;
Helge Deller9391bc72014-01-31 23:00:38 +010033 unsigned int st_uid;
34 unsigned int st_gid;
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 unsigned int st_spare4[3];
36};
37
38#define STAT_HAVE_NSEC
39
Linus Torvalds1da177e2005-04-16 15:20:36 -070040/* This is the struct that 32-bit userspace applications are expecting.
41 * How 64-bit apps are going to be compiled, I have no idea. But at least
42 * this way, we don't have a wrapper in the kernel.
43 */
44struct stat64 {
45 unsigned long long st_dev;
46 unsigned int __pad1;
47
48 unsigned int __st_ino; /* Not actually filled in */
49 unsigned int st_mode;
50 unsigned int st_nlink;
51 unsigned int st_uid;
52 unsigned int st_gid;
53 unsigned long long st_rdev;
54 unsigned int __pad2;
55 signed long long st_size;
56 signed int st_blksize;
57
58 signed long long st_blocks;
59 signed int st_atime;
60 unsigned int st_atime_nsec;
61 signed int st_mtime;
62 unsigned int st_mtime_nsec;
63 signed int st_ctime;
64 unsigned int st_ctime_nsec;
65 unsigned long long st_ino;
66};
67
68#endif