Lots of changes
authorDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Thu, 11 Sep 2008 22:16:33 +0000 (22:16 +0000)
committerDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Thu, 11 Sep 2008 22:16:33 +0000 (22:16 +0000)
69 files changed:
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/tls.h
rtld_db/rtld_db.h [deleted file]
rtld_db/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rtld_db.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/Makefile
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/atomic.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/dirent.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/elfclass.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/fcntl.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/in.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/mman.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/poll.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/resource.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/sigaction.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/siginfo.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/signum.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/sigset.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/socket.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/stat.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/termios.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/time.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/types.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/uio.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/kernel-features.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/tcp.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/udp.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/port.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rctl.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/acl.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/atomic.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/corectl.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/dirent.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/door.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/filio.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/fork.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/fstyp.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/kd.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/link.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/machtypes.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/param.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/port.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/port_impl.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/priv.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/proc.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ptyvar.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/rctl.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/rctl_impl.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/stream.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/syscall.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/task.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/termio.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/tsol/label.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ttold.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/tty.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/types32.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ucred.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ulimit.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/utime.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/utssys.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vm.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vmparam.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/zone.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucred.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucred.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucredP.h [deleted file]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/bits/machtypes.h [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/bits/regset.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/isa_defs.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/segments.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/zone.h

index d36daea..d668034 100644 (file)
@@ -40,7 +40,6 @@
 # define TLS_INIT_TP(thrdescr, secondcall) \
   ({ void *_thrdescr = (thrdescr);                                           \
      tcbhead_t *_head = _thrdescr;                                           \
-     union user_desc_init _segdescr;                                         \
      int _result;                                                            \
      sysret_t ret;                                          \
                                                                              \
diff --git a/rtld_db/rtld_db.h b/rtld_db/rtld_db.h
deleted file mode 100644 (file)
index badf82a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _RTLD_DB_H
-#define _RTLD_DB_H
-
-#include <sys/types.h>
-#include <features.h>
-#include <proc_service.h>
-#include <dlfcn.h>
-
-#define RD_VERSION1    1
-#define RD_VERSION2    2
-#define RD_VERSION3    3
-#define RD_VERSION4    4
-#define RD_VERSION     RD_VERSION4
-
-typedef enum
-  {
-       RD_ERR,
-       RD_OK,
-       RD_NOCAPAB,
-       RD_DBERR,
-       RD_NOBASE,
-       RD_NODYNAM,
-       RD_NOMAPS
-  } rd_err_e;
-
-typedef struct rd_agent rd_agent_t;
-
-typedef struct rd_loadobj
-  {
-       psaddr_t rl_nameaddr;
-       unsigned int rl_flags;
-       psaddr_t rl_base;
-       psaddr_t rl_data_base;
-       Lmid_t rl_lmident;
-       psaddr_t rl_refnameaddr;
-       psaddr_t rl_plt_base;
-       unsigned int rl_plt_size;
-       psaddr_t rl_bend;
-       psaddr_t rl_padstart;
-       psaddr_t rl_padend;
-       psaddr_t rl_dynamic;
-       unsigned long rl_tlsmodid;
-  } rd_loadobj_t;
-
-/* r_flags values.  */
-#define RD_FLG_MEM_OBJECT      0x0001
-
-typedef int rl_iter_f (const rd_loadobj_t *, void *);
-
-#endif /* _RTLD_DB_H */
diff --git a/rtld_db/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rtld_db.h b/rtld_db/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rtld_db.h
new file mode 100644 (file)
index 0000000..49e4156
--- /dev/null
@@ -0,0 +1,104 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _RTLD_DB_H
+#define _RTLD_DB_H
+
+#include <sys/types.h>
+#include <features.h>
+#include <proc_service.h>
+#include <sys/link.h>
+#include <dlfcn.h>
+
+#define RD_VERSION1    1
+#define RD_VERSION2    2
+#define RD_VERSION3    3
+#define RD_VERSION4    4
+#define RD_VERSION     RD_VERSION4
+
+typedef enum
+  {
+       RD_ERR,
+       RD_OK,
+       RD_NOCAPAB,
+       RD_DBERR,
+       RD_NOBASE,
+       RD_NODYNAM,
+       RD_NOMAPS
+  } rd_err_e;
+
+typedef struct rd_agent rd_agent_t;
+
+typedef struct rd_loadobj
+  {
+       psaddr_t rl_nameaddr;
+       unsigned int rl_flags;
+       psaddr_t rl_base;
+       psaddr_t rl_data_base;
+       Lmid_t rl_lmident;
+       psaddr_t rl_refnameaddr;
+       psaddr_t rl_plt_base;
+       unsigned int rl_plt_size;
+       psaddr_t rl_bend;
+       psaddr_t rl_padstart;
+       psaddr_t rl_padend;
+       psaddr_t rl_dynamic;
+       unsigned long rl_tlsmodid;
+  } rd_loadobj_t;
+
+/* r_flags values.  */
+#define RD_FLG_MEM_OBJECT      0x0001
+
+typedef int rl_iter_f (const rd_loadobj_t *, void *);
+
+typedef enum
+  {
+       RD_NOTIFY_BPT,
+       RD_NOTIFY_AUTOBPT,
+       RD_NOTIFY_SYSCALL
+  } rd_notify_e;
+
+typedef struct rd_notify
+  {
+       rd_notify_e type;
+       union
+         {
+               psaddr_t bptaddr;
+               long syscallno;
+         } u;
+  } rd_notify_t;
+
+typedef enum
+  {
+       RD_NOSTATE = 0,
+       RD_CONSISTENT,
+       RD_ADD,
+       RD_DELETE
+  } rd_state_e;
+
+typedef struct rd_event_msg
+  {
+       rd_event_e type;
+       union
+         {
+               rd_state_e state;
+         } u;
+  } rd_event_msg_t;
+
+#endif /* _RTLD_DB_H */
index 3bf19eb..7bfc887 100644 (file)
@@ -1,15 +1,18 @@
 #
 # additional routines and headers for libc
 #
+
 ifeq ($(subdir),csu)
 sysdep_routines += errno-loc
 endif
+
 ifeq ($(subdir),io)
 sysdep_routines += sys_open sys_open64 sys_openat sys_openat64 \
     sys_fstat sys_fstat64 sys_fstatat sys_fstatat64 sys_lstat \
     sys_lstat64 sys_stat sys_stat64 sys_sendfilev sys_sendfilev64 \
     sys_getcwd sys_pipe
 endif
+
 ifeq ($(subdir),misc)
 sysdep_routines +=  gethrtime mount umount umount2 systeminfo resolvepath \
     getpagesizes memcntl meminfo uadmin getpflags setpflags issetugid ucred \
@@ -34,42 +37,51 @@ sysdep_routines += sys_fdsync sys_brk sys_fcntl sys_utssys sys_lwp_private \
     sys_privsys sys_syslabeling sys_putmsg sys_putpmsg sys_meminfo \
     sys_pset_getloadavg sys_zone_create sys_allocids sys_settaskid \
     sys_zone_lookup sys_port sys_door
-sysdep_headers += sys/feature_tests.h sys/mount.h sys/cred.h \
+sysdep_headers += sys/feature_tests.h sys/mount.h sys/cred.h sys/ulimit.h \
     sys/systeminfo.h sys/uadmin.h sys/utssys.h sys/fstyp.h sys/fsid.h \
-    sys/priocntl.h sys/procset.h sys/ptyvar.h sys/stream.h sys/synch.h \
+    sys/priocntl.h sys/procset.h sys/ptyvar.h sys/synch.h sys/fork.h \
     sys/sockio.h sys/ioccom.h sys/tty.h sys/trap.h sys/sysconfig.h \
        sys/ptms.h sys/stack.h sys/regset.h sys/fault.h sys/processor.h \
     sys/pset.h sys/priv.h sys/acl.h sys/procfs.h sys/reg.h sys/bufmod.h \
-    sys/types32.h sys/task.h sys/isa_defs.h sys/door.h sys/corectl.h \
-    sys/elf.h sys/rctl.h sys/task.h sys/zone.h sys/refstr.h sys/refstr_impl.h \
-    sys/time_impl.h sys/mutex.h sys/tsol/label.h sys/exacct.h sys/acct.h \
-    sys/sid.h sys/siginfo.h sys/vm.h sys/vmparam.h sys/kd.h sys/filio.h \
-    sys/link.h sys/rctl_impl.h sys/procfs_isa.h sys/frame.h sys/kbio.h \
-    sys/port.h sys/machelf.h sys/proc.h sys/zmod.h sys/inttypes.h
+    sys/types32.h sys/task.h sys/isa_defs.h sys/door.h sys/elf.h sys/rctl.h \
+    sys/task.h sys/zone.h sys/refstr.h sys/refstr_impl.h sys/time_impl.h \
+    sys/mutex.h sys/exacct.h sys/acct.h sys/sid.h sys/siginfo.h sys/link.h \
+    sys/rctl_impl.h sys/procfs_isa.h sys/frame.h sys/kbio.h sys/port.h \
+    sys/machelf.h sys/zmod.h sys/inttypes.h sys/atomic.h sys/termio.h \
+    sys/port_impl.h sys/ttold.h sys/machtypes.h sys/dirent.h sys/utime.h \
+    sys/ucred.h
 sysdep_headers += ucred.h priv.h bits/regset.h door.h zone.h \
-    rtld_db.h pcsample.h port.h atomic.h
+    rtld_db.h pcsample.h port.h atomic.h bits/machtypes.h
+headers := $(filter-out sys/sysinfo.h,$(headers))
 endif
+
 ifeq ($(subdir),dirent)
 sysdep_routines += sys_getdents sys_getdents64
 endif
+
 ifeq ($(subdir),posix)
 sysdep_routines += exit-thread schedP
 endif
+
 ifeq ($(subdir),resource)
 sysdep_routines += priocntl getvmusage
 sysdep_routines += sys_rusagesys sys_priocntlsys sys_rctlsys
 endif
+
 ifeq ($(subdir),signal)
 sysdep_routines += sys_lwp_sigmask sys_sigqueue sys_sigtimedwait \
     sys_sigaction
 endif
+
 ifeq ($(subdir),socket)
 sysdep_routines += sa_len
 sysdep_routines += netmask
 endif
+
 ifeq ($(subdir),string)
 sysdep_routines += strlcpy strlcat
 endif
+
 ifeq ($(subdir),time)
 sysdep_routines += ntp_adjtime ntp_gettime sys_time sys_stime
 sysdep_headers += sys/timex.h
index 83c93d2..6a07cda 100644 (file)
@@ -1,34 +1,4 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
 #ifndef _ATOMIC_H
 #define _ATOMIC_H
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-extern void membar_enter (void);
-extern void membar_exit (void);
-extern void membar_producer (void);
-extern void membar_consumer (void);
-
-__END_DECLS
-
+#include <sys/atomic.h>
 #endif /* _ATOMIC_H */
index 6975296..48ee9f8 100644 (file)
@@ -30,16 +30,27 @@ struct dirent
     __off64_t d_off;
 #endif
     unsigned short int d_reclen;
-    char d_name[256];          /* We must not include limits.h! */
+    char d_name[1];            /* We must not include limits.h! */
   };
 
+#ifdef _SYSCALL32
+
+typedef struct dirent32 {
+    __ino_t d_ino;
+    __off_t d_off;
+    __uint16_t d_reclen;
+    char d_name[1];
+} dirent32_t;
+
+#endif
+
 #ifdef __USE_LARGEFILE64
 struct dirent64
   {
     __ino64_t d_ino;
     __off64_t d_off;
     unsigned short int d_reclen;
-    char d_name[256];          /* We must not include limits.h! */
+    char d_name[1];            /* We must not include limits.h! */
   };
 #endif
 
index 21d7fd0..04a76f5 100644 (file)
@@ -73,3 +73,7 @@ typedef uint64_t      Elf64_Lword;
 #define NT_CONTENT     20
 #define NT_ZONENAME    21
 #define NT_NUM         21
+
+#define LM_ID_BASE     0
+#define LM_ID_LDSO     1
+#define LM_ID_NUM      2
index fcbf72a..d6c7f2d 100644 (file)
@@ -85,7 +85,7 @@
 # define F_SETLKW64    F_SETLKW        /* Set record locking info (blocking).  */
 # define F_ALLOCSP64   F_ALLOCSP       /* Allocate file space.  */
 # define F_FREESP64    F_FREESP        /* Free file space.  */
-# define F_SETLK6464_NBMAND    F_SETLK64_NBMAND        /* Private.  */
+# define F_SETLK64_NBMAND      F_SETLK_NBMAND  /* Private.  */
 #else
 # ifndef __USE_FILE_OFFSET64
 #  define F_GETLK      14      /* Get record locking info.  */
 #  define F_SETLKW     F_SETLKW64      /* Set record locking info (blocking).  */
 #  define F_ALLOCSP    F_ALLOCSP64     /* Allocate file space.  */
 #  define F_FREESP     F_FREESP64      /* Free file space.  */
-#  define F_SETLK_NBMAND       F_SETLK_NBMAND64        /* Private.  */
+#  define F_SETLK_NBMAND       F_SETLK64_NBMAND        /* Private.  */
 # endif
 # define F_GETLK64     33      /* Get record locking info.  */
 # define F_SETLK64     34      /* Set record locking info (non-blocking).  */
 # define F_SETLKW64    35      /* Set record locking info (blocking).  */
 # define F_ALLOCSP64   28      /* Allocate file space.  */
 # define F_FREESP64    27      /* Free file space.  */
-# define F_SETLK6464_NBMAND    44      /* Private.  */
+# define F_SETLK64_NBMAND      44      /* Private.  */
 #endif
 
 /* OpenSolaris-specific */
@@ -180,6 +180,19 @@ struct flock
     long l_pad[4];
   };
 
+#ifdef _SYSCALL32
+typedef struct flock32
+  {
+       __int16_t l_type;
+       __int16_t l_whence;
+       __off_t l_start;
+       __off_t l_len;
+       __int32_t l_sysid;
+       __pid_t l_pid;
+       __int32_t l_pad[4];
+  } flock32_t;
+#endif
+
 #ifdef __USE_LARGEFILE64
 struct flock64
   {
index 6031e48..ab775e9 100644 (file)
 # error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
 #endif
 
+/* Really these belong in the enum in netinet/in.h.  */
+#define IPPROTO_GGP    3
+#define IPPROTO_HELLO  63
+#define IPPROTO_ND     77
+#define IPPROTO_EON    80
+
 /* Options for use with `getsockopt' and `setsockopt' at the IP level.
    The first word in the comment at the right is the data type used;
    "bool" means a boolean value stored in an `int'.  */
@@ -158,3 +164,6 @@ struct in_pktinfo
 #define IPV6_DONTFAILOVER_IF   68
 
 #define IPV6_RTHDR_TYPE_0   0
+
+typedef __uint32_t     ipaddr_t;
+typedef struct in6_addr in6_addr_t;
index ced0087..529aa4f 100644 (file)
@@ -152,6 +152,17 @@ typedef struct meminfo
 # define POSIX_MADV_DONTNEED   4 /* Don't need these pages.  */
 #endif
 
+#ifdef __USE_MISC
+# define PROC_TEXT     (PROT_EXEC | PROT_READ)
+# define PROC_DATA     (PROT_READ | PROT_WRITE | PROT_EXEC)
+/* GNU lbc (and probably others) use SHARED internally.  */
+# ifndef _GNU_SOURCE
+#  define SHARED               0x10
+#  define PRIVATE              0x20
+# endif
+# define VALID_ATTR    (PROT_READ | PROT_WRITE | PROT_EXEC | SHARED | PRIVATE)
+#endif
+
 struct memcntl_mha
   {
        unsigned int mha_cmd;
index b75c2b8..370d9f4 100644 (file)
 #define POLLIN         0x001           /* There is data to read.  */
 #define POLLPRI                0x002           /* There is urgent data to read.  */
 #define POLLOUT                0x004           /* Writing now will not block.  */
-
-#ifdef __USE_XOPEN
-/* These values are defined in XPG4.2.  */
-# define POLLRDNORM    0x040           /* Normal data may be read.  */
-# define POLLRDBAND    0x080           /* Priority data may be read.  */
-# define POLLWRNORM    POLLOUT         /* Writing now will not block.  */
-# define POLLWRBAND    0x100           /* Priority data may be written.  */
-#endif
-
-#ifdef __USE_GNU
-/* These are extensions for Solaris.  */
-# define POLLNORM      POLLRDNORM
-# define POLLREMOVE    0x800
-#endif
+#define POLLRDNORM     0x040           /* Normal data may be read.  */
+#define POLLRDBAND     0x080           /* Priority data may be read.  */
+#define POLLWRNORM     POLLOUT         /* Writing now will not block.  */
+#define POLLWRBAND     0x100           /* Priority data may be written.  */
+#define POLLNORM       POLLRDNORM
+#define POLLREMOVE     0x800
 
 /* Event types always implicitly polled for.  These bits need not be set in
    `events', but they will appear in `revents' to indicate the status of
index 24e9d4d..7058622 100644 (file)
@@ -73,24 +73,32 @@ typedef __rlim_t rlim_t;
 #else
 typedef __rlim64_t rlim_t;
 #endif
+#ifdef _SYSCALL32
+typedef __uint32_t rlim32_t;
+#endif
 #ifdef __USE_LARGEFILE64
 typedef __rlim64_t rlim64_t;
 #endif
 
 /* Value to indicate that there is no limit.  */
 #ifdef __USE_LARGEFILE64
-# define RLIM64_INFINITY    ((rlim64_t)-3)
-# define RLIM64_SAVED_MAX   ((rlim64_t)-2)
-# define RLIM64_SAVED_CUR   ((rlim64_t)-1)
+# define RLIM64_INFINITY       ((rlim64_t)-3)
+# define RLIM64_SAVED_MAX      ((rlim64_t)-2)
+# define RLIM64_SAVED_CUR      ((rlim64_t)-1)
 #endif
-#if defined(__USE_FILE_OFFSET64)
-# define RLIM_INFINITY      ((rlim_t)-3l)
-# define RLIM_SAVED_MAX     ((rlim_t)-2l)
-# define RLIM_SAVED_CUR     ((rlim_t)-1l)
+#if __WORDSIZE == 64
+# define RLIM_INFINITY         ((rlim_t)-3l)
+# define RLIM_SAVED_MAX                ((rlim_t)-2l)
+# define RLIM_SAVED_CUR                ((rlim_t)-1l)
 #else
-# define RLIM_INFINITY     0x7fffffff
-# define RLIM_SAVED_MAX    0x7fffffff
-# define RLIM_SAVED_CUR    0x7fffffff
+# define RLIM_INFINITY         0x7FFFFFFF
+# define RLIM_SAVED_MAX                0x7FFFFFFE
+# define RLIM_SAVED_CUR                0x7FFFFFFD
+#endif
+#ifdef _SYSCALL32
+# define RLIM32_INFINITY       0x7FFFFFFF
+# define RLIM32_SAVED_MAX      0x7FFFFFFE
+# define RLIM32_SAVED_CUR      0x7FFFFFFD
 #endif
 
 struct rlimit
@@ -101,6 +109,14 @@ struct rlimit
     rlim_t rlim_max;
   };
 
+#ifdef _SYSCALL32
+struct rlimit32
+  {
+       rlim32_t rlim_cur;
+       rlim32_t rlim_max;
+};
+#endif
+
 #ifdef __USE_LARGEFILE64
 struct rlimit64
   {
@@ -198,3 +214,15 @@ enum __priority_which
   PRIO_CONTRACT = 9,
 #define PRIO_CONTRACT PRIO_CONTRACT
 };
+
+enum
+{
+       _RUSAGESYS_GETRUSAGE = 0,
+#define _RUSAGESYS_GETRUSAGE   _RUSAGESYS_GETRUSAGE
+       _RUSAGESYS_GETRUSAGE_CHLD = 1,
+#define _RUSAGESYS_GETRUSAGE_CHLD      _RUSAGESYS_GETRUSAGE_CHLD
+       _RUSAGESYS_GETRUSAGE_LWP = 2,
+#define _RUSAGESYS_GETRUSAGE_LWP       _RUSAGESYS_GETRUSAGE_LWP
+       _RUSAGESYS_GETVMUSAGE = 3
+#define _RUSAGESYS_GETVMUSAGE  _RUSAGESYS_GETVMUSAGE
+};
index e638d2b..fbc836c 100644 (file)
@@ -58,3 +58,10 @@ struct sigaction
 #define SIG_BLOCK      1       /* Block signals.  */
 #define SIG_UNBLOCK    2       /* Unblock signals.  */
 #define SIG_SETMASK    3       /* Set the set of blocked signals.  */
+
+#define SIGNO_MASK     0xFF
+#define SIGDEFER       0x100
+#define SIGHOLD                0x200
+#define SIGRELSE       0x400
+#define SIGIGNORE      0x800
+#define SIGPAUSE       0x1000
index f4fd03f..1946602 100644 (file)
@@ -26,6 +26,7 @@
 #include <stdint.h>
 #define __need_timespec
 #include <time.h>
+#include <features.h>
 
 #if (!defined __have_sigval_t \
      && (defined _SIGNAL_H || defined __need_siginfo_t \
@@ -39,6 +40,19 @@ union sigval
     void *sival_ptr;
 };
 typedef union sigval sigval_t;
+
+# ifdef _SYSCALL32
+
+# include <sys/types32.h>
+
+union sigval32
+  {
+       __int32_t sival_int;
+       caddr32_t sival_ptr;
+  };
+
+# endif
+
 #endif
 
 #if (!defined __have_siginfo_t \
@@ -116,6 +130,80 @@ typedef struct siginfo
     } __data;
 } siginfo_t;
 
