Merge upstream changes as of April 29th
This commit is contained in:
commit
c7c750ecc2
267 changed files with 6019 additions and 1963 deletions
|
@ -43,4 +43,9 @@ void
|
|||
grub_arm_jump24_set_offset (grub_uint32_t *target,
|
||||
grub_int32_t offset);
|
||||
|
||||
grub_uint16_t
|
||||
grub_arm_thm_movw_movt_get_value (grub_uint16_t *target);
|
||||
void
|
||||
grub_arm_thm_movw_movt_set_value (grub_uint16_t *target, grub_uint16_t value);
|
||||
|
||||
#endif
|
||||
|
|
235
include/grub/compiler-rt-emu.h
Normal file
235
include/grub/compiler-rt-emu.h
Normal file
|
@ -0,0 +1,235 @@
|
|||
/* compiler-rt-emu.h - prototypes for compiler helpers. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2010-2014 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef GRUB_COMPILER_RT_HEADER
|
||||
#define GRUB_COMPILER_RT_HEADER 1
|
||||
|
||||
#include <config-util.h>
|
||||
#include <grub/types.h>
|
||||
#include <grub/symbol.h>
|
||||
|
||||
#ifdef HAVE___UDIVSI3
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__udivsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___UMODSI3
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__umodsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___DIVSI3
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__divsi3) (grub_int32_t a, grub_int32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___MODSI3
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__modsi3) (grub_int32_t a, grub_int32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___DIVDI3
|
||||
grub_int64_t
|
||||
EXPORT_FUNC (__divdi3) (grub_int64_t a, grub_int64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___MODDI3
|
||||
grub_int64_t
|
||||
EXPORT_FUNC (__moddi3) (grub_int64_t a, grub_int64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___UDIVDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__udivdi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___UMODDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__umoddi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___CTZDI2
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzdi2) (grub_uint64_t x);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___CTZSI2
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzsi2) (grub_uint32_t x);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_UIDIV
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidiv) (grub_uint32_t a, grub_uint32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_UIDIVMOD
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidivmod) (grub_uint32_t a, grub_uint32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_IDIV
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__aeabi_idiv) (grub_int32_t a, grub_int32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_IDIVMOD
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__aeabi_idivmod) (grub_int32_t a, grub_int32_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_ULCMP
|
||||
int
|
||||
EXPORT_FUNC (__aeabi_ulcmp) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
/* Needed for allowing modules to be compiled as thumb. */
|
||||
#ifdef HAVE___MULDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__muldi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_LMUL
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_lmul) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_MEMCPY
|
||||
void *
|
||||
EXPORT_FUNC (__aeabi_memcpy) (void *dest, const void *src, grub_size_t n);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_MEMSET
|
||||
void *
|
||||
EXPORT_FUNC(__aeabi_memset) (void *s, int c, grub_size_t n);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_LASR
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_lasr) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_LLSL
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_llsl) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___AEABI_LLSR
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_llsr) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE__RESTGPR_14_X
|
||||
|
||||
void EXPORT_FUNC (_restgpr_14_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_15_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_16_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_17_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_18_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_19_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_20_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_21_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_22_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_23_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_24_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_25_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_26_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_27_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_28_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_29_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_30_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_31_x) (void);
|
||||
void EXPORT_FUNC (_savegpr_14) (void);
|
||||
void EXPORT_FUNC (_savegpr_15) (void);
|
||||
void EXPORT_FUNC (_savegpr_16) (void);
|
||||
void EXPORT_FUNC (_savegpr_17) (void);
|
||||
void EXPORT_FUNC (_savegpr_18) (void);
|
||||
void EXPORT_FUNC (_savegpr_19) (void);
|
||||
void EXPORT_FUNC (_savegpr_20) (void);
|
||||
void EXPORT_FUNC (_savegpr_21) (void);
|
||||
void EXPORT_FUNC (_savegpr_22) (void);
|
||||
void EXPORT_FUNC (_savegpr_23) (void);
|
||||
void EXPORT_FUNC (_savegpr_24) (void);
|
||||
void EXPORT_FUNC (_savegpr_25) (void);
|
||||
void EXPORT_FUNC (_savegpr_26) (void);
|
||||
void EXPORT_FUNC (_savegpr_27) (void);
|
||||
void EXPORT_FUNC (_savegpr_28) (void);
|
||||
void EXPORT_FUNC (_savegpr_29) (void);
|
||||
void EXPORT_FUNC (_savegpr_30) (void);
|
||||
void EXPORT_FUNC (_savegpr_31) (void);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___UCMPDI2
|
||||
int
|
||||
EXPORT_FUNC(__ucmpdi2) (grub_uint64_t a, grub_uint64_t b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___ASHLDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__ashldi3) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___ASHRDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__ashrdi3) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___LSHRDI3
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__lshrdi3) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___BSWAPSI2
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC(__bswapsi2) (grub_uint32_t u);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___BSWAPDI2
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__bswapdi2) (grub_uint64_t u);
|
||||
#endif
|
||||
|
||||
int EXPORT_FUNC(memcmp) (const void *s1, const void *s2, grub_size_t n);
|
||||
void *EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
|
||||
void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
|
||||
void *EXPORT_FUNC(memset) (void *s, int c, grub_size_t n);
|
||||
|
||||
#ifdef HAVE___BZERO
|
||||
void EXPORT_FUNC (__bzero) (void *s, grub_size_t n);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___REGISTER_FRAME_INFO
|
||||
void EXPORT_FUNC (__register_frame_info) (void);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___DEREGISTER_FRAME_INFO
|
||||
void EXPORT_FUNC (__deregister_frame_info) (void);
|
||||
#endif
|
||||
#ifdef HAVE____CHKSTK_MS
|
||||
void EXPORT_FUNC (___chkstk_ms) (void);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE___CHKSTK_MS
|
||||
void EXPORT_FUNC (__chkstk_ms) (void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
193
include/grub/compiler-rt.h
Normal file
193
include/grub/compiler-rt.h
Normal file
|
@ -0,0 +1,193 @@
|
|||
/* compiler-rt.h - prototypes for compiler helpers. */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2010-2014 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef GRUB_COMPILER_RT_HEADER
|
||||
#define GRUB_COMPILER_RT_HEADER 1
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <grub/types.h>
|
||||
#include <grub/symbol.h>
|
||||
#include <grub/misc.h>
|
||||
|
||||
#if defined(GRUB_DIVISION_IN_SOFTWARE) && GRUB_DIVISION_IN_SOFTWARE
|
||||
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__udivsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__umodsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__divsi3) (grub_int32_t a, grub_int32_t b);
|
||||
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__modsi3) (grub_int32_t a, grub_int32_t b);
|
||||
|
||||
grub_int64_t
|
||||
EXPORT_FUNC (__divdi3) (grub_int64_t a, grub_int64_t b);
|
||||
|
||||
grub_int64_t
|
||||
EXPORT_FUNC (__moddi3) (grub_int64_t a, grub_int64_t b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__udivdi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__umoddi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (__sparc__) || defined (__powerpc__) || defined (__mips__) || defined (__arm__)
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzdi2) (grub_uint64_t x);
|
||||
#define NEED_CTZDI2 1
|
||||
#endif
|
||||
|
||||
#if defined (__mips__) || defined (__arm__)
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzsi2) (grub_uint32_t x);
|
||||
#define NEED_CTZSI2 1
|
||||
#endif
|
||||
|
||||
#ifdef __arm__
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidiv) (grub_uint32_t a, grub_uint32_t b);
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidivmod) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__aeabi_idiv) (grub_int32_t a, grub_int32_t b);
|
||||
grub_int32_t
|
||||
EXPORT_FUNC (__aeabi_idivmod) (grub_int32_t a, grub_int32_t b);
|
||||
|
||||
int
|
||||
EXPORT_FUNC (__aeabi_ulcmp) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
/* Needed for allowing modules to be compiled as thumb. */
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__muldi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_lmul) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
void *
|
||||
EXPORT_FUNC (__aeabi_memcpy) (void *dest, const void *src, grub_size_t n);
|
||||
void *
|
||||
EXPORT_FUNC(__aeabi_memset) (void *s, int c, grub_size_t n);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_lasr) (grub_uint64_t u, int b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_llsl) (grub_uint64_t u, int b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_llsr) (grub_uint64_t u, int b);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if defined (__powerpc__)
|
||||
|
||||
void EXPORT_FUNC (_restgpr_14_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_15_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_16_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_17_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_18_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_19_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_20_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_21_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_22_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_23_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_24_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_25_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_26_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_27_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_28_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_29_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_30_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_31_x) (void);
|
||||
void EXPORT_FUNC (_savegpr_14) (void);
|
||||
void EXPORT_FUNC (_savegpr_15) (void);
|
||||
void EXPORT_FUNC (_savegpr_16) (void);
|
||||
void EXPORT_FUNC (_savegpr_17) (void);
|
||||
void EXPORT_FUNC (_savegpr_18) (void);
|
||||
void EXPORT_FUNC (_savegpr_19) (void);
|
||||
void EXPORT_FUNC (_savegpr_20) (void);
|
||||
void EXPORT_FUNC (_savegpr_21) (void);
|
||||
void EXPORT_FUNC (_savegpr_22) (void);
|
||||
void EXPORT_FUNC (_savegpr_23) (void);
|
||||
void EXPORT_FUNC (_savegpr_24) (void);
|
||||
void EXPORT_FUNC (_savegpr_25) (void);
|
||||
void EXPORT_FUNC (_savegpr_26) (void);
|
||||
void EXPORT_FUNC (_savegpr_27) (void);
|
||||
void EXPORT_FUNC (_savegpr_28) (void);
|
||||
void EXPORT_FUNC (_savegpr_29) (void);
|
||||
void EXPORT_FUNC (_savegpr_30) (void);
|
||||
void EXPORT_FUNC (_savegpr_31) (void);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (__powerpc__) || defined(__mips__) || defined (__arm__)
|
||||
|
||||
int
|
||||
EXPORT_FUNC(__ucmpdi2) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__ashldi3) (grub_uint64_t u, int b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__ashrdi3) (grub_uint64_t u, int b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__lshrdi3) (grub_uint64_t u, int b);
|
||||
#endif
|
||||
|
||||
#if defined (__powerpc__) || defined(__mips__) || defined(__sparc__) || defined (__arm__)
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC(__bswapsi2) (grub_uint32_t u);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC(__bswapdi2) (grub_uint64_t u);
|
||||
#endif
|
||||
|
||||
#if defined (__APPLE__) && defined(__i386__)
|
||||
#define GRUB_BUILTIN_ATTR __attribute__ ((regparm(0)))
|
||||
#else
|
||||
#define GRUB_BUILTIN_ATTR
|
||||
#endif
|
||||
|
||||
/* Prototypes for aliases. */
|
||||
int GRUB_BUILTIN_ATTR EXPORT_FUNC(memcmp) (const void *s1, const void *s2, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memset) (void *s, int c, grub_size_t n);
|
||||
|
||||
#ifdef __APPLE__
|
||||
void GRUB_BUILTIN_ATTR EXPORT_FUNC (__bzero) (void *s, grub_size_t n);
|
||||
#endif
|
||||
|
||||
#if defined (__MINGW32__) || defined (__CYGWIN__)
|
||||
void EXPORT_FUNC (__register_frame_info) (void);
|
||||
void EXPORT_FUNC (__deregister_frame_info) (void);
|
||||
void EXPORT_FUNC (___chkstk_ms) (void);
|
||||
void EXPORT_FUNC (__chkstk_ms) (void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -27,6 +27,7 @@
|
|||
#include <grub/symbol.h>
|
||||
#include <grub/types.h>
|
||||
#include <grub/misc.h>
|
||||
#include <grub/util/misc.h>
|
||||
|
||||
extern int verbosity;
|
||||
extern const char *program_name;
|
||||
|
@ -61,8 +62,6 @@ void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format
|
|||
|
||||
grub_uint64_t EXPORT_FUNC (grub_util_get_cpu_time_ms) (void);
|
||||
|
||||
extern char * canonicalize_file_name (const char *path);
|
||||
|
||||
#ifdef HAVE_DEVICE_MAPPER
|
||||
int grub_device_mapper_supported (void);
|
||||
#endif
|
||||
|
|
|
@ -171,7 +171,7 @@ struct grub_hfsplus_catkey
|
|||
grub_uint16_t keylen;
|
||||
grub_uint32_t parent;
|
||||
grub_uint16_t namelen;
|
||||
grub_uint16_t name[30];
|
||||
grub_uint16_t name[0];
|
||||
} GRUB_PACKED;
|
||||
|
||||
/* The on disk layout of an extent overflow file key. */
|
||||
|
@ -207,12 +207,14 @@ struct grub_hfsplus_btnode
|
|||
|
||||
/* Return the offset of the record with the index INDEX, in the node
|
||||
NODE which is part of the B+ tree BTREE. */
|
||||
static inline grub_off_t
|
||||
static inline grub_uint16_t
|
||||
grub_hfsplus_btree_recoffset (struct grub_hfsplus_btree *btree,
|
||||
struct grub_hfsplus_btnode *node, int index)
|
||||
struct grub_hfsplus_btnode *node, unsigned index)
|
||||
{
|
||||
char *cnode = (char *) node;
|
||||
void *recptr;
|
||||
if (btree->nodesize < index * sizeof (grub_uint16_t) + 2)
|
||||
index = 0;
|
||||
recptr = (&cnode[btree->nodesize - index * sizeof (grub_uint16_t) - 2]);
|
||||
return grub_be_to_cpu16 (grub_get_unaligned16 (recptr));
|
||||
}
|
||||
|
@ -221,11 +223,13 @@ grub_hfsplus_btree_recoffset (struct grub_hfsplus_btree *btree,
|
|||
NODE which is part of the B+ tree BTREE. */
|
||||
static inline struct grub_hfsplus_key *
|
||||
grub_hfsplus_btree_recptr (struct grub_hfsplus_btree *btree,
|
||||
struct grub_hfsplus_btnode *node, int index)
|
||||
struct grub_hfsplus_btnode *node, unsigned index)
|
||||
{
|
||||
char *cnode = (char *) node;
|
||||
grub_off_t offset;
|
||||
grub_uint16_t offset;
|
||||
offset = grub_hfsplus_btree_recoffset (btree, node, index);
|
||||
if (offset > btree->nodesize - sizeof (struct grub_hfsplus_key))
|
||||
offset = 0;
|
||||
return (struct grub_hfsplus_key *) &cnode[offset];
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,4 @@
|
|||
extern void grub_ofdisk_init (void);
|
||||
extern void grub_ofdisk_fini (void);
|
||||
|
||||
extern grub_err_t grub_ofdisk_get_block_size (const char *device,
|
||||
grub_uint32_t *block_size);
|
||||
|
||||
#endif /* ! GRUB_INIT_HEADER */
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2004,2007,2009 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* We need to include config-util.h.in for HAVE_*. */
|
||||
#ifndef __STDC_VERSION__
|
||||
#define __STDC_VERSION__ 0
|
||||
#endif
|
||||
#include <config-util.h>
|
||||
|
||||
/* On x86 these functions aren't really needed. Save some space. */
|
||||
#if !defined (__i386__) && !defined (__x86_64__)
|
||||
# ifdef HAVE___ASHLDI3
|
||||
void EXPORT_FUNC (__ashldi3) (void);
|
||||
# endif
|
||||
# ifdef HAVE___ASHRDI3
|
||||
void EXPORT_FUNC (__ashrdi3) (void);
|
||||
# endif
|
||||
# ifdef HAVE___LSHRDI3
|
||||
void EXPORT_FUNC (__lshrdi3) (void);
|
||||
# endif
|
||||
# ifdef HAVE___UCMPDI2
|
||||
void EXPORT_FUNC (__ucmpdi2) (void);
|
||||
# endif
|
||||
# ifdef HAVE___BSWAPSI2
|
||||
void EXPORT_FUNC (__bswapsi2) (void);
|
||||
# endif
|
||||
# ifdef HAVE___BSWAPDI2
|
||||
void EXPORT_FUNC (__bswapdi2) (void);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE__RESTGPR_14_X
|
||||
void EXPORT_FUNC (_restgpr_14_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_15_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_16_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_17_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_18_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_19_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_20_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_21_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_22_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_23_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_24_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_25_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_26_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_27_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_28_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_29_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_30_x) (void);
|
||||
void EXPORT_FUNC (_restgpr_31_x) (void);
|
||||
void EXPORT_FUNC (_savegpr_14) (void);
|
||||
void EXPORT_FUNC (_savegpr_15) (void);
|
||||
void EXPORT_FUNC (_savegpr_16) (void);
|
||||
void EXPORT_FUNC (_savegpr_17) (void);
|
||||
void EXPORT_FUNC (_savegpr_18) (void);
|
||||
void EXPORT_FUNC (_savegpr_19) (void);
|
||||
void EXPORT_FUNC (_savegpr_20) (void);
|
||||
void EXPORT_FUNC (_savegpr_21) (void);
|
||||
void EXPORT_FUNC (_savegpr_22) (void);
|
||||
void EXPORT_FUNC (_savegpr_23) (void);
|
||||
void EXPORT_FUNC (_savegpr_24) (void);
|
||||
void EXPORT_FUNC (_savegpr_25) (void);
|
||||
void EXPORT_FUNC (_savegpr_26) (void);
|
||||
void EXPORT_FUNC (_savegpr_27) (void);
|
||||
void EXPORT_FUNC (_savegpr_28) (void);
|
||||
void EXPORT_FUNC (_savegpr_29) (void);
|
||||
void EXPORT_FUNC (_savegpr_30) (void);
|
||||
void EXPORT_FUNC (_savegpr_31) (void);
|
||||
#endif
|
||||
|
||||
#if defined (__arm__)
|
||||
void EXPORT_FUNC (__aeabi_lasr) (void);
|
||||
void EXPORT_FUNC (__aeabi_llsl) (void);
|
||||
void EXPORT_FUNC (__aeabi_llsr) (void);
|
||||
void EXPORT_FUNC (__aeabi_ulcmp) (void);
|
||||
#endif
|
|
@ -1,29 +0,0 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
void EXPORT_FUNC (usb_bulk_write) (void);
|
||||
void EXPORT_FUNC (usb_find_busses) (void);
|
||||
void EXPORT_FUNC (usb_init) (void);
|
||||
void EXPORT_FUNC (usb_find_devices) (void);
|
||||
void EXPORT_FUNC (usb_open) (void);
|
||||
void EXPORT_FUNC (usb_get_busses) (void);
|
||||
void EXPORT_FUNC (usb_control_msg) (void);
|
||||
void EXPORT_FUNC (usb_release_interface) (void);
|
||||
void EXPORT_FUNC (usb_close) (void);
|
||||
void EXPORT_FUNC (usb_bulk_read) (void);
|
||||
void EXPORT_FUNC (usb_claim_interface) (void);
|
|
@ -21,4 +21,8 @@
|
|||
|
||||
#include <grub/symbol.h>
|
||||
|
||||
#ifdef ASM_FILE
|
||||
#define mips_attributes .gnu_attribute 4, 3
|
||||
#endif
|
||||
|
||||
#endif /* ! GRUB_KERNEL_MACHINE_HEADER */
|
||||
|
|
|
@ -71,12 +71,6 @@ grub_memcpy (void *dest, const void *src, grub_size_t n)
|
|||
return grub_memmove (dest, src, n);
|
||||
}
|
||||
|
||||
#if defined (__APPLE__) && defined(__i386__) && !defined (GRUB_UTIL)
|
||||
#define GRUB_BUILTIN_ATTR __attribute__ ((regparm(0)))
|
||||
#else
|
||||
#define GRUB_BUILTIN_ATTR
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) && !defined (GRUB_UTIL)
|
||||
#if defined (__MINGW32__) || defined (__CYGWIN__) || defined (__MINGW64__)
|
||||
#define GRUB_ASM_ATTR __attribute__ ((sysv_abi))
|
||||
|
@ -85,19 +79,6 @@ grub_memcpy (void *dest, const void *src, grub_size_t n)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
/* Prototypes for aliases. */
|
||||
#ifndef GRUB_UTIL
|
||||
int GRUB_BUILTIN_ATTR EXPORT_FUNC(memcmp) (const void *s1, const void *s2, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
|
||||
void *GRUB_BUILTIN_ATTR EXPORT_FUNC(memset) (void *s, int c, grub_size_t n);
|
||||
|
||||
#ifdef __APPLE__
|
||||
void GRUB_BUILTIN_ATTR EXPORT_FUNC (__bzero) (void *s, grub_size_t n);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t n);
|
||||
int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);
|
||||
int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n);
|
||||
|
@ -358,13 +339,37 @@ grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n,
|
|||
grub_uint64_t d,
|
||||
grub_uint64_t *r);
|
||||
|
||||
#if (defined (__MINGW32__) || defined (__CYGWIN__)) && !defined(GRUB_UTIL)
|
||||
void EXPORT_FUNC (__register_frame_info) (void);
|
||||
void EXPORT_FUNC (__deregister_frame_info) (void);
|
||||
void EXPORT_FUNC (___chkstk_ms) (void);
|
||||
void EXPORT_FUNC (__chkstk_ms) (void);
|
||||
/* Must match softdiv group in gentpl.py. */
|
||||
#if !defined(GRUB_MACHINE_EMU) && (defined(__arm__) || defined(__ia64__))
|
||||
#define GRUB_DIVISION_IN_SOFTWARE 1
|
||||
#else
|
||||
#define GRUB_DIVISION_IN_SOFTWARE 0
|
||||
#endif
|
||||
|
||||
/* Some division functions need to be in kernel if compiler generates calls
|
||||
to them. Otherwise we still need them for consistent tests but they go
|
||||
into a separate module. */
|
||||
#if GRUB_DIVISION_IN_SOFTWARE
|
||||
#define EXPORT_FUNC_IF_SOFTDIV EXPORT_FUNC
|
||||
#else
|
||||
#define EXPORT_FUNC_IF_SOFTDIV(x) x
|
||||
#endif
|
||||
|
||||
grub_int64_t
|
||||
EXPORT_FUNC_IF_SOFTDIV(grub_divmod64s) (grub_int64_t n,
|
||||
grub_int64_t d,
|
||||
grub_int64_t *r);
|
||||
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC_IF_SOFTDIV (grub_divmod32) (grub_uint32_t n,
|
||||
grub_uint32_t d,
|
||||
grub_uint32_t *r);
|
||||
|
||||
grub_int32_t
|
||||
EXPORT_FUNC_IF_SOFTDIV (grub_divmod32s) (grub_int32_t n,
|
||||
grub_int32_t d,
|
||||
grub_int32_t *r);
|
||||
|
||||
/* Inline functions. */
|
||||
|
||||
static inline char *
|
||||
|
@ -390,13 +395,6 @@ grub_abs (int x)
|
|||
return (unsigned int) x;
|
||||
}
|
||||
|
||||
/* Rounded-up division */
|
||||
static inline unsigned int
|
||||
grub_div_roundup (unsigned int x, unsigned int y)
|
||||
{
|
||||
return (x + y - 1) / y;
|
||||
}
|
||||
|
||||
/* Reboot the machine. */
|
||||
#if defined (GRUB_MACHINE_EMU) || defined (GRUB_MACHINE_QEMU_MIPS)
|
||||
void EXPORT_FUNC(grub_reboot) (void) __attribute__ ((noreturn));
|
||||
|
@ -440,57 +438,6 @@ grub_error_load (const struct grub_error_saved *save)
|
|||
grub_errno = save->grub_errno;
|
||||
}
|
||||
|
||||
#ifndef GRUB_UTIL
|
||||
|
||||
#if defined (__arm__)
|
||||
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__udivsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__umodsi3) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (__sparc__) || defined (__powerpc__)
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzdi2) (grub_uint64_t x);
|
||||
#define NEED_CTZDI2 1
|
||||
#endif
|
||||
|
||||
#if defined (__mips__) || defined (__arm__)
|
||||
unsigned
|
||||
EXPORT_FUNC (__ctzsi2) (grub_uint32_t x);
|
||||
#define NEED_CTZSI2 1
|
||||
#endif
|
||||
|
||||
#ifdef __arm__
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidiv) (grub_uint32_t a, grub_uint32_t b);
|
||||
grub_uint32_t
|
||||
EXPORT_FUNC (__aeabi_uidivmod) (grub_uint32_t a, grub_uint32_t b);
|
||||
|
||||
/* Needed for allowing modules to be compiled as thumb. */
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__muldi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__aeabi_lmul) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined (__ia64__)
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__udivdi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
grub_uint64_t
|
||||
EXPORT_FUNC (__umoddi3) (grub_uint64_t a, grub_uint64_t b);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* GRUB_UTIL */
|
||||
|
||||
|
||||
#if BOOT_TIME_STATS
|
||||
struct grub_boot_time
|
||||
{
|
||||
|
|
|
@ -92,4 +92,6 @@ grub_err_t
|
|||
grub_net_icmp6_send_request (struct grub_net_network_level_interface *inf,
|
||||
const grub_net_network_level_address_t *proto_addr);
|
||||
|
||||
grub_err_t
|
||||
grub_net_icmp6_send_router_solicit (struct grub_net_network_level_interface *inf);
|
||||
#endif
|
||||
|
|
|
@ -25,6 +25,7 @@ grub_err_t grub_netbuff_pull (struct grub_net_buff *net_buff, grub_size_t len);
|
|||
grub_err_t grub_netbuff_reserve (struct grub_net_buff *net_buff, grub_size_t len);
|
||||
grub_err_t grub_netbuff_clear (struct grub_net_buff *net_buff);
|
||||
struct grub_net_buff * grub_netbuff_alloc (grub_size_t len);
|
||||
struct grub_net_buff * grub_netbuff_make_pkt (grub_size_t len);
|
||||
void grub_netbuff_free (struct grub_net_buff *net_buff);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -334,12 +334,12 @@ void grub_term_restore_pos (struct grub_term_coordinate *pos);
|
|||
|
||||
static inline unsigned grub_term_width (struct grub_term_output *term)
|
||||
{
|
||||
return term->getwh(term).x;
|
||||
return term->getwh(term).x ? : 80;
|
||||
}
|
||||
|
||||
static inline unsigned grub_term_height (struct grub_term_output *term)
|
||||
{
|
||||
return term->getwh(term).y;
|
||||
return term->getwh(term).y ? : 24;
|
||||
}
|
||||
|
||||
static inline struct grub_term_coordinate
|
||||
|
|
|
@ -179,7 +179,7 @@ static inline grub_uint16_t grub_swap_bytes16(grub_uint16_t _x)
|
|||
| (_x >> 56)); \
|
||||
})
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC__ > 4 || __GNUC_MINOR__ >= 3)
|
||||
#if (defined(__GNUC__) && (__GNUC__ > 3) && (__GNUC__ > 4 || __GNUC_MINOR__ >= 3)) || defined(__clang__)
|
||||
static inline grub_uint32_t grub_swap_bytes32(grub_uint32_t x)
|
||||
{
|
||||
return __builtin_bswap32(x);
|
||||
|
|
|
@ -41,7 +41,7 @@ void grub_util_write_image_at (const void *img, size_t size, off_t offset,
|
|||
|
||||
char *make_system_path_relative_to_its_root (const char *path);
|
||||
|
||||
char *canonicalize_file_name (const char *path);
|
||||
char *grub_canonicalize_file_name (const char *path);
|
||||
|
||||
void grub_util_init_nls (void);
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#define __XEN_INTERFACE_VERSION__ 0x0003020a
|
||||
|
||||
#define memset grub_memset
|
||||
|
||||
#ifdef ASM_FILE
|
||||
#define __ASSEMBLY__
|
||||
#include <xen/xen.h>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue