This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
FreeBSD port (61): basic types
- From: Bruno Haible <bruno at clisp dot org>
- To: libc-alpha at sources dot redhat dot com
- Date: Fri, 18 Oct 2002 15:32:33 +0200 (CEST)
- Subject: 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 */