+#ifdef __USE_MISC
+
+typedef struct k_siginfo
+{
+       int si_signo;
+       int si_code;
+       int si_errno;
+# if __WORDSIZE == 64
+       int si_pad;
+# endif
+       union
+         {
+               struct
+                 {
+                       pid_t __pid;
+                       union
+                         {
+                               struct
+                                 {
+                                       uid_t __uid;
+                    union sigval __value;
+                                 } __kill;
+                struct
+                                 {
+                                       __clock_t __utime;
+                                       int __status;
+                                       __clock_t __stime;
+                                 } __cld;
+                         } __pdata;
+                       ctid_t __ctid;
+                       zoneid_t __zoneid;
+                 } __proc;
+
+               struct
+                 {
+                       void *__addr;
+                       int __trapno;
+            char *__pc;
+                 } __fault;
+
+               struct
+                 {
+                       int __fd;
+                       long __band;
+                 } __file;
+
+               struct
+                 {
+                       char *__faddr;
+
+            struct timespec __tstamp;
+            short __syscall;
+            char __nsysarg;
+            char __fault;
+                 } __prof;
+
+               struct
+                 {
+                       int32_t __entity;
+                 } __rctl;
+         } __data;
+  } k_siginfo_t;
+
+typedef struct sigqueue
+  {
+       struct sigqueue *sq_next;
+       k_siginfo_t sq_info;
+       void (*sq_func)(struct sigqueue *);
+       void *sq_backptr;
+       int sq_external;
+  } sigqueue_t;
+
+#endif /* __USE_MISC */
+
 #define SI_FROMUSER(sip)  ((sip)->si_code <= 0)
 #define SI_FROMKERNEL(sip)  ((sip)->si_code > 0)
 
