- add platform.h.
- use shorter boilerplate while at it.
This commit is contained in:
@@ -2,24 +2,7 @@
|
||||
/*
|
||||
* Busybox main internal header file
|
||||
*
|
||||
*
|
||||
* 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; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Based in part on code from sash, Copyright (c) 1999 by David I. Bell
|
||||
* Permission has been granted to redistribute this code under the GPL.
|
||||
*
|
||||
* Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
|
||||
*/
|
||||
#ifndef _BB_INTERNAL_H_
|
||||
#define _BB_INTERNAL_H_ 1
|
||||
@@ -66,8 +49,8 @@ enum SUIDRoot {
|
||||
struct BB_applet {
|
||||
const char *name;
|
||||
int (*main) (int argc, char **argv);
|
||||
enum Location location:4;
|
||||
enum SUIDRoot need_suid:4;
|
||||
__extension__ enum Location location:4;
|
||||
__extension__ enum SUIDRoot need_suid:4;
|
||||
};
|
||||
|
||||
/* From busybox.c */
|
||||
|
||||
@@ -2,27 +2,14 @@
|
||||
/*
|
||||
* Busybox main internal header file
|
||||
*
|
||||
*
|
||||
* 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; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
|
||||
*
|
||||
* Based in part on code from sash, Copyright (c) 1999 by David I. Bell
|
||||
* Permission has been granted to redistribute this code under the GPL.
|
||||
*
|
||||
*/
|
||||
#ifndef __LIBCONFIG_H__
|
||||
#define __LIBCONFIG_H__ 1
|
||||
#ifndef __LIBBUSYBOX_H__
|
||||
#define __LIBBUSYBOX_H__ 1
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -36,6 +23,7 @@
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#include "platform.h"
|
||||
#include "bb_config.h"
|
||||
#ifdef CONFIG_SELINUX
|
||||
#include <selinux/selinux.h>
|
||||
@@ -50,21 +38,6 @@
|
||||
# include "sha1.h"
|
||||
#endif
|
||||
|
||||
/* Convenience macros to test the version of gcc. */
|
||||
#if defined __GNUC__ && defined __GNUC_MINOR__
|
||||
# define __GNUC_PREREQ(maj, min) \
|
||||
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
||||
#else
|
||||
# define __GNUC_PREREQ(maj, min) 0
|
||||
#endif
|
||||
|
||||
/* __restrict is known in EGCS 1.2 and above. */
|
||||
#if !__GNUC_PREREQ (2,92)
|
||||
# define __restrict /* Ignore */
|
||||
#endif
|
||||
|
||||
#define attribute_noreturn __attribute__ ((__noreturn__))
|
||||
|
||||
/* Some useful definitions */
|
||||
#define FALSE ((int) 0)
|
||||
#define TRUE ((int) 1)
|
||||
@@ -86,7 +59,7 @@
|
||||
#define MAX(a,b) (((a)>(b))?(a):(b))
|
||||
#endif
|
||||
|
||||
extern void bb_show_usage(void) __attribute__ ((noreturn, externally_visible));
|
||||
extern void bb_show_usage(void) ATTRIBUTE_NORETURN ATTRIBUTE_EXTERNALLY_VISIBLE;
|
||||
extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
|
||||
extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
|
||||
extern void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
|
||||
@@ -95,7 +68,7 @@ extern void bb_vherror_msg(const char *s, va_list p);
|
||||
extern void bb_herror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
|
||||
extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
|
||||
|
||||
extern void bb_perror_nomsg_and_die(void) __attribute__ ((noreturn));
|
||||
extern void bb_perror_nomsg_and_die(void) ATTRIBUTE_NORETURN;
|
||||
extern void bb_perror_nomsg(void);
|
||||
|
||||
/* These two are used internally -- you shouldn't need to use them */
|
||||
@@ -147,7 +120,7 @@ extern FILE *bb_wfopen_input(const char *filename);
|
||||
extern FILE *bb_xfopen(const char *path, const char *mode);
|
||||
|
||||
extern int bb_fclose_nonstdin(FILE *f);
|
||||
extern void bb_fflush_stdout_and_exit(int retval) __attribute__ ((noreturn));
|
||||
extern void bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN;
|
||||
|
||||
#define BB_GETOPT_ERROR 0x80000000UL
|
||||
extern const char *bb_opt_complementally;
|
||||
@@ -498,4 +471,4 @@ extern int hash_fd(int fd, const size_t size, const uint8_t hash_algo, uint8_t *
|
||||
#include <dmalloc.h>
|
||||
#endif
|
||||
|
||||
#endif /* __LIBCONFIG_H__ */
|
||||
#endif /* __LIBBUSYBOX_H__ */
|
||||
|
||||
82
include/platform.h
Normal file
82
include/platform.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
Copyright 2006, Bernhard Fischer
|
||||
|
||||
Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
|
||||
*/
|
||||
#ifndef __PLATFORM_H
|
||||
#define __PLATFORM_H 1
|
||||
|
||||
/* Convenience macros to test the version of gcc. */
|
||||
#undef __GNUC_PREREQ
|
||||
#if defined __GNUC__ && defined __GNUC_MINOR__
|
||||
# define __GNUC_PREREQ(maj, min) \
|
||||
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
|
||||
#else
|
||||
# define __GNUC_PREREQ(maj, min) 0
|
||||
#endif
|
||||
|
||||
/* __restrict is known in EGCS 1.2 and above. */
|
||||
#if !__GNUC_PREREQ (2,92)
|
||||
# ifndef __restrict
|
||||
# define __restrict /* Ignore */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define macros for some gcc attributes. This permits us to use the
|
||||
macros freely, and know that they will come into play for the
|
||||
version of gcc in which they are supported. */
|
||||
|
||||
#if !__GNUC_PREREQ (2,7)
|
||||
# ifndef __attribute__
|
||||
# define __attribute__(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
|
||||
#ifndef ATTRIBUTE_MALLOC
|
||||
# if __GNUC_PREREQ (2,96)
|
||||
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
# else
|
||||
# define ATTRIBUTE_MALLOC
|
||||
# endif /* GNUC >= 2.96 */
|
||||
#endif /* ATTRIBUTE_MALLOC */
|
||||
#endif
|
||||
|
||||
#ifndef ATTRIBUTE_UNUSED
|
||||
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
#endif /* ATTRIBUTE_UNUSED */
|
||||
|
||||
#ifndef ATTRIBUTE_NORETURN
|
||||
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
||||
#endif /* ATTRIBUTE_NORETURN */
|
||||
|
||||
#ifndef ATTRIBUTE_PACKED
|
||||
#define ATTRIBUTE_PACKED __attribute__ ((__packed__))
|
||||
#endif /* ATTRIBUTE_NORETURN */
|
||||
|
||||
/* -fwhole-program makes all symbols local. The attribute externally_visible
|
||||
forces a symbol global. */
|
||||
#ifndef ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
# if __GNUC_PREREQ (4,1)
|
||||
# define ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((__externally_visible__))
|
||||
# else
|
||||
# define ATTRIBUTE_EXTERNALLY_VISIBLE
|
||||
# endif /* GNUC >= 4.1 */
|
||||
#endif /* ATTRIBUTE_EXTERNALLY_VISIBLE */
|
||||
|
||||
/* We use __extension__ in some places to suppress -pedantic warnings
|
||||
about GCC extensions. This feature didn't work properly before
|
||||
gcc 2.8. */
|
||||
#if !__GNUC_PREREQ (2,8)
|
||||
# ifndef __extension__
|
||||
# define __extension__
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
/* include USAGE_APPLET_x helper macros for usage.h. */
|
||||
/*
|
||||
#include "_usage.h"
|
||||
*/
|
||||
#endif /* platform.h */
|
||||
Reference in New Issue
Block a user