Add sys/byteorder.h and ntoll/htonll
authorDavid Bartley <dtbartle@glibc.(none)>
Mon, 9 Feb 2009 03:52:32 +0000 (03:52 +0000)
committerDavid Bartley <dtbartle@glibc.(none)>
Mon, 9 Feb 2009 03:52:32 +0000 (03:52 +0000)
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/Makefile
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/Versions
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/htonll.c [new file with mode: 0644]
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/byteorder.h [new file with mode: 0644]

index 2ecdfce..2836cc7 100644 (file)
@@ -56,7 +56,7 @@ sysdep_headers += sys/feature_tests.h sys/dirent.h sys/utime.h sys/machelf.h \
     sys/acct.h sys/acctctl.h sys/utssys.h sys/corectl.h sys/loadavg.h \
     sys/port.h sys/port_impl.h sys/acl.h sys/tsol/label.h sys/fsid.h \
     sys/fstyp.h sys/rctl.h sys/rctl_impl.h sys/sid.h sys/mnttab.h sys/mntio.h \
-    sys/instance.h
+    sys/instance.h sys/byteorder.h
 sysdep_headers += rtld_db.h pcsample.h atomic.h bits/machtypes.h door.h \
     ucred.h priv.h zone.h port.h deflt.h procfs.h rctl.h
 headers := $(filter-out sys/sysinfo.h sys/xattr.h, $(headers))
@@ -67,7 +67,7 @@ sysdep_routines += sys_getdents sys_getdents64
 endif
 
 ifeq ($(subdir),inet)
-sysdep_routines += _link_aton _link_ntoa
+sysdep_routines += _link_aton _link_ntoa htonll
 endif
 
 ifeq ($(subdir),posix)
index 1549d75..8d0c1d1 100644 (file)
@@ -52,11 +52,11 @@ libc {
     getzoneid; getzoneidbyname; getzonenamebyid;
 
     # h
-    __hasmntopt_sun;
+    __hasmntopt_sun; htonll;
 
     # i
     idmap_reg; idmap_unreg; inet_ntoa_r; __init_daemon_priv; __init_suid_priv;
-    _insert; issetugid; is_system_labeled;
+    _insert; inst_sync; issetugid; is_system_labeled;
 
     # l
     _link_aton; _link_ntoa; llseek; lltostr;
@@ -66,7 +66,7 @@ libc {
     meminfo; modctl; mount;
 
     # n
-    ntp_adjtime; ntp_gettime;
+    ntohll; ntp_adjtime; ntp_gettime;
 
     # p
     pc_sample; p_online; priocntl; priocntlset; __priv_bracket;
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/htonll.c b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/htonll.c
new file mode 100644 (file)
index 0000000..5f7077e
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 1993,97,2002,2009 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.  */
+
+#include <netinet/in.h>
+
+#undef htonll
+#undef ntohll
+
+uint64_t
+htonll (x)
+     uint64_t x;
+{
+#if BYTE_ORDER == BIG_ENDIAN
+  return x;
+#elif BYTE_ORDER == LITTLE_ENDIAN
+  return __bswap_64 (x);
+#else
+# error "What kind of system is this?"
+#endif
+}
+weak_alias (htonll, ntohll)
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/byteorder.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/byteorder.h
new file mode 100644 (file)
index 0000000..9db7b75
--- /dev/null
@@ -0,0 +1,47 @@
+/* Declarations of zone functions and types.
+   Copyright (C) 2009 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_BYTEORDER_H
+#define _SYS_BYTEORDER_H
+
+#include <byteswap.h>
+#include <features.h>
+#include <sys/types.h>
+
+#define BSWAP_8(x)     __bswap_8(x)
+#define BSWAP_16(x)    __bswap_16(x)
+#define BSWAP_32(x)    __bswap_32(x)
+#define BSWAP_64(x)    __bswap_64(x)
+
+extern uint64_t htonll (uint64_t __hostlonglong)
+     __THROW __attribute__ ((__const__));
+extern uint64_t ntohll (uint64_t __netlonglong)
+     __THROW __attribute__ ((__const__));
+
+#ifdef __OPTIMIZE__
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define ntohll(x)     (x)
+# else
+#  if __BYTE_ORDER == __LITTLE_ENDIAN
+#   define ntohll(x)   __bswap_64 (x)
+#  endif
+# endif
+#endif
+
+#endif /* _SYS_BYTEORDER_H */