mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#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 a new issue