@@ -222,6 +310,22 @@ typedef struct sigevent
     int  __sigev_pad2;
 } sigevent_t;
 
+#ifdef _SYSCALL32
+
+#include <sys/types32.h>
+
+struct sigevent32
+  {
+       __int32_t sigev_notify;
+       __int32_t sigev_signo;
+       union sigval32 sigev_value;
+       caddr32_t sigev_notify_function;
+       caddr32_t sigev_notify_attributes;
+       __int32_t __sigev_pad2;
+};
+
+#endif
+
 /* `sigev_notify' values.  */
 enum
 {
index 3726e9a..5269503 100644 (file)
@@ -23,9 +23,7 @@
 #define        SIG_ERR ((__sighandler_t) -1) /* Error return.  */
 #define        SIG_DFL ((__sighandler_t) 0) /* Default action.  */
 #define        SIG_IGN ((__sighandler_t) 1) /* Ignore signal.  */
-#ifdef __USE_UNIX98
-# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask.  */
-#endif
+#define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask.  */
 
 
 /* Signals.  */
 
 #endif /* <signal.h> included.  */
 
-/* descr.h needs _NSIG */
-#if defined(_SIGNAL_H) || defined(__need_NSIG)
-#undef __need_NSIG
-# define _NSIG         49      /* Biggest signal number + 1 */
-#endif
+#define _NSIG          49      /* Biggest signal number + 1 */
+#define MAXSIG         48      /* Biggest signal number */
 
 /* This is here for lack of a better location.  */
 #define SIG2STR_MAX    32
index 6422904..3204bfc 100644 (file)
@@ -25,9 +25,15 @@ typedef int __sig_atomic_t;
 
 #define _SIGSET_NWORDS  4
 
-typedef struct {
-    unsigned int       __sigbits[_SIGSET_NWORDS];
-} __sigset_t;
+typedef struct
+  {
+       unsigned int __sigbits[_SIGSET_NWORDS];
+  } __sigset_t;
+
+typedef struct
+  {
+       unsigned int __sigbits[2];
+  } k_sigset_t;
 
 #endif /* _SIGSET_H_types */
 
index 6a784ce..0b3fcd8 100644 (file)
@@ -90,7 +90,7 @@ enum __socket_type
 #define        PF_NCA          28      /* NCA socket.  */
 #define        PF_POLICY       29      /* Security Policy DB socket.  */
 #define        PF_INET_OFFLOAD 30      /* Sun private; do not use.  */
-#define        PF_MAX          31      /* For now..  */
+#define        PF_MAX          30      /* For now..  */
 
 /* Address families.  */
 #define        AF_UNSPEC       PF_UNSPEC
index 5e90c78..6e939d6 100644 (file)
@@ -83,6 +83,32 @@ struct stat
 #endif
   };
 
+#ifdef _SYSCALL32
+#include <sys/types32.h>
+
+struct stat32
+  {
+       __dev_t st_dev;
+       __int32_t st_pad1[3];
+       __ino_t st_ino;
+       __mode_t st_mode;
+       __nlink_t st_nlink;
+       __uid_t st_uid;
+       __gid_t st_gid;
+       __dev_t st_rdev;
+       __int_t st_pad2[2];
+       __off_t st_size;
+       __int32_t st_pad3;
+       struct timespec32 st_atim;
+       struct timespec32 st_mtim;
+       struct timespec32 st_ctim;
+       __int32_t st_blksize;
+       __blkcnt_t st_blocks;
+       char st_fstype[_ST_FSTYPSZ];
+       __int32_t st_pad4[8];
+  };
+#endif /* _SYSCALL32 */
+
 #ifdef __USE_LARGEFILE64
 /* struct stat64 has the shape as stat */
 struct stat64
@@ -125,6 +151,41 @@ struct stat64
 };
 #endif
 
+#ifdef _SYSCALL32
+
+#include <sys/isa_defs.h>
+
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+# pragma pack(4)
+#endif
+
+struct stat64_32
+  {
+       dev32_t st_dev;
+       int32_t st_pad1[3];
+       ino64_t st_ino;
+       mode32_t st_mode;
+       nlink32_t st_nlink;
+       uid32_t st_uid;
+       gid32_t st_gid;
+       dev32_t st_rdev;
+       int32_t st_pad2[2];
+       off64_t st_size;
+       struct timespec32 st_atim;
+       struct timespec32 st_mtim;
+       struct timespec32 st_ctim;
+       int32_t st_blksize;
+       blkcnt64_t st_blocks;
+       char st_fstype[_ST_FSTYPSZ];
+       int32_t st_pad4[8];
+  };
+
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+# pragma pack()
+#endif
+
+#endif /* _SYSCALL32 */
+
 /* Tell code we have these members.  */
 #define        _STATBUF_ST_BLKSIZE
 #define _STATBUF_ST_RDEV
index 5bf96e9..e34f415 100644 (file)
@@ -216,3 +216,21 @@ struct termios
 
 #define _IOT_termios /* Hurd ioctl type field.  */ \
   _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
+
+#define LDIOC          ('D'<<8)
+#define LDOPEN         (LDIOC|0)
+#define LDCLOSE                (LDIOC|1)
+#define LDCHG          (LDIOC|2)
+#define LDGETT         (LDIOC|8)
+#define LDSETT         (LDIOC|9)
+#define LDSMAP         (LDIOC|110)
+#define LDGMAP         (LDIOC|111)
+#define LDNMAP         (LDIOC|112)
+#define LDEMAP         (LDIOC|113)
+#define LDDMAP         (LDIOC|114)
+
+#define DIOC           ('d'<<8)
+#define DIOCGETP       (DIOC|8)
+#define DIOCSETP       (DIOC|9)
+
+#define FIORDCHK       (('f'<<8)|3)
index b668821..28e1c4c 100644 (file)
@@ -62,6 +62,12 @@ extern long int __sysconf (int);
 #   define TIMER_RELTIME               0
 /* Flag to indicate time is absolute.  */
 #   define TIMER_ABSTIME               1
+
+#define SEC            1
+#define MILLISEC       1000
+#define MICROSEC       1000000
+#define NANOSEC                1000000000
+
 #  endif
 
 # endif        /* bits/time.h */
@@ -82,3 +88,29 @@ struct timeval
   };
 # endif        /* struct timeval */
 #endif /* need timeval */
+
+#ifdef _SYSCALL32
+
+# include <sys/types32.h>
+
+# if defined (_SYS_TIME_H) && !defined (__itimerval32_defined)
+struct itimerval32
+  {
+       struct timeval32 it_interval;
+       struct timeval32 it_value;
+  };
+#  define __itimerval32_defined
+# endif
+
+# if defined (_TIME_H) && !defined (__tms32_defined)
+struct tms32
+  {
+       clock32_t tms_utime;
+       clock32_t tms_stime;
+       clock32_t tms_cutime;
+       clock32_t tms_cstime;
+  };
+#  define __tms32_defined
+# endif
+
+#endif /* _SYSCALL32 */
index c9e4c55..7f032f8 100644 (file)
@@ -201,6 +201,7 @@ typedef __id_t      projid_t;
 typedef __id_t poolid_t;
 typedef __id_t zoneid_t;
 typedef __id_t ctid_t;
+typedef __id_t lgrp_id_t;
 typedef short  pri_t;
 typedef long long      offset_t;
 typedef long long      longlong_t;
@@ -209,15 +210,88 @@ typedef unsigned int      uint_t;
 typedef unsigned short ushort_t;
 typedef unsigned long  ulong_t;
 typedef unsigned long long     u_longlong_t;
+typedef unsigned long long     diskaddr_t;
 typedef unsigned long  psaddr_t;
 typedef unsigned int   lwpid_t;
 typedef long long      hrtime_t;
+typedef unsigned int   major_t;
+typedef unsigned int   minor_t;
+typedef unsigned short cpu_flag_t;
+typedef unsigned long  pgcnt_t;
+typedef long           spgcnt_t;
+typedef unsigned long long     u_offset_t;
+typedef unsigned long  pfn_t;
+typedef unsigned int   k_fltset_t;
+typedef void           *timeout_id_t;
+
 typedef enum
   {
        B_FALSE,
        B_TRUE
   } boolean_t;
 
+typedef union
+  {
+       long double _q;
+       __int32_t _l[4];
+  } pad128_t;
+
+typedef union
+  {
+       long double _q;
+       __uint32_t _l[4];
+  } upad128_t;
+
+#include <endian.h>
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+
+typedef union
+  {
+       offset_t _f;
+       struct
+         {
+               __int32_t _u;
+               __int32_t _l;
+         } _p;
+  } lloff_t;
+
+typedef union
+  {
+       long long _f;
+    struct
+         {
+               __int32_t _u;
+               __int32_t _l;
+         } _p;
+  } lldaddr_t;
+
+#else
+
+typedef union
+  {
+       offset_t _f;
+       struct
+         {
+               __int32_t _l;
+               __int32_t _u;
+         } _p;
+  } lloff_t;
+
+typedef union
+  {
+       long long _f;
+    struct
+         {
+               __int32_t _l;
+               __int32_t _u;
+         } _p;
+  } lldaddr_t;
+
+#endif /* __BYTE_ORDER == __BIG_ENDIAN */
+
+#include <bits/machtypes.h>
+
 /* OpenSolaris compatibility types.  */
 typedef unsigned short o_mode_t;
 typedef short          o_dev_t;
