[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