[Glibc-bsd-commits] r2695 - in trunk/glibc-ports: . kfreebsd kfreebsd/bits
Petr Salinger
ps-guest at alioth.debian.org
Thu Aug 6 09:33:43 UTC 2009
Author: ps-guest
Date: 2009-08-06 09:33:43 +0000 (Thu, 06 Aug 2009)
New Revision: 2695
Added:
trunk/glibc-ports/kfreebsd/devname.c
Modified:
trunk/glibc-ports/glibc-sysdeps-2.10.patch
trunk/glibc-ports/kfreebsd/Makefile
trunk/glibc-ports/kfreebsd/bits/stat.h
Log:
add devname/devname_r for 2.10 (untested)
Modified: trunk/glibc-ports/glibc-sysdeps-2.10.patch
===================================================================
--- trunk/glibc-ports/glibc-sysdeps-2.10.patch 2009-08-05 15:17:44 UTC (rev 2694)
+++ trunk/glibc-ports/glibc-sysdeps-2.10.patch 2009-08-06 09:33:43 UTC (rev 2695)
@@ -407,11 +407,13 @@
privileges. */
--- a/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions
--- b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions
-@@ -81,6 +81,9 @@
+@@ -81,6 +81,11 @@
# functions used in inline functions or macros
__libc_sa_len;
}
+ GLIBC_2.10 {
++ devname;
++ devname_r;
+ sysctlnametomib;
+ }
GLIBC_PRIVATE {
Modified: trunk/glibc-ports/kfreebsd/Makefile
===================================================================
--- trunk/glibc-ports/kfreebsd/Makefile 2009-08-05 15:17:44 UTC (rev 2694)
+++ trunk/glibc-ports/kfreebsd/Makefile 2009-08-06 09:33:43 UTC (rev 2695)
@@ -78,6 +78,8 @@
sysdep_routines += rtprio
# For <sys/socket.h>.
sysdep_routines += bsd_sendfile
+# For <sys/stat.h>.
+sysdep_routines += devname
# For <sys/sysctl.h>.
sysdep_routines += sysctl sysctlbyname sysctlnametomib
# For <sys/uio.h>.
Modified: trunk/glibc-ports/kfreebsd/bits/stat.h
===================================================================
--- trunk/glibc-ports/kfreebsd/bits/stat.h 2009-08-05 15:17:44 UTC (rev 2694)
+++ trunk/glibc-ports/kfreebsd/bits/stat.h 2009-08-06 09:33:43 UTC (rev 2695)
@@ -194,6 +194,10 @@
/* Set file flags of the file referred to by FD to FLAGS. */
extern int fchflags (int __fd, unsigned long int __flags) __THROW;
+
+extern char *devname_r(dev_t dev, mode_t type, char *buf, int len) __THROW;
+extern char *devname(dev_t dev, mode_t type) __THROW;
+
__END_DECLS
#endif /* __USE_BSD */
Added: trunk/glibc-ports/kfreebsd/devname.c
===================================================================
--- trunk/glibc-ports/kfreebsd/devname.c (rev 0)
+++ trunk/glibc-ports/kfreebsd/devname.c 2009-08-06 09:33:43 UTC (rev 2695)
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 1989, 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.
+ */
+
+
+#include <stdio.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+
+char *
+__devname_r(dev_t dev, mode_t type, char *buf, int len)
+{
+ int i;
+ size_t j;
+ char *r;
+
+ if ((type & S_IFMT) == S_IFCHR) {
+ j = len;
+ i = __sysctlbyname("kern.devname", buf, &j, &dev, sizeof (dev));
+ if (i == 0)
+ return (buf);
+ }
+
+ /* Finally just format it */
+ if (dev == NODEV)
+ r = "#NODEV";
+ else
+ r = "#%c:%d:0x%x";
+ __snprintf(buf, len, r,
+ (type & S_IFMT) == S_IFCHR ? 'C' : 'B', major(dev), minor(dev));
+ return (buf);
+}
+
+
+char *
+__devname(dev_t dev, mode_t type)
+{
+ static char buf[SPECNAMELEN + 1];
+
+ return(__devname_r(dev, type, buf, sizeof(buf)));
+}
+weak_alias (__devname_r, devname_r)
+weak_alias (__devname, devname)
More information about the Glibc-bsd-commits
mailing list