VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/DevEFI-binaries.S

Last change on this file was 106615, checked in by vboxsync, 6 weeks ago

EFI/DevEFI-binaries.S: Exporting the symbols on windows/arm64. jiraref:VBP-1171

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/* $Id: DevEFI-binaries.S 106615 2024-10-23 10:05:48Z vboxsync $ */
2/** @file
3 * DevEFI - firmware binaries.
4 */
5
6/*
7 * Copyright (C) 2011-2024 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28
29#ifdef RT_OS_DARWIN
30#define NAME(a_Name) _##a_Name
31#else
32#define NAME(a_Name) a_Name
33#endif
34
35#ifdef RT_OS_DARWIN
36.section __TEXT,__const
37#else
38.section .text
39#endif
40
41/* 32-bit firmware: */
42.p2align 6
43.globl NAME(g_abEfiFirmware32)
44NAME(g_abEfiFirmware32):
45 .incbin "VBoxEFI32.fd"
46end_32_firmware:
47
48.p2align 2
49.globl NAME(g_cbEfiFirmware32)
50NAME(g_cbEfiFirmware32):
51 .long end_32_firmware - NAME(g_abEfiFirmware32)
52
53
54/* 64-bit firmware: */
55.p2align 6
56.globl NAME(g_abEfiFirmware64)
57NAME(g_abEfiFirmware64):
58 .incbin "VBoxEFI64.fd"
59end_64_firmware:
60
61.p2align 2
62.globl NAME(g_cbEfiFirmware64)
63NAME(g_cbEfiFirmware64):
64 .long end_64_firmware - NAME(g_abEfiFirmware64)
65
66#ifdef ASM_FORMAT_ELF
67.size g_abEfiFirmware32, end_32_firmware - NAME(g_abEfiFirmware32)
68.type g_abEfiFirmware32 object
69.size g_cbEfiFirmware32, 4
70.type g_cbEfiFirmware32 object
71
72.size g_abEfiFirmware64, end_64_firmware - NAME(g_abEfiFirmware64)
73.type g_abEfiFirmware64 object
74.size g_cbEfiFirmware64, 4
75.type g_cbEfiFirmware64 object
76
77#elif defined(ASM_FORMAT_PE)
78/* Explit exportint: */
79.section .drectve
80.string "-export:g_abEfiFirmware32 -export:g_cbEfiFirmware32 -export:g_abEfiFirmware64 -export:g_cbEfiFirmware64"
81.section .text
82
83#endif
84
85#ifdef VBOX_WITH_VIRT_ARMV8
86/*
87 * The ARMv8 bits
88 */
89
90/* 32-bit firmware: */
91.p2align 6
92.globl NAME(g_abEfiFirmwareAArch32)
93NAME(g_abEfiFirmwareAArch32):
94 .incbin "VBoxEFIAArch32.fd"
95end_aarch32_firmware:
96
97.p2align 2
98.globl NAME(g_cbEfiFirmwareAArch32)
99NAME(g_cbEfiFirmwareAArch32):
100 .long end_aarch32_firmware - NAME(g_abEfiFirmwareAArch32)
101
102
103/* 64-bit firmware: */
104.p2align 6
105.globl NAME(g_abEfiFirmwareAArch64)
106NAME(g_abEfiFirmwareAArch64):
107 .incbin "VBoxEFIAArch64.fd"
108end_aarch64_firmware:
109
110.p2align 2
111.globl NAME(g_cbEfiFirmwareAArch64)
112NAME(g_cbEfiFirmwareAArch64):
113 .long end_aarch64_firmware - NAME(g_abEfiFirmwareAArch64)
114
115# ifdef ASM_FORMAT_ELF
116.size g_abEfiFirmwareAArch32, end_aarch32_firmware - NAME(g_abEfiFirmwareAArch32)
117.type g_abEfiFirmwareAArch32 object
118.size g_cbEfiFirmwareAArch32, 4
119.type g_cbEfiFirmwareAArch32 object
120
121.size g_abEfiFirmwareAArch64, end_aarch64_firmware - NAME(g_abEfiFirmwareAArch64)
122.type g_abEfiFirmwareAArch64 object
123.size g_cbEfiFirmwareAArch64, 4
124.type g_cbEfiFirmwareAArch64 object
125
126#elif defined(ASM_FORMAT_PE)
127/* Explit exportint: */
128.section .drectve
129.string "-export:g_abEfiFirmwareAArch32 -export:g_cbEfiFirmwareAArch32 -export:g_abEfiFirmwareAArch64 -export:g_cbEfiFirmwareAArch64"
130.section .text
131
132# endif
133#endif /*VBOX_WITH_VIRT_ARMV8 */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette