Module Name:    src
Committed By:   riastradh
Date:           Wed Apr 17 18:10:27 UTC 2024

Modified Files:
        src/sys/modules/examples/fopsmapper: cmd_mapper.c fopsmapper.c

Log Message:
modules/examples/fopsmapper: KNF, sprinkle comments

Missing: MP-safety; this is a kind of broken example.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/modules/examples/fopsmapper/cmd_mapper.c \
    src/sys/modules/examples/fopsmapper/fopsmapper.c

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

Modified files:

Index: src/sys/modules/examples/fopsmapper/cmd_mapper.c
diff -u src/sys/modules/examples/fopsmapper/cmd_mapper.c:1.2 src/sys/modules/examples/fopsmapper/cmd_mapper.c:1.3
--- src/sys/modules/examples/fopsmapper/cmd_mapper.c:1.2	Wed Apr  1 13:07:32 2020
+++ src/sys/modules/examples/fopsmapper/cmd_mapper.c	Wed Apr 17 18:10:27 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: cmd_mapper.c,v 1.2 2020/04/01 13:07:32 kamil Exp $	*/
+/*	$NetBSD: cmd_mapper.c,v 1.3 2024/04/17 18:10:27 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: cmd_mapper.c,v 1.2 2020/04/01 13:07:32 kamil Exp $");
+__RCSID("$NetBSD: cmd_mapper.c,v 1.3 2024/04/17 18:10:27 riastradh Exp $");
 
 #include <sys/mman.h>
 
@@ -37,7 +37,7 @@ __RCSID("$NetBSD: cmd_mapper.c,v 1.2 202
 #include <stdlib.h>
 #include <unistd.h>
 
-#define _PATH_DEV_MAPPER "/dev/fopsmapper"
+#define	_PATH_DEV_MAPPER	"/dev/fopsmapper"
 
 int main(int argc, char **argv)
 {
@@ -47,12 +47,11 @@ int main(int argc, char **argv)
 	if ((devfd = open(_PATH_DEV_MAPPER, O_RDONLY)) == -1)
 		err(EXIT_FAILURE, "Cannot open %s", _PATH_DEV_MAPPER);
 
-	map = (char *)(mmap(0, sysconf(_SC_PAGESIZE), PROT_READ, MAP_SHARED,
-				devfd, 0));
+	map = mmap(0, sysconf(_SC_PAGESIZE), PROT_READ, MAP_SHARED, devfd, 0);
 	if (map == MAP_FAILED)
 		err(EXIT_FAILURE, "Mapping failed");
 
-	printf("Message from device: %s\n",map);
+	printf("Message from device: %s\n", map);
 
 	if (munmap(map, sysconf(_SC_PAGESIZE)) == -1)
 		err(EXIT_FAILURE, "Unmap failed");
Index: src/sys/modules/examples/fopsmapper/fopsmapper.c
diff -u src/sys/modules/examples/fopsmapper/fopsmapper.c:1.2 src/sys/modules/examples/fopsmapper/fopsmapper.c:1.3
--- src/sys/modules/examples/fopsmapper/fopsmapper.c:1.2	Wed Apr  1 11:45:53 2020
+++ src/sys/modules/examples/fopsmapper/fopsmapper.c	Wed Apr 17 18:10:27 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: fopsmapper.c,v 1.2 2020/04/01 11:45:53 kamil Exp $	*/
+/*	$NetBSD: fopsmapper.c,v 1.3 2024/04/17 18:10:27 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -27,29 +27,30 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fopsmapper.c,v 1.2 2020/04/01 11:45:53 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fopsmapper.c,v 1.3 2024/04/17 18:10:27 riastradh Exp $");
 
-#include <sys/module.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
+#include <sys/types.h>
 
 #include <sys/conf.h>
 #include <sys/file.h>
 #include <sys/filedesc.h>
+#include <sys/kernel.h>
 #include <sys/kmem.h>
 #include <sys/mman.h>
+#include <sys/module.h>
 #include <sys/mutex.h>
+#include <sys/param.h>
+#include <sys/systm.h>
+
 #include <uvm/uvm_extern.h>
 
 /*
  * To use this module you need to:
  *
  * mknod /dev/fopsmapper c 351 0
- *
  */
 
