about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h53
-rw-r--r--sysdeps/unix/sysv/sysv4/solaris2/bits/types.h118
2 files changed, 161 insertions, 10 deletions
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h
index c6048a9277..ef93b7be27 100644
--- a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h
+++ b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,19 +22,21 @@
 
 #include <bits/types.h>
 
+/* Length of array allocated for file system type name.  */
+#define _ST_FSTYPSZ	16
+
+
 /* Structure describing file characteristics.  */
 struct stat
   {
-    unsigned long int st_dev;
+    __dev_t st_dev;
     long int st_filler1[3];
     __ino_t st_ino;		/* File serial number.		*/
-    unsigned long int st_mode;	/* File mode.  */
-    /* This is unsigned long instead of __nlink_t, since SVR4 has
-       a long nlink_t, not a short one.  */
-    unsigned long int st_nlink;	/* Link count.  */
+    __mode_t st_mode;		/* File mode.  */
+    __nlink_t st_nlink;		/* Link count.  */
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-    unsigned long int st_rdev;	/* Device number, if device.  */
+    __dev_t st_rdev;	/* Device number, if device.  */
     long int st_filler2[2];
 
     __off_t st_size;		/* Size of file, in bytes.  */
@@ -48,14 +50,45 @@ struct stat
     __time_t st_ctime;		/* Time of last status change.  */
     unsigned long int st_ctime_usec;
 
-    __blkcnt_t st_blksize;	/* Optimal block size for I/O.  */
+    long int st_blksize;	/* Optimal block size for I/O.  */
 #define	_STATBUF_ST_BLKSIZE	/* Tell code we have this member.  */
 
-    long int st_blocks;		/* Number of 512-byte blocks allocated.  */
-    char st_fstype[16];
+    __blkcnt_t st_blocks;	/* Number of 512-byte blocks allocated.  */
+    char st_fstype[_ST_FSTYPSZ];
     long int st_filler4[8];
   };
 
+#ifdef __USE_LARGEFILE64
+/* struct stat64 has the shape as stat */
+struct stat64
+  {
+    __dev_t st_dev;			/* Device */
+    long int st_filler1[2];
+    __ino64_t st_ino;			/* File serial number */
+    __mode_t st_mode;			/* File mode */
+    __nlink_t st_nlink;			/* Link count */
+    __uid_t st_uid;             	/* User ID of the file's owner. */
+    __gid_t st_gid;             	/* Group ID of the file's group.*/
+    __dev_t st_rdev;			/* Device number, if device */
+    long int st_filler2;
+
+    __off64_t st_size;			/* Size of file, in bytes. */
+
+    __time_t st_atime;			/* Time of last access */
+    unsigned long int st_atime_usec;
+    __time_t st_mtime; 			/* Time of last modification */
+    unsigned long int st_mtime_usec;
+    __time_t st_ctime;			/* Time of last status change */
+    unsigned long int st_ctime_usec;
+
+    long int st_blksize;
+    __blkcnt64_t st_blocks;
+    char st_fstype[_ST_FSTYPSZ];
+    long int st_filler3[8];
+};
+#endif
+
+
 /* Encoding of the file mode.  */
 
 #define	__S_IFMT	0170000	/* These bits determine file type.  */
diff --git a/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h b/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h
new file mode 100644
index 0000000000..44e343ab1c
--- /dev/null
+++ b/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h
@@ -0,0 +1,118 @@
+/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/*
+ * Never include this file directly; use <sys/types.h> instead.
+ */
+
+#ifndef	_BITS_TYPES_H
+#define	_BITS_TYPES_H	1
+
+
+/* Convenience types.  */
+typedef unsigned char __u_char;
+typedef unsigned short __u_short;
+typedef unsigned int __u_int;
+typedef unsigned long __u_long;
+#ifdef __GNUC__
+typedef unsigned long long int __u_quad_t;
+typedef long long int __quad_t;
+#else
+typedef struct
+{
+  long __val[2];
+} __quad_t;
+typedef struct
+{
+  __u_long __val[2];
+} __u_quad_t;
+#endif
+typedef signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef signed short int __int16_t;
+typedef unsigned short int __uint16_t;
+typedef signed int __int32_t;
+typedef unsigned int __uint32_t;
+#ifdef __GNUC__
+typedef signed long long int __int64_t;
+typedef unsigned long long int __uint64_t;
+#endif
+typedef __quad_t *__qaddr_t;
+typedef unsigned long int __dev_t;   /* Type of device numbers.  */
+typedef long int __uid_t;	     /* Type of user identifications.  */
+typedef long int __gid_t;	     /* Type of group identifications.  */
+typedef unsigned long int __ino_t;   /* Type of file serial numbers.  */
+typedef unsigned long int __mode_t;  /* Type of file attribute bitmasks.  */
+typedef unsigned long int __nlink_t; /* Type of file link counts.  */
+typedef long int __off_t;	     /* Type of file sizes and offsets.  */
+typedef __quad_t __loff_t;	     /* Type of file sizes and offsets.  */
+typedef long int __pid_t;	     /* Type of process identifications.  */
+typedef int __ssize_t;		     /* Type of a byte count, or error.  */
+typedef __u_quad_t __fsid_t;	     /* Type of file system IDs.  */
+typedef long int __clock_t;	     /* Type of CPU usage counts.  */
+typedef long int __rlim_t;	     /* Type for resource measurement.  */
+typedef __quad_t __rlim64_t;	     /* Type for resource measurement (LFS). */
+typedef __quad_t __ino64_t;	     /* Type for file serial numbers.  */
+typedef __loff_t __off64_t;	     /* Type of file izes and offsets.  */
+typedef unsigned int __id_t;	     /* General type for IDs.  */
+
+/* Everythin' else.  */
+typedef long int __daddr_t;	     /* The type of a disk address.  */
+typedef char *__caddr_t;
+typedef long int __time_t;
+typedef long int __swblk_t;	     /* Type of a swap block maybe?  */
+typedef int __key_t;		     /* Type of an IPC key */
+
+/* fd_set for select.  */
+
+/* Number of descriptors that can fit in an `fd_set'.  */
+#define	__FD_SETSIZE	1024
+
+/* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
+#define	__NFDBITS	(sizeof (unsigned long int) * 8)
+#define	__FDELT(d)	((d) / __NFDBITS)
+#define	__FDMASK(d)	((unsigned long int) 1 << ((d) % __NFDBITS))
+
+typedef struct
+  {
+    /* XPG4.2 requires this member name.  */
+    unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
+  } __fd_set;
+
+typedef unsigned long int __fd_mask;
+
+
+/* Types from the Large File Support interface.  */
+
+/* Type to count number os disk blocks.  */
+typedef long int __blkcnt_t;
+typedef __quad_t __blkcnt64_t;
+
+/* Type to count file system blocks.  */
+typedef unsigned int __fsblkcnt_t;
+typedef __u_quad_t __fsblkcnt64_t;
+
+/* Type to count file system inodes.  */
+typedef unsigned long int __fsfilcnt_t;
+typedef __u_quad_t __fsfilcnt64_t;
+
+/* Used in XTI.  */
+typedef int __t_scalar_t;
+typedef unsigned int __t_uscalar_t;
+
+#endif /* bits/types.h */