diff options
Diffstat (limited to 'core/path.c')
-rw-r--r-- | core/path.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/core/path.c b/core/path.c new file mode 100644 index 00000000..8e517ca7 --- /dev/null +++ b/core/path.c @@ -0,0 +1,42 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2013 Intel Corporation; author: Matt Fleming + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston MA 02110-1301, USA; either version 2 of the License, or + * (at your option) any later version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +#include <klibc/compiler.h> +#include <linux/list.h> +#include <fs.h> +#include <string.h> + +__export LIST_HEAD(PATH); + +__export struct path_entry *path_add(const char *str) +{ + struct path_entry *entry; + + if (!strlen(str)) + return NULL; + + entry = malloc(sizeof(*entry)); + if (!entry) + return NULL; + + entry->str = strdup(str); + if (!entry->str) + goto bail; + + list_add(&entry->list, &PATH); + + return entry; + +bail: + free(entry); + return NULL; +} |