index 4d9fcf2..739525e 100644 (file)
@@ -25,6 +25,7 @@
 #define _BITS_UIO_H    1
 
 #include <sys/types.h>
+#include <features.h>
 
 /* Maximum number of iovec's that can be processed in a single call. */
 #define UIO_MAXIOV     16
@@ -40,4 +41,27 @@ struct iovec {
 
 typedef struct iovec iovec_t;
 
+#ifdef __USE_MISC
+
+typedef enum uio_seg
+  {
+       UIO_USERSPACE,
+       UIO_SYSSPACE,
+       UIO_USERISPACE
+  } uio_seg_t;
+
+typedef struct uio
+  {
+       iovec_t *uio_iov;
+       int uio_iovcnt;
+       lloff_t _uio_offset;
+       uio_seg_t uio_segflg;
+       uint16_t uio_fmode;
+       uint16_t uio_extflg;
+       lloff_t _uio_limit;
+       ssize_t uio_resid;
+  } uio_t;
+
+#endif
+
 #endif /* _SYS_UIO_H */
index e7134ca..8a39a4d 100644 (file)
@@ -33,3 +33,6 @@
 /* We support tkill.  */
 #undef __NR_tgkill
 #undef __ASSUME_TGKILL
+
+/* We don't have set_thread_area.  */
+#define NO_SET_THREAD_AREA
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/tcp.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/tcp.h
new file mode 100644 (file)
index 0000000..5179240
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)tcp.h       8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _NETINET_TCP_H
+#define _NETINET_TCP_H 1
+
+#include <features.h>
+
+/*
+ * User-settable options (used with setsockopt).
+ */
+#ifndef TCP_NODELAY
+# define TCP_NODELAY           0x01
+#endif
+#ifndef TCP_MAXSEG
+# define TCP_MAXSEG            0x02
+#endif
+#ifndef TCP_KEEPALIVE
+# define TCP_KEEPALIVE         0x08
+#endif
+#define TCP_NOTIFY_THRESHOLD   0x10
+#define TCP_ABORT_THRESHOLD    0x11
+#define TCP_CONN_NOTIFY_THRESHOLD      0x12
+#define TCP_CONN_ABORT_THRESHOLD       0x13
+#define TCP_RECVDSTADDR                0x14
+#define TCP_INIT_CWND          0x15
+#define TCP_KEEPALIVE_THRESHOLD        0x16
+#define TCP_KEEPALIVE_ABORT_THRESHOLD  0x17
+#define TCP_CORK               0x18
+#define TCP_ANONPRIVBIND       0x20
+#define TCP_EXCLBIND           0x21
+
+
+#ifdef __USE_MISC
+# include <sys/types.h>
+# include <sys/socket.h>
+
+typedef        u_int32_t tcp_seq;
+/*
+ * TCP header.
+ * Per RFC 793, September, 1981.
+ */
+struct tcphdr
+  {
+    u_int16_t th_sport;                /* source port */
+    u_int16_t th_dport;                /* destination port */
+    tcp_seq th_seq;            /* sequence number */
+    tcp_seq th_ack;            /* acknowledgement number */
+#  if __BYTE_ORDER == __LITTLE_ENDIAN
+    u_int8_t th_x2:4;          /* (unused) */
+    u_int8_t th_off:4;         /* data offset */
+#  endif
+#  if __BYTE_ORDER == __BIG_ENDIAN
+    u_int8_t th_off:4;         /* data offset */
+    u_int8_t th_x2:4;          /* (unused) */
+#  endif
+    u_int8_t th_flags;
+#  define TH_FIN       0x01
+#  define TH_SYN       0x02
+#  define TH_RST       0x04
+#  define TH_PUSH      0x08
+#  define TH_ACK       0x10
+#  define TH_URG       0x20
+    u_int16_t th_win;          /* window */
+    u_int16_t th_sum;          /* checksum */
+    u_int16_t th_urp;          /* urgent pointer */
+};
+
+enum
+{
+  TCP_ESTABLISHED = 1,
+  TCP_SYN_SENT,
+  TCP_SYN_RECV,
+  TCP_FIN_WAIT1,
+  TCP_FIN_WAIT2,
+  TCP_TIME_WAIT,
+  TCP_CLOSE,
+  TCP_CLOSE_WAIT,
+  TCP_LAST_ACK,
+  TCP_LISTEN,
+  TCP_CLOSING   /* now a valid state */
+};
+
+# define TCPOPT_EOL            0
+# define TCPOPT_NOP            1
+# define TCPOPT_MAXSEG         2
+# define TCPOPT_WSCALE         3
+# define TCPOLEN_MAXSEG                4
+# define TCPOPT_WINDOW         3
+# define TCPOLEN_WINDOW                3
+# define TCPOPT_SACK_PERMITTED 4               /* Experimental */
+# define TCPOLEN_SACK_PERMITTED        2
+# define TCPOPT_SACK           5               /* Experimental */
+# define TCPOPT_TIMESTAMP      8
+# define TCPOLEN_TIMESTAMP     10
+# define TCPOLEN_TSTAMP_APPA   (TCPOLEN_TIMESTAMP+2) /* appendix A */
+
+# define TCPOPT_TSTAMP_HDR     \
+    (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
+
+/*
+ * Default maximum segment size for TCP.
+ * With an IP MSS of 576, this is 536,
+ * but 512 is probably more convenient.
+ * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
+ */
+# define TCP_MSS       512
+
+# define TCP_MAXWIN    65535   /* largest value for (unscaled) window */
+
+# define TCP_MAX_WINSHIFT      14      /* maximum window shift */
+
+# define SOL_TCP               6       /* TCP level */
+
+
+# define TCPI_OPT_TIMESTAMPS   1
+# define TCPI_OPT_SACK         2
+# define TCPI_OPT_WSCALE       4
+# define TCPI_OPT_ECN          8
+
+/* Values for tcpi_state.  */
+enum tcp_ca_state
+{
+  TCP_CA_Open = 0,
+  TCP_CA_Disorder = 1,
+  TCP_CA_CWR = 2,
+  TCP_CA_Recovery = 3,
+  TCP_CA_Loss = 4
+};
+
+struct tcp_info
+{
+  u_int8_t     tcpi_state;
+  u_int8_t     tcpi_ca_state;
+  u_int8_t     tcpi_retransmits;
+  u_int8_t     tcpi_probes;
+  u_int8_t     tcpi_backoff;
+  u_int8_t     tcpi_options;
+  u_int8_t     tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
+
+  u_int32_t    tcpi_rto;
+  u_int32_t    tcpi_ato;
+  u_int32_t    tcpi_snd_mss;
+  u_int32_t    tcpi_rcv_mss;
+
+  u_int32_t    tcpi_unacked;
+  u_int32_t    tcpi_sacked;
+  u_int32_t    tcpi_lost;
+  u_int32_t    tcpi_retrans;
+  u_int32_t    tcpi_fackets;
+
+  /* Times. */
+  u_int32_t    tcpi_last_data_sent;
+  u_int32_t    tcpi_last_ack_sent;     /* Not remembered, sorry.  */
+  u_int32_t    tcpi_last_data_recv;
+  u_int32_t    tcpi_last_ack_recv;
+
+  /* Metrics. */
+  u_int32_t    tcpi_pmtu;
+  u_int32_t    tcpi_rcv_ssthresh;
+  u_int32_t    tcpi_rtt;
+  u_int32_t    tcpi_rttvar;
+  u_int32_t    tcpi_snd_ssthresh;
+  u_int32_t    tcpi_snd_cwnd;
+  u_int32_t    tcpi_advmss;
+  u_int32_t    tcpi_reordering;
+
+  u_int32_t    tcpi_rcv_rtt;
+  u_int32_t    tcpi_rcv_space;
+
+  u_int32_t    tcpi_total_retrans;
+};
+
+
+/* For TCP_MD5SIG socket option.  */
+#define TCP_MD5SIG_MAXKEYLEN   80
+
+struct tcp_md5sig
+{
+  struct sockaddr_storage tcpm_addr;           /* Address associated.  */
+  u_int16_t    __tcpm_pad1;                    /* Zero.  */
+  u_int16_t    tcpm_keylen;                    /* Key length.  */
+  u_int32_t    __tcpm_pad2;                    /* Zero.  */
+  u_int8_t     tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* Key (binary).  */
+};
+
+#endif /* Misc.  */
+
+#endif /* netinet/tcp.h */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/udp.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/netinet/udp.h
new file mode 100644 (file)
index 0000000..3557766
--- /dev/null
@@ -0,0 +1,75 @@
+/* Copyright (C) 1991, 92, 93, 95, 96, 97, 2004 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.  */
+
+/*
+ * Copyright (C) 1982, 1986 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef __NETINET_UDP_H
+#define __NETINET_UDP_H    1
+
+#include <features.h>
+#include <sys/types.h>
+
+
+/* UDP header as specified by RFC 768, August 1980. */
+struct udphdr
+{
+  u_int16_t uh_sport;          /* source port */
+  u_int16_t uh_dport;          /* destination port */
+  u_int16_t uh_ulen;           /* udp length */
+  u_int16_t uh_sum;            /* udp checksum */
+};
+
+#define SOL_UDP            17      /* sockopt level for UDP */
+
+/* Option definitions. */
+#define UDP_ANONPRIVBIND       0x0100
+#define UDP_EXCLBIND           0x0101
+#define UDP_RCVHDR             0x0102
+#define UDP_NAT_T_ENDPOINT     0x0103
+#ifndef UDP_CHECKSUM
+# define UDP_CHECKSUM          0x0600
+#endif
+
+#endif /* netinet/udp.h */
index 4aae83f..0d1fe78 100644 (file)
@@ -20,6 +20,7 @@
 #include <inline-syscall.h>
 #include <sys/types.h>
 #include <sys/param.h>
+#include <sys/port_impl.h>
 #include <port.h>
 
 /* SYS_port returns a 64-bit int but the port_* calls return a 32-bit int, so
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rctl.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rctl.h
new file mode 100644 (file)
index 0000000..c7d1793
--- /dev/null
@@ -0,0 +1,48 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _RCTL_H
+#define _RCTL_H
+
+#include <sys/rctl.h>
+#include <sys/types.h>
+#include <features.h>
+
+__BEGIN_DECLS
+
+int rctl_walk(int (*)(const char *, void *), void *);
+
+hrtime_t rctlblk_get_firing_time (rctlblk_t *);
+unsigned int rctlblk_get_global_action (rctlblk_t *);
+unsigned int rctlblk_get_global_flags (rctlblk_t *);
+unsigned int rctlblk_get_local_action (rctlblk_t *, int *);
+unsigned int rctlblk_get_local_flags (rctlblk_t *);
+rctl_priv_t rctlblk_get_privilege (rctlblk_t *);
+id_t rctlblk_get_recipient_pid (rctlblk_t *);
+rctl_qty_t rctlblk_get_value(rctlblk_t *);
+rctl_qty_t rctlblk_get_enforced_value (rctlblk_t *);
+void rctlblk_set_local_action (rctlblk_t *, unsigned int, int);
+void rctlblk_set_local_flags (rctlblk_t *, unsigned int);
+void rctlblk_set_privilege (rctlblk_t *, rctl_priv_t);
+void rctlblk_set_recipient_pid (rctlblk_t *, id_t);
+size_t rctlblk_size (void);
+
+__END_DECLS
+
+#endif /* _RCTL_H */
index b2a337e..c1d9ccd 100644 (file)
@@ -27,7 +27,7 @@
 #define GETACL         1
 #define SETACL         2
 #define GETACLCNT      3
-#define ACL_GETACL     4
+#define ACE_GETACL     4
 #define ACE_SETACL     5
 #define ACE_GETACLCNT  6
 
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/atomic.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/atomic.h
new file mode 100644 (file)
index 0000000..83c93d2
--- /dev/null
@@ -0,0 +1,34 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _ATOMIC_H
+#define _ATOMIC_H
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+extern void membar_enter (void);
+extern void membar_exit (void);
+extern void membar_producer (void);
+extern void membar_consumer (void);
+
+__END_DECLS
+
+#endif /* _ATOMIC_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/corectl.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/corectl.h
deleted file mode 100644 (file)
index 0183b54..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2008 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.  */
-
-#ifndef _SYS_CORECTL_H
-#define _SYS_CORECTL_H
-
-#include <sys/types.h>
-#include <sys/refstr.h>
-#include <sys/mutex.h>
-#include <features.h>
-
-typedef unsigned long long core_content_t;
-
-typedef struct corectl_content
-  {
-       core_content_t ccc_content;
-       kmutex_t ccc_mtx;
-       uint32_t ccc_refcnt;
-  } corectl_content_t;
-
-typedef struct corectl_path
-  {
-       refstr_t *ccp_path;
-       kmutex_t ccp_mtx;
-       uint32_t ccp_refcnt;
-  } corectl_path_t;
-
-/* Options.  */
-#define CC_GLOBAL_PATH         0x01
-#define CC_PROCESS_PATH                0x02
-#define CC_GLOBAL_SETID                0x04
-#define CC_PROCESS_SETID       0x08
-#define CC_GLOBAL_LOG          0x10
-
-/* core_content_t values.  */
-#define CC_CONTENT_STACK       0x0001ULL
-#define CC_CONTENT_HEAP                0x0002ULL
-#define CC_CONTENT_SHFILE      0x0004ULL
-#define CC_CONTENT_SHANON      0x0008ULL
-#define CC_CONTENT_TEXT                0x0010ULL
-#define CC_CONTENT_DATA                0x0020ULL
-#define CC_CONTENT_RODATA      0x0040ULL
-#define CC_CONTENT_ANON                0x0080ULL
-#define CC_CONTENT_SHM         0x0100ULL
-#define CC_CONTENT_ISM         0x0200ULL
-#define CC_CONTENT_DISM                0x0400ULL
-#define CC_CONTENT_CTF         0x0800ULL
-#define CC_CONTENT_SYMTAB      0x1000ULL
-#define CC_CONTENT_ALL         0x1FFFULL
-#define CC_CONTENT_NONE                0x0000ULL
-#define CC_CONTENT_DEFAULT \
-       (CC_CONTENT_STACK | CC_CONTENT_HEAP | CC_CONTENT_ISM | \
-        CC_CONTENT_DISM | CC_CONTENT_SHM | CC_CONTENT_SHANON | \
-        CC_CONTENT_TEXT | CC_CONTENT_DATA | CC_CONTENT_RODATA | \
-        CC_CONTENT_ANON | CC_CONTENT_CTF)
-#define CC_CONTENT_INVALID  (-1ULL)
-
-__BEGIN_DECLS
-
-extern  int core_set_options (int);
-
-extern  int core_get_options (void);
-
-extern  int core_set_global_path (const char *, size_t);
-
-extern  int core_get_global_path (char *, size_t);
-
-extern  int core_set_default_path (const char *, size_t);
-
-extern  int core_get_default_path (char *, size_t);
-
-extern  int core_set_process_path (const char *, size_t, pid_t);
-
-extern  int core_get_process_path (char *, size_t, pid_t);
-
-extern  int core_set_global_content (const core_content_t *);
-
-extern  int core_get_global_content (core_content_t *);
-
-extern  int core_set_default_content (const core_content_t *);
-
-extern  int core_get_default_content (core_content_t *);
-
-extern  int core_set_process_content (const core_content_t *, pid_t);
-
-extern  int core_get_process_content (core_content_t *, pid_t);
-
-__END_DECLS
-
-#endif /* _SYS_CORECTL_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/dirent.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/dirent.h
new file mode 100644 (file)
index 0000000..d66bbdf
--- /dev/null
@@ -0,0 +1 @@
+#include <dirent.h>
index 54cf815..38c5a93 100644 (file)
 #define DOOR_GETPARAM  11
 #define DOOR_SETPARAM  12
 
+#define DOOR_INVAL     -1
+#define DOOR_UNREF_DATA        ((void *)1)
+
+#define DOOR_QUERY     -2
+
+#define DOOR_UNREF             0x01
+#define DOOR_PRIVATE           0x02
+#define DOOR_UNREF_MULTI       0x10
+#define DOOR_REFUSE_DESC       0x40
+#define DOOR_NO_CANCEL         0x80
+
+#define DOOR_LOCAL     0x04
+#define DOOR_REVOKED   0x08
+#define DOOR_IS_UNREF  0x20
+
+#define DOOR_CREATE_MASK       (DOOR_UNREF | DOOR_PRIVATE | \
+       DOOR_UNREF_MULTI | DOOR_REFUSE_DESC | DOOR_NO_CANCEL)
+#define DOOR_KI_CREATE_MASK    (DOOR_UNREF | DOOR_UNREF_MULTI)
+
+#define DOOR_ATTR_MASK (DOOR_CREATE_MASK | DOOR_LOCAL | DOOR_REVOKED | \
+       DOOR_IS_UNREF)
+
+#define DOOR_DESCRIPTOR        0x10000
+#define DOOR_RELEASE   0x40000
+#define DOOR_DELAY     0x80000
+#define DOOR_UNREF_ACTIVE      0x100000
+
+#define DOOR_PARAM_DESC_MAX    1
+#define DOOR_PARAM_DATA_MAX    2
+#define DOOR_PARAM_DATA_MIN    3
+
 typedef unsigned long long door_ptr_t;
 typedef unsigned int door_attr_t;
 typedef unsigned long long door_id_t;
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/filio.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/filio.h
deleted file mode 100644 (file)
index 3ea9c28..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_FILIO_H
-#define _SYS_FILIO_H
-
-#include <sys/ioctl.h>
-
-#define        FIOCLEX         _IO('f', 1)
-#define        FIONCLEX        _IO('f', 2)
-
-#define        _FIOLFS         _IO('f', 64)
-#define        _FIOLFSS        _IO('f', 65)
-#define        _FIOFFS         _IO('f', 66)
-#define        _FIOOBSOLETE67  _IO('f', 67)
-#define        _FIOAI          _FIOOBSOLETE67
-#define        _FIOSATIME      _IO('f', 68)
-#define        _FIOSDIO        _IO('f', 69)
-#define        _FIOGDIO        _IO('f', 70)
-#define        _FIOIO          _IO('f', 71)
-#define        _FIOISLOG       _IO('f', 72)
-#define        _FIOISLOGOK     _IO('f', 73)
-#define        _FIOLOGRESET    _IO('f', 74)
-#define        _FIOISBUSY      _IO('f', 75)
-#define        _FIODIRECTIO    _IO('f', 76)
-#define        _FIOTUNE        _IO('f', 77)
-
-#define        _FIOLOGENABLE           _IO('f', 87)
-#define        _FIOLOGDISABLE          _IO('f', 88)
-#define        _FIOSNAPSHOTCREATE      _IO('f', 89)
-#define        _FIOSNAPSHOTDELETE      _IO('f', 90)
-#define        _FIOGETSUPERBLOCK       _IO('f', 91)
-#define        _FIOGETMAXPHYS          _IO('f', 92)
-#define        _FIO_SET_LUFS_DEBUG     _IO('f', 93)
-#define        _FIO_SET_LUFS_ERROR     _IO('f', 94)
-#define        _FIO_GET_TOP_STATS      _IO('f', 95)
-#define        _FIOSNAPSHOTCREATE_MULTI        _IO('f', 96)
-#define        _FIO_SEEK_DATA          _IO('f', 97)
-#define        _FIO_SEEK_HOLE          _IO('f', 98)
-#define        _FIO_COMPRESSED         _IO('f', 99)
-
-#define        FIONREAD        _IOR('f', 127, int)
-#define        FIONBIO         _IOW('f', 126, int)
-#define        FIOASYNC        _IOW('f', 125, int)
-#define        FIOSETOWN       _IOW('f', 124, int)
-#define        FIOGETOWN       _IOR('f', 123, int)
-
-#endif /* _SYS_FILIO_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/fork.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/fork.h
new file mode 100644 (file)
index 0000000..26703e0
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_FORK_H
+#define _SYS_FORK_H
+
+#include <features.h>
+
+#define FORK_NOSIGCHLD 0x01
+#define FORK_WAITPID   0x02
+
+__BEGIN_DECLS
+
+extern pid_t forkx (int);
+extern pid_t forkallx (int);
+extern pid_t vforkx (int);
+
+__END_DECLS
+
+#endif /* _SYS_FORK_H */
index d4c0d00..c9171d6 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef _SYS_FSTYP_H
 #define        _SYS_FSTYP_H
 
