From 23f2ef05b9d236b35285ca76006ed2ff67e4cb4c Mon Sep 17 00:00:00 2001 From: Matheus Date: Fri, 30 Dec 2022 03:28:06 -0300 Subject: [PATCH] kernel: env support --- src/include/kernel/env.h | 11 +++++++++++ src/sys/env.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/include/kernel/env.h create mode 100644 src/sys/env.c diff --git a/src/include/kernel/env.h b/src/include/kernel/env.h new file mode 100644 index 00000000..ca2d5830 --- /dev/null +++ b/src/include/kernel/env.h @@ -0,0 +1,11 @@ +#ifndef _ENV_H_INCLUDE +#define _ENV_H_INCLUDE + +#include + +int env_set(const char*, const char*); +char* env_get(const char*); +bool env_isset(const char*); +void env_init(); + +#endif diff --git a/src/sys/env.c b/src/sys/env.c new file mode 100644 index 00000000..08753cbf --- /dev/null +++ b/src/sys/env.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +static hashtable envtable; + +int env_set(const char* name, const char* value){ + + if(!hashtable_set(&envtable, name, value)) + if(!hashtable_insert(&envtable, name, value)) + return ENOMEM; + + return 0; + +} + +char* env_get(const char* name){ + return hashtable_get(&envtable, name); + +} + +bool env_isset(const char* name){ + return hashtable_isset(&envtable, name); +} + +void env_init(){ + if(!hashtable_init(&envtable, 50)) + _panic("Out of memory!\n", NULL); +}