-dev_type_open(fopsmapper_open);
+dev_open_t fopsmapper_open;
 
 const struct cdevsw fopsmapper_cdevsw = {
 	.d_open = fopsmapper_open,
@@ -66,9 +67,9 @@ const struct cdevsw fopsmapper_cdevsw = 
 	.d_flag = D_OTHER
 };
 
-static int fopsmapper_mmap(file_t *, off_t *, size_t,
-	       	int, int *, int *,struct uvm_object **, int *);
-static int fopsmapper_close(file_t *);
+static int fopsmapper_mmap(struct file *, off_t *, size_t, int, int *, int *,
+    struct uvm_object **, int *);
+static int fopsmapper_close(struct file *);
 
 const struct fileops mapper_fileops = {
 	.fo_read = fbadop_read,
@@ -83,16 +84,16 @@ const struct fileops mapper_fileops = {
 	.fo_mmap = fopsmapper_mmap,
 };
 
-typedef struct fopsmapper_softc {
+struct fopsmapper_softc {
 	char *buf;
 	struct uvm_object *uobj;
 	size_t bufsize;
-} fops_t;
+};
 
 int
 fopsmapper_open(dev_t dev, int flag, int mode, struct lwp *l)
 {
-	fops_t *fo;
+	struct fopsmapper_softc *fo;
 	struct file *fp;
 	int fd, error;
 
@@ -105,11 +106,11 @@ fopsmapper_open(dev_t dev, int flag, int
 }
 
 int
-fopsmapper_mmap(file_t * fp, off_t * offp, size_t size, int prot,
-		int *flagsp, int *advicep, struct uvm_object **uobjp,
-		int *maxprotp)
+fopsmapper_mmap(struct file *fp, off_t *offp, size_t size, int prot,
+    int *flagsp, int *advicep, struct uvm_object **uobjp, int *maxprotp)
 {
-	fops_t *fo;
+	struct fopsmapper_softc *fo;
+	vaddr_t va;
 	int error;
 
 	if (prot & PROT_EXEC)
@@ -125,32 +126,35 @@ fopsmapper_mmap(file_t * fp, off_t * off
 	fo->uobj = uao_create(size, 0);
 
 	fo->buf = NULL;
-	/* Map the uvm object into kernel */
-	error =	uvm_map(kernel_map, (vaddr_t *) &fo->buf, fo->bufsize,
-	                fo->uobj, 0, 0,
-	                UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW,
-	                            UVM_INH_SHARE,UVM_ADV_RANDOM, 0));
 
+	/*
+	 * Map the uvm object into kernel.  Consumes our reference to
+	 * uobj on success.
+	 */
+	error =	uvm_map(kernel_map, &va, fo->bufsize, fo->uobj, 0, 0,
+	    UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW,
+		UVM_INH_SHARE, UVM_ADV_RANDOM, 0));
 	if (error) {
 		uao_detach(fo->uobj);
-		return error;
+		goto out;
 	}
+	fo->buf = (char *)va;
 	snprintf(fo->buf, 13, "Hey There!");
 
 	/* Get the reference of uobj */
 	uao_reference(fo->uobj);
-
 	*uobjp = fo->uobj;
 	*maxprotp = prot;
 	*advicep = UVM_ADV_RANDOM;
+	error = 0;
 
-	return 0;
+out:	return error;
 }
 
 int
-fopsmapper_close(file_t * fp)
+fopsmapper_close(struct file *fp)
 {
-	fops_t *fo;
+	struct fopsmapper_softc *fo;
 
 	fo = fp->f_data;
 	KASSERT(fo != NULL);
@@ -173,7 +177,7 @@ fopsmapper_modcmd(modcmd_t cmd, void *ar
 	switch (cmd) {
 	case MODULE_CMD_INIT:
 		if (devsw_attach("fopsmapper", NULL, &bmajor,
-		    &fopsmapper_cdevsw, &cmajor))
+			&fopsmapper_cdevsw, &cmajor))
 			return ENXIO;
 		return 0;
 	case MODULE_CMD_FINI:

Reply via email to