-#include <features.>
+#include <features.h>
 
 #define        FSTYPSZ         16
 
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/kd.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/kd.h
deleted file mode 100644 (file)
index 069ca58..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_KD_H
-#define _SYS_KD_H
-
-#define KDIOC          ('K'<<8)
-
-#define KDGETMODE      (KDIOC|9)
-#define KDSETMODE      (KDIOC|10)
-
-#define KD_TEXT                0
-#define KD_GRAPHICS    1
-
-#endif /* _SYS_KD_H */
index 753b517..5f7c7bd 100644 (file)
 #ifndef _SYS_LINK_H
 #define _SYS_LINK_H
 
-#include <sys/link.h>
-
-#define LM_ID_BASE     0x00
-#define LM_ID_LDSO     0x01
-#define LM_ID_NUM      2
-
-#define LM_ID_BRAND    0xfd
-#define LM_ID_NONE     0xfe
-#define LM_ID_NEWLM    0xff
+#include <link.h>
+
+/* XXX: These are different from OpenSolaris.  */
+#define LM_ID_BRAND    -3
+#define LM_ID_NONE     -2
+#define LM_ID_NEWLM    -1
+
+typedef enum
+  {
+       RD_NONE = 0,
+       RD_PREINIT,
+       RD_POSTINIT,
+       RD_DLACTIVITY
+  } rd_event_e;
 
 #endif /* _SYS_LINK_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/machtypes.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/machtypes.h
