Module Name:    src
Committed By:   pooka
Date:           Mon Jun  8 12:16:47 UTC 2015

Modified Files:
        src/sys/rump/librump/rumpkern: rump.c
        src/sys/rump/librump/rumpvfs: devnodes.c rump_vfs_private.h

Log Message:
Allow device components to create symlinks in /dev
e.g. /dev/audio -> audio0

from Robert Millan <[email protected]> via rumpkernel-users


To generate a diff of this commit:
cvs rdiff -u -r1.320 -r1.321 src/sys/rump/librump/rumpkern/rump.c
cvs rdiff -u -r1.10 -r1.11 src/sys/rump/librump/rumpvfs/devnodes.c
cvs rdiff -u -r1.18 -r1.19 src/sys/rump/librump/rumpvfs/rump_vfs_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/librump/rumpkern/rump.c
diff -u src/sys/rump/librump/rumpkern/rump.c:1.320 src/sys/rump/librump/rumpkern/rump.c:1.321
--- src/sys/rump/librump/rumpkern/rump.c:1.320	Wed May 20 11:02:54 2015
+++ src/sys/rump/librump/rumpkern/rump.c	Mon Jun  8 12:16:47 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump.c,v 1.320 2015/05/20 11:02:54 pooka Exp $	*/
+/*	$NetBSD: rump.c,v 1.321 2015/06/08 12:16:47 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007-2011 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.320 2015/05/20 11:02:54 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.321 2015/06/08 12:16:47 pooka Exp $");
 
 #include <sys/systm.h>
 #define ELFSIZE ARCH_ELFSIZE
@@ -125,6 +125,7 @@ int  (*rump_vfs_makeonedevnode)(dev_t, c
 				devmajor_t, devminor_t) = (void *)nullop;
 int  (*rump_vfs_makedevnodes)(dev_t, const char *, char,
 			      devmajor_t, devminor_t, int) = (void *)nullop;
+int  (*rump_vfs_makesymlink)(const char *, const char *) = (void *)nullop;
 
 rump_proc_vfs_init_fn rump_proc_vfs_init = (void *)nullop;
 rump_proc_vfs_release_fn rump_proc_vfs_release = (void *)nullop;

Index: src/sys/rump/librump/rumpvfs/devnodes.c
diff -u src/sys/rump/librump/rumpvfs/devnodes.c:1.10 src/sys/rump/librump/rumpvfs/devnodes.c:1.11
--- src/sys/rump/librump/rumpvfs/devnodes.c:1.10	Fri Jun 20 11:27:25 2014
+++ src/sys/rump/librump/rumpvfs/devnodes.c	Mon Jun  8 12:16:47 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: devnodes.c,v 1.10 2014/06/20 11:27:25 pooka Exp $	*/
+/*	$NetBSD: devnodes.c,v 1.11 2015/06/08 12:16:47 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: devnodes.c,v 1.10 2014/06/20 11:27:25 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: devnodes.c,v 1.11 2015/06/08 12:16:47 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -87,6 +87,13 @@ makedevnodes(dev_t devtype, const char *
 	return error;
 }
 
+static int
+makesymlink(const char *dst, const char *src)
+{
+
+	return do_sys_symlink(dst, src, UIO_SYSSPACE);
+}
+
 enum { NOTEXIST, SAME, DIFFERENT };
 static int
 doesitexist(const char *path, bool isblk, devmajor_t dmaj, devminor_t dmin)
@@ -177,6 +184,7 @@ rump_vfs_builddevs(struct devsw_conv *dc
 
 	rump_vfs_makeonedevnode = makeonedevnode;
 	rump_vfs_makedevnodes = makedevnodes;
+	rump_vfs_makesymlink = makesymlink;
 
 	for (i = 0; i < dcvecsize; i++) {
 		dc = &dcvec[i];

Index: src/sys/rump/librump/rumpvfs/rump_vfs_private.h
diff -u src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.18 src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.19
--- src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.18	Mon Nov 17 14:30:31 2014
+++ src/sys/rump/librump/rumpvfs/rump_vfs_private.h	Mon Jun  8 12:16:47 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_vfs_private.h,v 1.18 2014/11/17 14:30:31 pooka Exp $	*/
+/*	$NetBSD: rump_vfs_private.h,v 1.19 2015/06/08 12:16:47 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -50,6 +50,7 @@ extern int	(*rump_vfs_makeonedevnode)(de
 					   devmajor_t, devminor_t);
 extern int	(*rump_vfs_makedevnodes)(dev_t, const char *, char,
 					 devmajor_t, devminor_t, int);
+extern int	(*rump_vfs_makesymlink)(const char *, const char *);
 extern void	(*rump_vfs_drainbufs)(int);
 extern void	(*rump_vfs_fini)(void);
 

Reply via email to