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>
|
* Author: Masami Hiramatsu <mhiramat@kernel.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef __KERNEL__
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/types.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 "#BOOTCONFIG\n"
|
||||||
#define BOOTCONFIG_MAGIC_LEN 12
|
#define BOOTCONFIG_MAGIC_LEN 12
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* Masami Hiramatsu <mhiramat@kernel.org>
|
* Masami Hiramatsu <mhiramat@kernel.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef __KERNEL__
|
||||||
#include <linux/bootconfig.h>
|
#include <linux/bootconfig.h>
|
||||||
#include <linux/bug.h>
|
#include <linux/bug.h>
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
|
@ -11,6 +12,16 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/memblock.h>
|
#include <linux/memblock.h>
|
||||||
#include <linux/string.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
|
* 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 open_brace[XBC_DEPTH_MAX] __initdata;
|
||||||
static int brace_index __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
|
* xbc_get_info() - Get the information of loaded boot config
|
||||||
* node_size: A pointer to store the number of nodes.
|
* 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)
|
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 = NULL;
|
||||||
xbc_data_size = 0;
|
xbc_data_size = 0;
|
||||||
xbc_node_num = 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;
|
xbc_nodes = NULL;
|
||||||
brace_index = 0;
|
brace_index = 0;
|
||||||
}
|
}
|
||||||
|
@ -902,7 +936,7 @@ int __init xbc_init(const char *data, size_t size, const char **emsg, int *epos)
|
||||||
return -ERANGE;
|
return -ERANGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
xbc_data = memblock_alloc(size + 1, SMP_CACHE_BYTES);
|
xbc_data = xbc_alloc_mem(size + 1);
|
||||||
if (!xbc_data) {
|
if (!xbc_data) {
|
||||||
if (emsg)
|
if (emsg)
|
||||||
*emsg = "Failed to allocate bootconfig data";
|
*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] = '\0';
|
||||||
xbc_data_size = size + 1;
|
xbc_data_size = size + 1;
|
||||||
|
|
||||||
xbc_nodes = memblock_alloc(sizeof(struct xbc_node) * XBC_NODE_MAX,
|
xbc_nodes = xbc_alloc_mem(sizeof(struct xbc_node) * XBC_NODE_MAX);
|
||||||
SMP_CACHE_BYTES);
|
|
||||||
if (!xbc_nodes) {
|
if (!xbc_nodes) {
|
||||||
if (emsg)
|
if (emsg)
|
||||||
*emsg = "Failed to allocate bootconfig nodes";
|
*emsg = "Failed to allocate bootconfig nodes";
|
||||||
|
|
|
@ -17,7 +17,7 @@ ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS))
|
||||||
|
|
||||||
all: $(ALL_PROGRAMS) test
|
all: $(ALL_PROGRAMS) test
|
||||||
|
|
||||||
$(OUTPUT)bootconfig: main.c $(LIBSRC)
|
$(OUTPUT)bootconfig: main.c include/linux/bootconfig.h $(LIBSRC)
|
||||||
$(CC) $(filter %.c,$^) $(CFLAGS) -o $@
|
$(CC) $(filter %.c,$^) $(CFLAGS) -o $@
|
||||||
|
|
||||||
test: $(ALL_PROGRAMS) test-bootconfig.sh
|
test: $(ALL_PROGRAMS) test-bootconfig.sh
|
||||||
|
|
|
@ -2,10 +2,53 @@
|
||||||
#ifndef _BOOTCONFIG_LINUX_BOOTCONFIG_H
|
#ifndef _BOOTCONFIG_LINUX_BOOTCONFIG_H
|
||||||
#define _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
|
#ifndef fallthrough
|
||||||
# define fallthrough
|
# define fallthrough
|
||||||
#endif
|
#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
|
#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 <errno.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/bootconfig.h>
|
#include <linux/bootconfig.h>
|
||||||
|
|
||||||
#define pr_err(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
|
#define pr_err(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
|
||||||
|
|
Loading…
Reference in New Issue