new file mode 100644 (file)
index 0000000..99b84d6
--- /dev/null
@@ -0,0 +1,25 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_MACHTYPES_H
+#define _SYS_MACHTYPES_H
+
+#include <bits/machtypes.h>
+
+#endif /* _SYS_MACHTYPES_H */
index 55d4e34..c9e483e 100644 (file)
@@ -27,7 +27,7 @@
 #ifndef        NGROUPS
 # define NGROUPS               NGROUPS_MAX
 #endif
-#define        MAXSYMLINKS     5
+#define        MAXSYMLINKS     20
 #define        CANBSIZ         MAX_CANON
 #define        NCARGS          ARG_MAX
 #define MAXPATHLEN      PATH_MAX
@@ -66,5 +66,8 @@
 #define PAGESIZE       sysconf(_SC_PAGESIZE)
 #define MAXPID         (pid_t)sysconf(_SC_MAXPID)
 #define MAXEPHUID      (uid_t)sysconf(_SC_EPHID_MAX)
+#define MAXNAMELEN     256
+#define TYPICALMAXPATHLEN      64
+#define MAXLINKNAMELEN 32
 
 #endif /* sys/param.h */
index 181879e..a96ff62 100644 (file)
 
 #include <sys/types.h>
 
-#define PORT_CREATE    0
-#define PORT_ASSOCIATE 1
-#define PORT_DISSOCIATE        2
-#define PORT_SEND      3
-#define PORT_SENDN     4
-#define PORT_GET       5
-#define PORT_GETN      6
-#define PORT_ALERT     7
-#define PORT_DISPATCH  8
-
-#define PORT_SYS_NOPORT                0x100
-#define PORT_SYS_NOSHARE       0x200
-
-#define PORT_CODE_MASK         0xFF
-
-#define PORT_SHARE_EVENT       0x01
-
-#define PORT_MAX_LIST          8192
-
 #define PORT_SOURCE_AIO                1
 #define PORT_SOURCE_TIMER      2
 #define PORT_SOURCE_USER       3
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/port_impl.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/port_impl.h
new file mode 100644 (file)
index 0000000..a6cd6a4
--- /dev/null
@@ -0,0 +1,44 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_PORT_IMPL_H
+#define _SYS_PORT_IMPL_H
+
+#include <sys/port.h>
+
+#define PORT_CREATE    0
+#define PORT_ASSOCIATE 1
+#define PORT_DISSOCIATE        2
+#define PORT_SEND      3
+#define PORT_SENDN     4
+#define PORT_GET       5
+#define PORT_GETN      6
+#define PORT_ALERT     7
+#define PORT_DISPATCH  8
+
+#define PORT_SYS_NOPORT                0x100
+#define PORT_SYS_NOSHARE       0x200
+
+#define PORT_CODE_MASK         0xFF
+
+#define PORT_SHARE_EVENT       0x01
+
+#define PORT_MAX_LIST          8192
+
+#endif /* _SYS_PORT_IMPL_H */
index 84b2c86..eed8caf 100644 (file)
@@ -55,6 +55,16 @@ typedef struct priv_impl_info
        uint32_t priv_globalinfosize;
 } priv_impl_info_t;
 
+#define PRIV_DEBUG             0x0001
+#define PRIV_AWARE             0x0002
+#define PRIV_AWARE_INHERIT     0x0004
+#define __PROC_PROTECT         0x0008
+#define NET_MAC_AWARE          0x0010
+#define NET_MAC_AWARE_INHERIT  0x0020
+#define PRIV_XPOLICY           0x0080
+#define PRIV_USER              (PRIV_DEBUG | NET_MAC_AWARE | \
+       NET_MAC_AWARE_INHERIT |  PRIV_XPOLICY)
+
 #define PRIV_IMPL_INFO_SIZE(p) \
        ((p)->priv_headersize + (p)->priv_globalinfosize)
 
@@ -84,4 +94,10 @@ typedef struct priv_info_names
 #define PRIV_PRPRIV_SIZE(p) \
        (PRIV_PRPRIV_INFO_OFFSET(p) + (p)->pr_infosize)
 
+#define PRIV_ALL       (-1)
+#define PRIV_MULTIPLE  (-2)
+#define PRIV_NONE      (-3)
+#define PRIV_ALLZONE   (-4)
+#define PRIV_GLOBAL    (-5)
+
 #endif /* _SYS_PRIV_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/proc.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/proc.h
deleted file mode 100644 (file)
index 4340cc3..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_PROC_H
-#define _SYS_PROC_H
-
-#define SSLEEP 1
-#define SRUN   2
-#define SZOMB  3
-#define SSTOP  4
-#define SIDL   5
-#define SONPROC        6
-#define SWAIT  7
-
-#define SSYS           0x00000001
-#define SEXITING       0x00000002
-#define SITBUSY                0x00000004
-#define SFORKING       0x00000008
-#define SWATCHOK       0x00000010
-#define SKILLED                0x00000100
-#define SSCONT         0x00000200
-#define SZONETOP       0x00000400
-#define SEXTKILLED     0x00000800
-#define SUGID          0x00002000
-#define SEXECED                0x00004000
-#define SJCTL          0x00010000
-#define SNOWAIT                0x00020000
-#define SVFORK         0x00040000
-#define SVFWAIT                0x00080000
-#define SEXITLWPS      0x00100000
-#define SHOLDFORK      0x00200000
-#define SHOLDFORK1     0x00800000
-#define SCOREDUMP      0x01000000
-#define SMSACCT                0x02000000
-#define SLWPWRAP       0x04000000
-#define SAUTOLPG       0x08000000
-#define SNOCD          0x10000000
-#define SHOLDWATCH     0x20000000
-#define SMSFORK                0x40000000
-#define SDOCORE                0x80000000
-
-#endif /* _SYS_PROC_H */
index caa3fa5..35c49b7 100644 (file)
@@ -20,8 +20,6 @@
 #define        _SYS_PTYVAR_H
 
 #include <sys/tty.h>
-
-#include <bits/ioctls.h>
-#include <bits/ioctl-types.h>
+#include <sys/ioctl.h>
 
 #endif /* _SYS_PTYVAR_H */
index 4ae9fd7..31c8dd7 100644 (file)
 
 #include <features.h>
 
-typedef unsigned long long rctl_qty_t;
-typedef int rctl_priv_t;
-typedef struct rctlblk rctlblk_t;
-
 #define RCTL_LOCAL_NOACTION    0x00000000
 #define RCTL_LOCAL_SIGNAL      0x00000001
 #define RCTL_LOCAL_DENY                0x00000002
@@ -53,6 +49,28 @@ typedef struct rctlblk rctlblk_t;
 #define RCTL_GLOBAL_ACTION_MASK                0xffff0000
 #define RCTL_GLOBAL_MASK               0xfff80001
 
