summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_environment.c22
-rw-r--r--sys/sys/systm.h3
2 files changed, 23 insertions, 2 deletions
diff --git a/sys/kern/kern_environment.c b/sys/kern/kern_environment.c
index 9789706..08af003 100644
--- a/sys/kern/kern_environment.c
+++ b/sys/kern/kern_environment.c
@@ -46,6 +46,9 @@ char *kern_envp;
static char *kernenv_next(char *cp);
+/*
+ * Look up an environment variable by name.
+ */
char *
getenv(const char *name)
{
@@ -65,6 +68,23 @@ getenv(const char *name)
}
/*
+ * Return a string value from an environment variable.
+ */
+int
+getenv_string(const char *name, char *data, int size)
+{
+ char *tmp;
+
+ tmp = getenv(name);
+ if (tmp == NULL) {
+ strncpy(data, tmp, size);
+ data[size - 1] = 0;
+ return (1);
+ } else
+ return (0);
+}
+
+/*
* Return an integer value from an environment variable.
*/
int
@@ -83,7 +103,7 @@ getenv_int(const char *name, int *data)
/*
* Return a quad_t value from an environment variable.
*/
-quad_t
+int
getenv_quad(const char *name, quad_t *data)
{
const char *value;
diff --git a/sys/sys/systm.h b/sys/sys/systm.h
index 7a43f0f..56b5958 100644
--- a/sys/sys/systm.h
+++ b/sys/sys/systm.h
@@ -192,7 +192,8 @@ int cr_cansee __P((struct ucred *u1, struct ucred *u2));
char *getenv __P((const char *name));
int getenv_int __P((const char *name, int *data));
-quad_t getenv_quad __P((const char *name, quad_t *data));
+int getenv_string __P((const char *name, char *data, int size));
+int getenv_quad __P((const char *name, quad_t *data));
#ifdef APM_FIXUP_CALLTODO
struct timeval;
OpenPOWER on IntegriCloud