[Midnightbsd-cvs] src: geom/misc: Merge changes.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Nov 21 16:04:53 EST 2008


Log Message:
-----------
Merge changes.

Modified Files:
--------------
    src/sbin/geom/misc:
        subr.c (r1.2 -> r1.3)
        subr.h (r1.2 -> r1.3)

-------------- next part --------------
Index: subr.h
===================================================================
RCS file: /home/cvs/src/sbin/geom/misc/subr.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -L sbin/geom/misc/subr.h -L sbin/geom/misc/subr.h -u -r1.2 -r1.3
--- sbin/geom/misc/subr.h
+++ sbin/geom/misc/subr.h
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sbin/geom/misc/subr.h,v 1.3.8.3 2006/04/05 22:20:43 pjd Exp $
+ * $FreeBSD: src/sbin/geom/misc/subr.h,v 1.8 2007/01/25 11:35:27 pjd Exp $
  */
 
 #ifndef _SUBR_H_
@@ -41,8 +41,10 @@
 int g_metadata_store(const char *name, u_char *md, size_t size);
 int g_metadata_clear(const char *name, const char *magic);
 
-void gctl_error(struct gctl_req *req, const char *error, ...);
-int gctl_get_int(struct gctl_req *req, const char *pfmt, ...);
-intmax_t gctl_get_intmax(struct gctl_req *req, const char *pfmt, ...);
-const char *gctl_get_ascii(struct gctl_req *req, const char *pfmt, ...);
+void gctl_error(struct gctl_req *req, const char *error, ...) __printflike(2, 3);
+int gctl_get_int(struct gctl_req *req, const char *pfmt, ...) __printflike(2, 3);
+intmax_t gctl_get_intmax(struct gctl_req *req, const char *pfmt, ...) __printflike(2, 3);
+const char *gctl_get_ascii(struct gctl_req *req, const char *pfmt, ...) __printflike(2, 3);
+int gctl_change_param(struct gctl_req *req, const char *name, int len,
+    const void *value);
 #endif	/* !_SUBR_H_ */
Index: subr.c
===================================================================
RCS file: /home/cvs/src/sbin/geom/misc/subr.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -L sbin/geom/misc/subr.c -L sbin/geom/misc/subr.c -u -r1.2 -r1.3
--- sbin/geom/misc/subr.c
+++ sbin/geom/misc/subr.c
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/geom/misc/subr.c,v 1.3.8.3 2006/04/05 22:20:43 pjd Exp $");
+__FBSDID("$FreeBSD: src/sbin/geom/misc/subr.c,v 1.7 2007/01/25 11:35:27 pjd Exp $");
 
 #include <sys/param.h>
 #include <sys/disk.h>
@@ -388,3 +388,29 @@
 	va_end(ap);
 	return (p);
 }
+
+int
+gctl_change_param(struct gctl_req *req, const char *name, int len,
+    const void *value)
+{
+	struct gctl_req_arg *ap;
+	unsigned i;
+
+	if (req == NULL || req->error != NULL)
+		return (EDOOFUS);
+	for (i = 0; i < req->narg; i++) {
+		ap = &req->arg[i];
+		if (strcmp(ap->name, name) != 0)
+			continue;
+		ap->value = __DECONST(void *, value);
+		if (len >= 0) {
+			ap->flag &= ~GCTL_PARAM_ASCII;
+			ap->len = len;
+		} else if (len < 0) {
+			ap->flag |= GCTL_PARAM_ASCII;
+			ap->len = strlen(value) + 1;
+		}
+		return (0);
+	}
+	return (ENOENT);
+}


More information about the Midnightbsd-cvs mailing list