+#define RCTL_FIRST     0x00000000
+#define RCTL_NEXT      0x00000001
+#define RCTL_USAGE     0x00000002
+
+#define RCTL_INSERT    0x00000000
+#define RCTL_DELETE    0x00000001
+#define RCTL_REPLACE   0x00000002
+
+#define RCTL_USE_RECIPIENT_PID  0x10000000
+
+#define RCTLSYS_ACTION_MASK    0xffff0000
+#define RCTLSYS_MASK           0x10000003
+
+#define RCPRIV_BASIC           0x01000000
+#define RCPRIV_PRIVILEGED      0x04000000
+#define RCPRIV_SYSTEM          0x07000000
+
+typedef unsigned long long rctl_qty_t;
+typedef int rctl_priv_t;
+typedef struct rctlblk rctlblk_t;
+typedef struct rctl_set rctl_set_t;
+
 __BEGIN_DECLS
 
 int setrctl (const char *controlname, rctlblk_t *old_blk, rctlblk_t *new_blk,
index d8d936c..ebed02b 100644 (file)
@@ -23,6 +23,9 @@
 #include <sys/rctl.h>
 #include <sys/resource.h>
 
+#define RCTLCTL_GET    0
+#define RCTLCTL_SET    1
+
 typedef struct rctl_opaque
   {
        rctl_qty_t rcq_value;
@@ -36,4 +39,7 @@ typedef struct rctl_opaque
        hrtime_t rcq_firing_time;
   } rctl_opaque_t;
 
+#define RCTLBLK_INC(blk, n)    \
+       (rctlblk_t *)((char *)(blk) + ((n) * rctlblk_size ()))
+
 #endif /* _SYS_RCTL_IMPL_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/stream.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/stream.h
deleted file mode 100644 (file)
index c6cd062..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_STREAM_H
-#define _SYS_STREAM_H
-
-#include <sys/types.h>
-#include <sys/cred.h>
-
-#define        M_DATA          0x00
-#define        M_PROTO         0x01
-#define        M_MULTIDATA     0x02
-
-#define        M_BREAK         0x08
-#define        M_PASSFP        0x09
-#define        M_EVENT         0x0a
-#define        M_SIG           0x0b
-#define        M_DELAY         0x0c
-#define        M_CTL           0x0d
-#define        M_IOCTL         0x0e
-#define        M_SETOPTS       0x10
-#define        M_RSE           0x11
-
-#define        M_IOCACK        0x81
-#define        M_IOCNAK        0x82
-#define        M_PCPROTO       0x83
-#define        M_PCSIG         0x84
-#define        M_READ          0x85
-#define        M_FLUSH         0x86
-#define        M_STOP          0x87
-#define        M_START         0x88
-#define        M_HANGUP        0x89
-#define        M_ERROR         0x8a
-#define        M_COPYIN        0x8b
-#define        M_COPYOUT       0x8c
-#define        M_IOCDATA       0x8d
-#define        M_PCRSE         0x8e
-#define        M_STOPI         0x8f
-#define        M_STARTI        0x90
-#define        M_PCEVENT       0x91
-#define        M_UNHANGUP      0x92
-
-struct iocblk
-  {
-    int ioc_cmd;
-    cred_t *ioc_cr;
-    unsigned int ioc_id;
-#if __WORDSIZE == 32
-    size_t ioc_count;
-    int ioc_error;
-    int ioc_rval;
-    int ioc_fill1;
-    unsigned int ioc_flag;
-    int ioc_filler[2];
-#else
-    unsigned int ioc_flag;
-    size_t ioc_count;
-    int ioc_rval;
-    int ioc_error;
-#endif
-  };
-
-typedef struct iocblk *IOCP;
-
-#endif /* _SYS_STREAM_H */
index 02827de..4ff347c 100644 (file)
 #define SYS_waitsys         SYS_waitid
 #define SYS_sigsendsys      108
 #define SYS_hrtsys          109
-#define SYS_acancel         110
-#define SYS_async           111
+/* 110 unused */
+#define SYS_sigresend       111
 #define SYS_priocntlsys     112
 #define SYS_pathconf        113
 #define SYS_mincore         114
 #define SYS_lxstat          124
 #define SYS_fxstat          125
 #define SYS_xmknod          126
-#define SYS_clocal          127
+/* 127 unused */
 #define SYS_setrlimit       128
 #define SYS_getrlimit       129
 #define SYS_lchown          130
index 7bdcc6e..d076d72 100644 (file)
 #ifndef _SYS_TASK_H
 #define _SYS_TASK_H
 
+#include <sys/types.h>
+#include <features.h>
+
+#define TASK_NORMAL    0x00
+#define TASK_FINAL     0x01
+#define TASK_MASK      0x01
+
+#define TASK_PROJ_PURGE        0x00100000
+#define TASK_PROJ_MASK 0x00100000
+
+struct task;
+
+__BEGIN_DECLS
+
+extern taskid_t settaskid (projid_t, unsigned int);
+extern taskid_t gettaskid (void);
+
+__END_DECLS
+
 #endif /* _SYS_TASK_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/termio.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/termio.h
new file mode 100644 (file)
index 0000000..1da76d5
--- /dev/null
@@ -0,0 +1 @@
+#include <sys/termios.h>
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/tsol/label.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/tsol/label.h
deleted file mode 100644 (file)
index b07973c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2008 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.  */
-
-#ifndef _SYS_TSOL_LABEL_H
-#define _SYS_TSOL_LABEL_H
-
-typedef struct _mac_label_impl m_label_t;
-typedef m_label_t blevel_t;
-typedef m_label_t bslabel_t;
-typedef m_label_t bclear_t;
-
-#endif /* _SYS_TSOL_LABEL_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ttold.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ttold.h
new file mode 100644 (file)
index 0000000..755272b
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_TTOLD_H
+#define _SYS_TTOLD_H
+
+#include <sys/ioctl.h>
+
+struct tc
+  {
+       char t_intrc;
+       char t_quitc;
+       char t_startc;
+       char t_stopc;
+       char t_eofc;
+       char t_brkc;
+  };
+
+#endif /* _SYS_TTOLD_H */
index 95e191d..e2e0dac 100644 (file)
@@ -20,7 +20,6 @@
 #ifndef _SYS_TTY_H
 #define _SYS_TTY_H
 
-#include <sys/stream.h>
 #include <sys/termios.h>
 
 #endif /* _SYS_TTY_H */
index 20c677a..7c0fda5 100644 (file)
 #ifndef _SYS_TYPES32_H
 #define _SYS_TYPES32_H
 
-#include <sys/types.h>
-
-typedef uint32_t       caddr32_t;
-typedef int32_t                daddr32_t;
-typedef int32_t                off32_t;
-typedef uint32_t       ino32_t;
-typedef int32_t                blkcnt32_t;
-typedef uint32_t       fsblkcnt32_t;
-typedef uint32_t       fsfilcnt32_t;
-typedef int32_t                id32_t;
-typedef uint32_t       major32_t;
-typedef uint32_t       minor32_t;
-typedef int32_t                key32_t;
-typedef uint32_t       mode32_t;
-typedef uint32_t       uid32_t;
-typedef uint32_t       gid32_t;
-typedef uint32_t       nlink32_t;
-typedef uint32_t       dev32_t;
-typedef int32_t                pid32_t;
-typedef uint32_t       size32_t;
-typedef int32_t                ssize32_t;
-typedef int32_t                time32_t;
-typedef int32_t                clock32_t;
+#include <bits/types.h>
+
+typedef __uint32_t     caddr32_t;
+typedef __int32_t      daddr32_t;
+typedef __int32_t      off32_t;
+typedef __uint32_t     ino32_t;
+typedef __int32_t      blkcnt32_t;
+typedef __uint32_t     fsblkcnt32_t;
+typedef __uint32_t     fsfilcnt32_t;
+typedef __int32_t      id32_t;
+typedef __uint32_t     major32_t;
+typedef __uint32_t     minor32_t;
+typedef __int32_t      key32_t;
+typedef __uint32_t     mode32_t;
+typedef __uint32_t     uid32_t;
+typedef __uint32_t     gid32_t;
+typedef __uint32_t     nlink32_t;
+typedef __uint32_t     dev32_t;
+typedef __int32_t      pid32_t;
+typedef __uint32_t     size32_t;
+typedef __int32_t      ssize32_t;
+typedef __int32_t      time32_t;
+typedef __int32_t      clock32_t;
+
+struct timeval32
+  {
+       time32_t tv_sec;
+       __int32_t tv_usec;
+  };
+
+struct timespec32
+  {
+       time32_t tv_sec;
+       __int32_t tv_nsec;
+  };
 
 #endif /* _SYS_TYPES32_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ucred.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ucred.h
new file mode 100644 (file)
index 0000000..14af727
--- /dev/null
@@ -0,0 +1,64 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_UCRED_H
+#define _SYS_UCRED_H
+
+#include <sys/types.h>
+
+#define UCREDSYS_UCREDGET      0
+#define UCREDSYS_GETPEERUCRED  1
+
+#if _STRUCTURED_PROC != 0
+
+struct ucred_s
+  {
+       uint32_t uc_size;
+       uint32_t uc_credoff;
+       uint32_t uc_privoff;
+       pid_t uc_pid;
+       uint32_t uc_audoff;
+       zoneid_t uc_zoneid;
+       projid_t uc_projid;
+       uint32_t uc_labeloff;
+  };
+
+#define UCCRED(uc)     (prcred_t *)(!(uc)->uc_credoff ? \
+       ((char *)(uc)) + (uc)->uc_credoff : NULL)
+
+#define UCPRIV(uc)     (prpriv_t *)((!(uc)->uc_privoff ? \
+       ((char *)(uc)) + (uc)->uc_privoff : NULL)
+
+#define UCAUD(uc)      (auditinfo64_addr_t *)((uc)->uc_audoff ? \
+       ((char *)(uc)) + (uc)->uc_audoff : NULL)
+
+#define UCLABEL(uc)    (bslabel_t *)(!(uc)->uc_labeloff ? \
+       ((char *)(uc)) + (uc)->uc_labeloff : NULL)
+
+#define UCRED_CRED_OFF sizeof (struct ucred_s)
+
+#define UCRED_SIZE(info) \
+       (sizeof(ucred_t) + sizeof(prcred_t) + sizeof(prpriv_t) + \
+       ((int)sysconf (_SC_NGROUPS_MAX) - 1) * sizeof(gid_t) + \
+       sizeof(priv_chunk_t) * (info->priv_setsize * info->priv_nsets - 1) + \
+       info->priv_infosize + AUDITINFO64_ADDR_T_SIZE + BSLABEL_T_SIZE)
+
+#endif /* _STRUCTURED_PROC != 0 */
+
+#endif /* _SYS_UCRED_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ulimit.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/ulimit.h
new file mode 100644 (file)
index 0000000..9216528
--- /dev/null
@@ -0,0 +1,33 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_ULIMIT_H
+#define _SYS_ULIMIT_H
+
+#include <features.h>
+#include <ulimit.h>
+
+#ifdef __USE_MISC
+#define UL_GFILLIM     UL_GETFSIZE
+#define UL_SFILLIM     UL_SETFSIZE
+#define UL_GMEMLIM     3
+#define UL_GDESLIM     4
+#endif
+
+#endif /* _SYS_ULIMIT_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/utime.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/utime.h
new file mode 100644 (file)
index 0000000..65633b8
--- /dev/null
@@ -0,0 +1,37 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _SYS_UTIME_H
+#define _SYS_UTIME_H
+
+#include <utime.h>
+
+#ifdef _SYSCALL32
+
+# include <sys/types32.h>
+
+struct utimbuf32
+  {
+       time32_t actime;
+       time32_t modtime;
+  };
+
+#endif
+
+#endif /* _SYS_UTIME_H */
index e556993..885b477 100644 (file)
 #ifndef _SYS_UTSSYS_H
 #define _SYS_UTSSYS_H
 
+#include <sys/types.h>
+
+#define UTS_UNAME      0x00
 #define        UTS_USTAT       0x02
 #define        UTS_FUSERS      0x03
 
+/* UTS_FUSERS flags.  */
+#define F_FILE_ONLY    0x01
+#define F_CONTAINED    0x02
+#define F_NBMANDLIST   0x04
+#define F_DEVINFO      0x08
+#define F_KINFO_COUNT  0x10
+
+typedef struct f_user
+  {
+       int fu_flags;   /* see below */
+       union
+         {
+               struct
+                 {
+                       pid_t u_pid;
+            uid_t u_uid;
+                 } u_info;
+        struct
+                 {
+                       int k_modid;
+                       int k_instance;
+                       int k_minor;
+                 } k_info;
+         } fu_info;
+  } f_user_t;
+
+#define fu_pid         fu_info.u_info.u_pid
+#define fu_uid         fu_info.u_info.u_uid
+#define fu_modid       fu_info.k_info.k_modid
+#define fu_instance    fu_info.k_info.k_instance
+#define fu_minor       fu_info.k_info.k_minor
+
+/* fu_flags values.  */
+#define F_CDIR         0x01
+#define F_RDIR         0x02
+#define F_TEXT         0x04
+#define F_MAP          0x08
+#define F_OPEN         0x10
+#define F_TRACE                0x20
+#define F_TTY          0x40
+#define F_NBM          0x80
+#define F_KERNEL       0x80000000
+
+typedef struct fu_data
+  {
+       int fud_user_max;
+       int fud_user_count;
+       struct f_user fud_user[1];
+  } fu_data_t;
+
+#define fu_data_size(x) (sizeof(fu_data_t) - sizeof(f_user_t) + \
+       ((x) * sizeof(f_user_t)))
+
 #endif /* _SYS_UTSSYS_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vm.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vm.h
