2013-01-31 01:25:25 +04:00
|
|
|
/*++
|
|
|
|
|
|
|
|
Copyright (c) 1998 Intel Corporation
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
lib.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
EFI library header files
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Revision History
|
|
|
|
|
|
|
|
--*/
|
|
|
|
|
On x86_64, newish gcc will use relocation types R_X86_64_GOTPCREL,
R_X86_64_GOTPCREL64, R_X86_64_GOTPCRELX, and R_X86_64_REX_GOTPCRELX,
which our _relocate() does not support, for extern declarations visible
to things linking against a DSO. Since we're really just building a .a
here, and *nothing* needs to be exported in the .so sense, we don't need
any of that optimization at all, there's no point in making _relocate()
know how to handle these.
Instead, this patch simply removes the visibility from everything in the
.a, which gets us back to fairly normal relative relocations that wind
up being R_X86_64_RELATIVE in the final binary, which we can handle.
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
2017-04-07 20:16:58 +03:00
|
|
|
#ifdef __GNUC__
|
|
|
|
#pragma GCC visibility push(hidden)
|
|
|
|
#endif
|
2013-01-31 01:25:25 +04:00
|
|
|
|
|
|
|
#include "efi.h"
|
|
|
|
#include "efilib.h"
|
|
|
|
#include "efirtlib.h"
|
|
|
|
|
|
|
|
//
|
|
|
|
// Include non architectural protocols
|
|
|
|
//
|
2021-02-17 02:48:16 +03:00
|
|
|
#include "protocol/efivar.h"
|
|
|
|
#include "protocol/legacyboot.h"
|
|
|
|
#include "protocol/intload.h"
|
|
|
|
#include "protocol/vgaclass.h"
|
|
|
|
#include "protocol/eficonsplit.h"
|
|
|
|
#include "protocol/adapterdebug.h"
|
|
|
|
#include "protocol/intload.h"
|
2013-01-31 01:25:25 +04:00
|
|
|
|
|
|
|
#include "efigpt.h"
|
|
|
|
#include "libsmbios.h"
|
|
|
|
|
|
|
|
//
|
|
|
|
// Prototypes
|
|
|
|
//
|
|
|
|
|
|
|
|
VOID
|
|
|
|
InitializeGuid (
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
2013-02-21 19:44:23 +04:00
|
|
|
INTN EFIAPI
|
2013-01-31 01:25:25 +04:00
|
|
|
LibStubStriCmp (
|
|
|
|
IN EFI_UNICODE_COLLATION_INTERFACE *This,
|
|
|
|
IN CHAR16 *S1,
|
|
|
|
IN CHAR16 *S2
|
|
|
|
);
|
|
|
|
|
2013-02-21 19:44:23 +04:00
|
|
|
BOOLEAN EFIAPI
|
2013-01-31 01:25:25 +04:00
|
|
|
LibStubMetaiMatch (
|
|
|
|
IN EFI_UNICODE_COLLATION_INTERFACE *This,
|
|
|
|
IN CHAR16 *String,
|
|
|
|
IN CHAR16 *Pattern
|
|
|
|
);
|
|
|
|
|
2013-02-21 19:44:23 +04:00
|
|
|
VOID EFIAPI
|
2013-01-31 01:25:25 +04:00
|
|
|
LibStubStrLwrUpr (
|
|
|
|
IN EFI_UNICODE_COLLATION_INTERFACE *This,
|
|
|
|
IN CHAR16 *Str
|
|
|
|
);
|
|
|
|
|
|
|
|
BOOLEAN
|
|
|
|
LibMatchDevicePaths (
|
|
|
|
IN EFI_DEVICE_PATH *Multi,
|
|
|
|
IN EFI_DEVICE_PATH *Single
|
|
|
|
);
|
|
|
|
|
|
|
|
EFI_DEVICE_PATH *
|
|
|
|
LibDuplicateDevicePathInstance (
|
|
|
|
IN EFI_DEVICE_PATH *DevPath
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// Globals
|
|
|
|
//
|
|
|
|
extern BOOLEAN LibInitialized;
|
|
|
|
extern BOOLEAN LibFwInstance;
|
2017-02-18 00:30:28 +03:00
|
|
|
extern EFI_HANDLE LibImageHandle;
|
2013-01-31 01:25:25 +04:00
|
|
|
extern SIMPLE_TEXT_OUTPUT_INTERFACE *LibRuntimeDebugOut;
|
|
|
|
extern EFI_UNICODE_COLLATION_INTERFACE *UnicodeInterface;
|
|
|
|
extern EFI_UNICODE_COLLATION_INTERFACE LibStubUnicodeInterface;
|
|
|
|
extern EFI_RAISE_TPL LibRuntimeRaiseTPL;
|
|
|
|
extern EFI_RESTORE_TPL LibRuntimeRestoreTPL;
|