forked from Minki/linux
bootconfig: Cleanup dummy headers in tools/bootconfig
Cleanup dummy headers in tools/bootconfig/include except for tools/bootconfig/include/linux/bootconfig.h. For this change, I use __KERNEL__ macro to split kernel header #include and introduce xbc_alloc_mem() and xbc_free_mem(). Link: https://lkml.kernel.org/r/163187299574.2366983.18371329724128746091.stgit@devnote2 Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
4f292c4886
commit
4ee1b4cac2
@ -7,8 +7,18 @@
|
||||
* Author: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#else /* !__KERNEL__ */
|
||||
/*
|
||||
* NOTE: This is only for tools/bootconfig, because tools/bootconfig will
|
||||
* run the parser sanity test.
|
||||
* This does NOT mean linux/bootconfig.h is available in the user space.
|
||||
* However, if you change this file, please make sure the tools/bootconfig
|
||||
* has no issue on building and running.
|
||||
*/
|
||||
#endif
|
||||
|
||||
#define BOOTCONFIG_MAGIC "#BOOTCONFIG\n"
|
||||
#define BOOTCONFIG_MAGIC_LEN 12
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Masami Hiramatsu <mhiramat@kernel.org>
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/bootconfig.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/ctype.h>
|
||||
@ -11,6 +12,16 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/string.h>
|
||||
#else /* !__KERNEL__ */
|
||||
/*
|
||||
* NOTE: This is only for tools/bootconfig, because tools/bootconfig will
|
||||
* run the parser sanity test.
|
||||
* This does NOT mean lib/bootconfig.c is available in the user space.
|
||||
* However, if you change this file, please make sure the tools/bootconfig
|
||||
* has no issue on building and running.
|
||||
*/
|
||||
#include <linux/bootconfig.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Extra Boot Config (XBC) is given as tree-structured ascii text of
|
||||
@ -31,6 +42,29 @@ static int xbc_err_pos __initdata;
|
||||
static int open_brace[XBC_DEPTH_MAX] __initdata;
|
||||
static int brace_index __initdata;
|
||||
|
||||
#ifdef __KERNEL__
|
||||
static inline void *xbc_alloc_mem(size_t size)
|
||||
{
|
||||
return memblock_alloc(size, SMP_CACHE_BYTES);
|
||||
}
|
||||
|
||||
static inline void xbc_free_mem(void *addr, size_t size)
|
||||
{
|
||||
memblock_free_ptr(addr, size);
|
||||
}
|
||||
|
||||
#else /* !__KERNEL__ */
|
||||
|
||||
static inline void *xbc_alloc_mem(size_t size)
|
||||
{
|
||||
return malloc(size);
|
||||
}
|
||||
|
||||
static inline void xbc_free_mem(void *addr, size_t size)
|
||||
{
|
||||
free(addr);
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* xbc_get_info() - Get the information of loaded boot config
|
||||
* node_size: A pointer to store the number of nodes.
|
||||
@ -859,11 +893,11 @@ static int __init xbc_parse_tree(void)
|
||||
*/
|
||||
void __init xbc_exit(void)
|
||||
{
|
||||
memblock_free_ptr(xbc_data, xbc_data_size);
|
||||
xbc_free_mem(xbc_data, xbc_data_size);
|
||||
xbc_data = NULL;
|
||||
xbc_data_size = 0;
|
||||
xbc_node_num = 0;
|
||||
memblock_free_ptr(xbc_nodes, sizeof(struct xbc_node) * XBC_NODE_MAX);
|
||||
xbc_free_mem(xbc_nodes, sizeof(struct xbc_node) * XBC_NODE_MAX);
|
||||
xbc_nodes = NULL;
|
||||
brace_index = 0;
|
||||
}
|
||||
@ -902,7 +936,7 @@ int __init xbc_init(const char *data, size_t size, const char **emsg, int *epos)
|
||||
return -ERANGE;
|
||||
}
|
||||
|
||||
xbc_data = memblock_alloc(size + 1, SMP_CACHE_BYTES);
|
||||
xbc_data = xbc_alloc_mem(size + 1);
|
||||
if (!xbc_data) {
|
||||
if (emsg)
|
||||
*emsg = "Failed to allocate bootconfig data";
|
||||
@ -912,8 +946,7 @@ int __init xbc_init(const char *data, size_t size, const char **emsg, int *epos)
|
||||
xbc_data[size] = '\0';
|
||||
xbc_data_size = size + 1;
|
||||
|
||||
xbc_nodes = memblock_alloc(sizeof(struct xbc_node) * XBC_NODE_MAX,
|
||||
SMP_CACHE_BYTES);
|
||||
xbc_nodes = xbc_alloc_mem(sizeof(struct xbc_node) * XBC_NODE_MAX);
|
||||
if (!xbc_nodes) {
|
||||
if (emsg)
|
||||
*emsg = "Failed to allocate bootconfig nodes";
|
||||
|
@ -17,7 +17,7 @@ ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
|
||||
|
||||
all: $(ALL_PROGRAMS) test
|
||||
|
||||
$(OUTPUT)bootconfig: main.c $(LIBSRC)
|
||||
$(OUTPUT)bootconfig: main.c include/linux/bootconfig.h $(LIBSRC)
|
||||
$(CC) $(filter %.c,$^) $(CFLAGS) -o $@
|
||||
|
||||
test: $(ALL_PROGRAMS) test-bootconfig.sh
|
||||
|
@ -2,10 +2,53 @@
|
||||
#ifndef _BOOTCONFIG_LINUX_BOOTCONFIG_H
|
||||
#define _BOOTCONFIG_LINUX_BOOTCONFIG_H
|
||||
|
||||
#include "../../../../include/linux/bootconfig.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#ifndef fallthrough
|
||||
# define fallthrough
|
||||
#endif
|
||||
|
||||
#define WARN_ON(cond) \
|
||||
((cond) ? printf("Internal warning(%s:%d, %s): %s\n", \
|
||||
__FILE__, __LINE__, __func__, #cond) : 0)
|
||||
|
||||
#define unlikely(cond) (cond)
|
||||
|
||||
/* Copied from lib/string.c */
|
||||
static inline char *skip_spaces(const char *str)
|
||||
{
|
||||
while (isspace(*str))
|
||||
++str;
|
||||
return (char *)str;
|
||||
}
|
||||
|
||||
static inline char *strim(char *s)
|
||||
{
|
||||
size_t size;
|
||||
char *end;
|
||||
|
||||
size = strlen(s);
|
||||
if (!size)
|
||||
return s;
|
||||
|
||||
end = s + size - 1;
|
||||
while (end >= s && isspace(*end))
|
||||
end--;
|
||||
*(end + 1) = '\0';
|
||||
|
||||
return skip_spaces(s);
|
||||
}
|
||||
|
||||
#define __init
|
||||
#define __initdata
|
||||
|
||||
#include "../../../../include/linux/bootconfig.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,12 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _SKC_LINUX_BUG_H
|
||||
#define _SKC_LINUX_BUG_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define WARN_ON(cond) \
|
||||
((cond) ? printf("Internal warning(%s:%d, %s): %s\n", \
|
||||
__FILE__, __LINE__, __func__, #cond) : 0)
|
||||
|
||||
#endif
|
@ -1,7 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _SKC_LINUX_CTYPE_H
|
||||
#define _SKC_LINUX_CTYPE_H
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
#endif
|
@ -1,7 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _SKC_LINUX_ERRNO_H
|
||||
#define _SKC_LINUX_ERRNO_H
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
#endif
|
@ -1,14 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _SKC_LINUX_KERNEL_H
|
||||
#define _SKC_LINUX_KERNEL_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define unlikely(cond) (cond)
|
||||
|
||||
#define __init
|
||||
#define __initdata
|
||||
|
||||
#endif
|
@ -1,11 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _XBC_LINUX_MEMBLOCK_H
|
||||
#define _XBC_LINUX_MEMBLOCK_H
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SMP_CACHE_BYTES 0
|
||||
#define memblock_alloc(size, align) malloc(size)
|
||||
#define memblock_free_ptr(paddr, size) free(paddr)
|
||||
|
||||
#endif
|
@ -1,32 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _SKC_LINUX_STRING_H
|
||||
#define _SKC_LINUX_STRING_H
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* Copied from lib/string.c */
|
||||
static inline char *skip_spaces(const char *str)
|
||||
{
|
||||
while (isspace(*str))
|
||||
++str;
|
||||
return (char *)str;
|
||||
}
|
||||
|
||||
static inline char *strim(char *s)
|
||||
{
|
||||
size_t size;
|
||||
char *end;
|
||||
|
||||
size = strlen(s);
|
||||
if (!size)
|
||||
return s;
|
||||
|
||||
end = s + size - 1;
|
||||
while (end >= s && isspace(*end))
|
||||
end--;
|
||||
*(end + 1) = '\0';
|
||||
|
||||
return skip_spaces(s);
|
||||
}
|
||||
|
||||
#endif
|
@ -12,7 +12,6 @@
|
||||
#include <errno.h>
|
||||
#include <endian.h>
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/bootconfig.h>
|
||||
|
||||
#define pr_err(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
|
||||
|
Loading…
Reference in New Issue
Block a user