deleted file mode 100644 (file)
index 8016021..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_VM_H
-#define _SYS_VM_H
-
-#include <sys/vmparam.h>
-
-#endif /* _SYS_VM_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vmparam.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/vmparam.h
deleted file mode 100644 (file)
index bfbf926..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _SYS_VMPARAM_H
-#define _SYS_VMPARAM_H
-
-#define SSIZE  4096
-#define SINCR  4096
-
-#if defined(__i386__)
-# define USRSTACK      0x8048000
-#elif defined(__amd64__)
-# define USRSTACK      USERLIMIT
-#endif
-
-#endif /* _SYS_VMPARAM_H */
index deb11b6..30fa664 100644 (file)
 
 #include <sys/types.h>
 #include <sys/priv.h>
-#include <sys/tsol/label.h>
+
+typedef struct _mac_label_impl m_label_t;
+typedef m_label_t bslabel_t;
+
+/* Subcall numbers.  */
+#define ZONE_CREATE    0
+#define ZONE_DESTROY   1
+#define ZONE_GETATTR   2
+#define ZONE_ENTER     3
+#define ZONE_LIST      4
+#define ZONE_SHUTDOWN  5
+#define ZONE_LOOKUP    6
+#define ZONE_BOOT      7
+#define ZONE_VERSION   8
+#define ZONE_SETATTR   9
+#define ZONE_ADD_DATALINK      10
+#define ZONE_DEL_DATALINK      11
+#define ZONE_CHECK_DATALINK    12
+#define ZONE_LIST_DATALINK     13
 
 #define GLOBAL_ZONEID  0
+#define MIN_ZONEID     0
+#define MIN_USERZONEID 1
+#define MAX_ZONEID     9999
+#define ZONEID_WIDTH   4
+#define ALL_ZONES      (-1)
 
 /* Zone attributes.  */
 #define ZONE_ATTR_ROOT         1
index bfc15d4..e4a120c 100644 (file)
@@ -21,7 +21,8 @@
 #include <unistd.h>
 #include <ucred.h>
 #include <errno.h>
-#include <ucredP.h>
+#define _STRUCTURED_PROC 1
+#include <sys/ucred.h>
 #include <priv.h>
 #include <assert.h>
 
@@ -159,10 +160,7 @@ size_t ucred_size (void)
     assert (info);
 
     /* XXX: We shouldn't use AUDITINFO64_ADDR_T_SIZE and BSLABEL_T_SIZE.  */
-    return sizeof(ucred_t) + sizeof(prcred_t) + sizeof(prpriv_t) +
-        ((int)sysconf (_SC_NGROUPS_MAX) - 1) * sizeof(gid_t) +
-        sizeof(priv_chunk_t) * (info->priv_setsize * info->priv_nsets - 1) +
-        info->priv_infosize + AUDITINFO64_ADDR_T_SIZE + BSLABEL_T_SIZE;
+    return UCRED_SIZE (info);
 }
 
 
index 3a17986..c6ea296 100644 (file)
@@ -22,7 +22,8 @@
 #include <features.h>
 #include <sys/types.h>
 #include <sys/priv.h>
-#include <sys/tsol/label.h>
+
+typedef struct _mac_label_impl m_label_t;
 
 typedef struct ucred_s ucred_t;
 
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucredP.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ucredP.h
deleted file mode 100644 (file)
index 8b02d01..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2008 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
-
-   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.  */
-
-#ifndef _UCRED_PRIV_H
-#define _UCRED_PRIV_H
-
-#include <sys/types.h>
-
-struct ucred_s
-{
-       uint32_t uc_size;
-       uint32_t uc_credoff;
-       uint32_t uc_privoff;
-       pid_t uc_pid;
-       uint32_t uc_audoff;
-       zoneid_t uc_zoneid;
-       projid_t uc_projid;
-       uint32_t uc_labeloff;
-};
-
-#endif /* _UCRED_PRIV_H */
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/bits/machtypes.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/bits/machtypes.h
new file mode 100644 (file)
index 0000000..307fb79
--- /dev/null
@@ -0,0 +1,53 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+   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.  */
+
+#ifndef _BITS_MACHTYPES_H
+#define _BITS_MACHTYPES_H
+
+#include <features.h>
+
+#ifdef __USE_MISC
+
+#define REG_LABEL_PC    0
+#define REG_LABEL_SP    1
+#define REG_LABEL_BP    2
+#ifdef __i386__
+# define REG_LABEL_EBX 3
+# define REG_LABEL_ESI 4
+# define REG_LABEL_EDI 5
+# define REG_LABEL_MAX 6
+#else
+# define REG_LABEL_RBX 3
+# define REG_LABEL_R12 4
+# define REG_LABEL_R13 5
+# define REG_LABEL_R14 6
+# define REG_LABEL_R15 7
+# define REG_LABEL_MAX 8
+#endif
+
+typedef struct _label_t
+  {
+       long val[REG_LABEL_MAX];
+  } label_t;
+
+#endif /* __USE_MISC */
+
+typedef unsigned char  lock_t;
+
+#endif /* _BITS_MACHTYPES_H */
index 45ac06e..f75d022 100644 (file)
@@ -54,6 +54,11 @@ typedef struct __fpu
 
 typedef int greg_t;
 
+#if defined (_SYSCALL32)
+typedef int32_t greg32_t;
+typedef int64_t greg64_t;
+#endif
+
 #define prgregset_t    gregset_t
 #define prfpregset_t   fpregset_t
 #define prgreg_t       greg_t
@@ -67,4 +72,71 @@ typedef struct
     fpregset_t fpregs;
   } mcontext_t;
 
+struct fxsave_state
+  {
+       uint16_t fx_fcw;
+       uint16_t fx_fsw;
+       uint16_t fx_fctw;
+       uint16_t fx_fop;
+#ifdef __amd64__
+       uint64_t fx_rip;
+       uint64_t fx_rdp;
+#else
+       uint32_t fx_eip;
+       uint16_t fx_cs;
+       uint16_t __fx_ign0;
+       uint32_t fx_dp;
+       uint16_t fx_ds;
+       uint16_t __fx_ign1;
+#endif
+       uint32_t fx_mxcsr;
+       uint32_t fx_mxcsr_mask;
+       union
+         {
+               uint16_t fpr_16[5];
+               unsigned long long fpr_mmx;
+        uint32_t __fpr_pad[4];
+         } fx_st[8];
+#if defined(__amd64)
+       upad128_t fx_xmm[16]; /* 128-bit registers */
+       upad128_t __fx_ign2[6];
+#else
+       upad128_t fx_xmm[8];  /* 128-bit registers */
+       upad128_t __fx_ign2[14];
+#endif
+  };
+
+struct fnsave_state
+  {
+       uint16_t f_fcw;
+       uint16_t __f_ign0;
+       uint16_t f_fsw;
+       uint16_t __f_ign1;
+       uint16_t f_ftw;
+       uint16_t __f_ign2;
+       uint32_t f_eip;
+       uint16_t f_cs;
+       uint16_t f_fop;
+       uint32_t f_dp;
+       uint16_t f_ds;
+       uint16_t __f_ign3;
+       union
+         {
+               uint16_t fpr_16[5];
+         } f_st[8];
+  };
+
+typedef struct
+  {
+       union _kfpu_u
+         {
+               struct fxsave_state kfpu_fx;
+#ifdef __i386__
+               struct fnsave_state kfpu_fn;
+#endif
+         } kfpu_u;
+       uint32_t kfpu_status;
+       uint32_t kfpu_xstatus;
+  } kfpu_t;
+
 #endif /* _SYS_REGSET_H */
index 94165de..6fc89e2 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _SYS_ISA_DEFS_H
 #define _SYS_ISA_DEFS_H
 
+#define __x86
+
 #define _LITTLE_ENDIAN
 #define _STACK_GROWS_DOWNWARD
 #define _LONG_LONG_LTOH
index 11f7fb6..ff41992 100644 (file)
 #define LWPFS_SEL      SEL_GDT(GDT_LWPFS, SEL_UPL)
 #define LWPGS_SEL      SEL_GDT(GDT_LWPGS, SEL_UPL)
 
+#ifdef __i386__
+
+typedef struct user_desc
+  {
+       uint32_t usd_lolimit:16;
+       uint32_t usd_lobase:16;
+       uint32_t usd_midbase:8;
+       uint32_t usd_type:5;
+       uint32_t usd_dpl:2;
+       uint32_t usd_p:1;
+       uint32_t usd_hilimit:4;
+       uint32_t usd_avl:1;
+       uint32_t usd_reserved:1;
+       uint32_t usd_def32:1;
+       uint32_t usd_gran:1;
+       uint32_t usd_hibase:8;
+  } user_desc_t;
+
+typedef struct system_desc
+  {
+       uint32_t ssd_lolimit:16;
+       uint32_t ssd_lobase:16;
+       uint32_t ssd_midbase:8;
+       uint32_t ssd_type:4;
+       uint32_t ssd_zero:1;
+       uint32_t ssd_dpl:2;
+       uint32_t ssd_p:1;
+       uint32_t ssd_hilimit:4;
+       uint32_t ssd_avl:1;
+       uint32_t ssd_reserved:2;
+       uint32_t ssd_gran:1;
+       uint32_t ssd_hibase:8;
+ } system_desc_t;
+
+#else
+
+typedef struct user_desc
+  {
+       uint64_t usd_lolimit:16;
+       uint64_t usd_lobase:16;
+       uint64_t usd_midbase:8;
+       uint64_t usd_type:5;
+       uint64_t usd_dpl:2;
+       uint64_t usd_p:1;
+       uint64_t usd_hilimit:4;
+       uint64_t usd_avl:1;
+       uint64_t usd_long:1;
+       uint64_t usd_def32:1;
+       uint64_t usd_gran:1;
+       uint64_t usd_hibase:8;
+  } user_desc_t;
+
+typedef struct system_desc
+  {
+       uint64_t ssd_lolimit:16;
+       uint64_t ssd_lobase:16;
+       uint64_t ssd_midbase:8;
+       uint64_t ssd_type:4;
+       uint64_t ssd_zero1:1;
+       uint64_t ssd_dpl:2;
+       uint64_t ssd_p:1;
+       uint64_t ssd_hilimit:4;
+       uint64_t ssd_avl:1;
+       uint64_t ssd_resv1:2;
+       uint64_t ssd_gran:1;
+       uint64_t ssd_hibase:8;
+       uint64_t ssd_hi64base:32;
+       uint64_t ssd_resv2:8;
+       uint64_t ssd_zero2:5;
+       uint64_t ssd_resv3:19;
+  } system_desc_t;
+
+#endif /* __i386__ */
+
 #endif /* _SYS_SEGMENTS_H */
index d0812a1..164f00f 100644 (file)
@@ -21,7 +21,6 @@
 #define _ZONE_H
 
 #include <features.h>
-#include <sys/tsol/label.h>
 #include <sys/types.h>
 #include <sys/zone.h>