This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FreeBSD port (61): basic types


Here are the basic type definitions for the FreeBSD port.

Note: I made time_t a 'long int', because this is what most software
expects on 64-bit platforms, and it will avoid a big problem in 2038.
The conversion from kernel time_t to userland time_t (on 64-bit
platforms) is done in the gettimeofday, utimes, select etc. system
calls. On 32-bit i386 no conversion is done, of course.


2002-10-05  Bruno Haible  <bruno@clisp.org>

	* sysdeps/unix/bsd/bsd4.4/freebsd/i386/bits/types.h: New file.
	* sysdeps/unix/bsd/bsd4.4/freebsd/alpha/bits/types.h: New file.

*** /dev/null	Wed Apr 26 16:41:04 2000
--- sysdeps/unix/bsd/bsd4.4/freebsd/i386/bits/types.h	Sun Sep 15 22:00:52 2002
***************
*** 0 ****
--- 1,144 ----
+ /* Copyright (C) 1991-1992,1994-1999,2000-2002 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 Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; 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
+ 
+ #include <features.h>
+ 
+ #define __need_size_t
+ #include <stddef.h>
+ 
+ /* Convenience types.  */
+ typedef unsigned char __u_char;
+ typedef unsigned short __u_short;
+ typedef unsigned int __u_int;
+ typedef unsigned long __u_long;
+ #ifdef __GLIBC_HAVE_LONG_LONG
+ __extension__ typedef unsigned long long int __u_quad_t;
+ __extension__ typedef long long int __quad_t;
+ #else
+ typedef struct
+   {
+     long int __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 __GLIBC_HAVE_LONG_LONG
+ __extension__ typedef signed long long int __int64_t;
+ __extension__ typedef unsigned long long int __uint64_t;
+ #endif
+ typedef __quad_t *__qaddr_t;
+ 
+ typedef __uint32_t __dev_t;		/* Type of device numbers.  */
+ typedef __uint32_t __uid_t;		/* Type of user identifications.  */
+ typedef __uint32_t __gid_t;		/* Type of group identifications.  */
+ typedef __uint32_t __ino_t;		/* Type of file serial numbers.  */
+ typedef __uint16_t __mode_t;		/* Type of file attribute bitmasks.  */
+ typedef __uint16_t __nlink_t;		/* Type of file link counts.  */
+ typedef __quad_t __off_t;		/* Type of file sizes and offsets.  */
+ typedef __quad_t __loff_t;		/* Type of file sizes and offsets.  */
+ typedef int __pid_t;			/* Type of process identifications.  */
+ typedef int __ssize_t;			/* Type of a byte count, or error.  */
+ typedef __quad_t __rlim_t;		/* Type of resource counts.  */
+ typedef __quad_t __rlim64_t;		/* Type of resource counts (LFS).  */
+ typedef __uint32_t __id_t;		/* General type for ID.  */
+ 
+ typedef struct
+   {
+     int __val[2];
+   } __fsid_t;				/* Type of file system IDs.  */
+ 
+ /* Everythin' else.  */
+ typedef __int32_t __daddr_t;		/* The type of a disk address.  */
+ typedef char *__caddr_t;
+ typedef long int __time_t;
+ typedef int __kernel_time_t;
+ typedef unsigned int __useconds_t;
+ typedef long __suseconds_t;
+ typedef __int32_t __swblk_t;		/* Type of a swap block maybe?  */
+ 
+ typedef int __clock_t;
+ 
+ /* Clock ID used in clock and timer functions.  */
+ typedef int __clockid_t;
+ 
+ /* Timer ID returned by `timer_create'.  */
+ typedef int __timer_t;
+ 
+ 
+ /* Number of descriptors that can fit in an `fd_set'.  */
+ #define __FD_SETSIZE	1024
+ 
+ 
+ typedef long __key_t;
+ 
+ 
+ /* Type to represent block size.  */
+ typedef __uint32_t __blksize_t;
+ 
+ /* Types from the Large File Support interface.  */
+ 
+ /* Type to count number os disk blocks.  */
+ typedef __quad_t __blkcnt_t;
+ typedef __quad_t __blkcnt64_t;
+ 
+ /* Type to count file system blocks.  */
+ typedef unsigned long 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;
+ 
+ /* Type of file serial numbers.  */
+ typedef __u_quad_t __ino64_t;
+ 
+ /* Type of file sizes and offsets.  */
+ typedef __loff_t __off64_t;
+ 
+ /* Used in XTI.  */
+ typedef int __t_scalar_t;
+ typedef unsigned int __t_uscalar_t;
+ 
+ /* Duplicates info from stdint.h but this is used in unistd.h.  */
+ typedef int __intptr_t;
+ 
+ /* Duplicate info from sys/socket.h.  */
+ typedef unsigned int __socklen_t;
+ 
+ 
+ /* Now add the thread types.  */
+ #if defined __USE_POSIX199506 || defined __USE_UNIX98
+ # include <bits/pthreadtypes.h>
+ #endif
+ 
+ #endif /* bits/types.h */
*** /dev/null	Wed Apr 26 16:41:04 2000
--- sysdeps/unix/bsd/bsd4.4/freebsd/alpha/bits/types.h	Sun Sep 15 22:00:52 2002
***************
*** 0 ****
--- 1,144 ----
+ /* Copyright (C) 1991-1992,1994-1999,2000-2002 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 Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; 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
+ 
+ #include <features.h>
+ 
+ #define __need_size_t
+ #include <stddef.h>
+ 
+ /* Convenience types.  */
+ typedef unsigned char __u_char;
+ typedef unsigned short __u_short;
+ typedef unsigned int __u_int;
+ typedef unsigned long __u_long;
+ #ifdef __GLIBC_HAVE_LONG_LONG
+ __extension__ typedef unsigned long long int __u_quad_t;
+ __extension__ typedef long long int __quad_t;
+ #else
+ typedef struct
+   {
+     long int __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 __GLIBC_HAVE_LONG_LONG
+ __extension__ typedef signed long long int __int64_t;
+ __extension__ typedef unsigned long long int __uint64_t;
+ #endif
+ typedef __quad_t *__qaddr_t;
+ 
+ typedef __uint32_t __dev_t;		/* Type of device numbers.  */
+ typedef __uint32_t __uid_t;		/* Type of user identifications.  */
+ typedef __uint32_t __gid_t;		/* Type of group identifications.  */
+ typedef __uint32_t __ino_t;		/* Type of file serial numbers.  */
+ typedef __uint16_t __mode_t;		/* Type of file attribute bitmasks.  */
+ typedef __uint16_t __nlink_t;		/* Type of file link counts.  */
+ typedef __quad_t __off_t;		/* Type of file sizes and offsets.  */
+ typedef __quad_t __loff_t;		/* Type of file sizes and offsets.  */
+ typedef int __pid_t;			/* Type of process identifications.  */
+ typedef long __ssize_t;			/* Type of a byte count, or error.  */
+ typedef __quad_t __rlim_t;		/* Type of resource counts.  */
+ typedef __quad_t __rlim64_t;		/* Type of resource counts (LFS).  */
+ typedef __uint32_t __id_t;		/* General type for ID.  */
+ 
+ typedef struct
+   {
+     int __val[2];
+   } __fsid_t;				/* Type of file system IDs.  */
+ 
+ /* Everythin' else.  */
+ typedef __int32_t __daddr_t;		/* The type of a disk address.  */
+ typedef char *__caddr_t;
+ typedef long int __time_t;
+ typedef int __kernel_time_t;
+ typedef unsigned int __useconds_t;
+ typedef long __suseconds_t;
+ typedef __int32_t __swblk_t;		/* Type of a swap block maybe?  */
+ 
+ typedef int __clock_t;
+ 
+ /* Clock ID used in clock and timer functions.  */
+ typedef int __clockid_t;
+ 
+ /* Timer ID returned by `timer_create'.  */
+ typedef int __timer_t;
+ 
+ 
+ /* Number of descriptors that can fit in an `fd_set'.  */
+ #define __FD_SETSIZE	1024
+ 
+ 
+ typedef long __key_t;
+ 
+ 
+ /* Type to represent block size.  */
+ typedef __uint32_t __blksize_t;
+ 
+ /* Types from the Large File Support interface.  */
+ 
+ /* Type to count number os disk blocks.  */
+ typedef __quad_t __blkcnt_t;
+ typedef __quad_t __blkcnt64_t;
+ 
+ /* Type to count file system blocks.  */
+ typedef unsigned long 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;
+ 
+ /* Type of file serial numbers.  */
+ typedef __u_quad_t __ino64_t;
+ 
+ /* Type of file sizes and offsets.  */
+ typedef __loff_t __off64_t;
+ 
+ /* Used in XTI.  */
+ typedef long int __t_scalar_t;
+ typedef unsigned long int __t_uscalar_t;
+ 
+ /* Duplicates info from stdint.h but this is used in unistd.h.  */
+ typedef long __intptr_t;
+ 
+ /* Duplicate info from sys/socket.h.  */
+ typedef unsigned int __socklen_t;
+ 
+ 
+ /* Now add the thread types.  */
+ #if defined __USE_POSIX199506 || defined __USE_UNIX98
+ # include <bits/pthreadtypes.h>
+ #endif
+ 
+ #endif /* bits/types.h */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]