forked from mirrors/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
					
				
					 11 changed files with 93 additions and 91 deletions
				
			
		| 
						 | 
					@ -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 a new issue