VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/bootsectors/bs3kit/Makefile.kmk@ 105075

Last change on this file since 105075 was 105075, checked in by vboxsync, 10 months ago

ValKit/bootsectors: Produce a special 63.5MB capable bootsector and use it with the VBoxBS3KitImgBig template, disabling the 63.5MB capability in the regular bootsector so it works on USB sticks on real HW as well. bugref:10715

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 26.8 KB
Line 
1# $Id: Makefile.kmk 105075 2024-06-28 15:45:11Z vboxsync $
2## @file
3# VirtualBox Validation Kit - Bootsector Kit v3
4#
5
6#
7# Copyright (C) 2006-2023 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# The contents of this file may alternatively be used under the terms
26# of the Common Development and Distribution License Version 1.0
27# (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
28# in the VirtualBox distribution, in which case the provisions of the
29# CDDL are applicable instead of those of the GPL.
30#
31# You may elect to license modified versions of this file under the
32# terms and conditions of either the GPL or the CDDL or both.
33#
34# SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
35#
36
37SUB_DEPTH = ../../../../..
38include $(KBUILD_PATH)/subheader.kmk
39
40
41
42# Boot Sector post-link tool (used via the parent Config.kmk).
43BLDPROGS += VBoxBs3Linker
44VBoxBs3Linker_TEMPLATE = VBoxAdvBldProg
45VBoxBs3Linker_SOURCES = $(VBOX_PATH_BS3KIT_SRC)/VBoxBs3Linker.cpp
46
47
48# 64-bit relocation conversion tool (used via the parent Config.kmk).
49BLDPROGS += VBoxBs3ObjConverter
50VBoxBs3ObjConverter_TEMPLATE = VBoxBldProg
51VBoxBs3ObjConverter_DEFS = BS3KIT_BS3CLASS16CODE=$(BS3KIT_BS3CLASS16CODE) IN_RT_R3
52VBoxBs3ObjConverter_SOURCES = \
53 $(VBOX_PATH_BS3KIT_SRC)/VBoxBs3ObjConverter.cpp \
54 $(PATH_ROOT)/src/VBox/Runtime/common/sort/shellsort.cpp
55
56
57# The boot sector for regular floppies.
58MISCBINS += bs3-bootsector
59bs3-bootsector_TEMPLATE = VBoxBS3KitBS
60bs3-bootsector_SOURCES = bs3-bootsector.asm
61
62# The boot sector for 63.5MB floppies.
63MISCBINS += bs3-bootsector-63MB
64bs3-bootsector-63MB_TEMPLATE = VBoxBS3KitBS
65bs3-bootsector-63MB_DEFS = BS3KIT_BOOTSECTOR_SUPPORT_63_5MB_FLOPPIES
66bs3-bootsector-63MB_SOURCES = bs3-bootsector.asm
67
68
69#
70# Common sources to be compiled into _p16, _p32 and _p64 versions.
71#
72VBOX_BS3KIT_COMMON_SOURCES = \
73 bs3-cmn-A20Disable.asm \
74 bs3-cmn-A20Enable.asm \
75 bs3-cmn-GetCpuVendor.c \
76 bs3-cmn-GetModeName.c \
77 bs3-cmn-GetModeNameShortLower.c \
78 bs3-cmn-KbdRead.asm \
79 bs3-cmn-KbdWait.asm \
80 bs3-cmn-KbdWrite.asm \
81 bs3-cmn-Shutdown.asm \
82 bs3-cmn-Panic.asm \
83 bs3-cmn-PrintChr.asm \
84 bs3-cmn-Printf.c \
85 bs3-cmn-PrintU32.asm \
86 bs3-cmn-PrintX32.asm \
87 bs3-cmn-PrintStr.c \
88 bs3-cmn-PrintStrN.asm \
89 bs3-cmn-StrFormatV.c \
90 bs3-cmn-StrPrintf.c \
91 bs3-cmn-StrLen.c \
92 bs3-cmn-StrNLen.c \
93 bs3-cmn-StrCpy.c \
94 bs3-cmn-MemChr.asm \
95 bs3-cmn-MemCmp.asm \
96 bs3-cmn-MemCpy.c \
97 bs3-cmn-MemPCpy.c \
98 bs3-cmn-MemMove.c \
99 bs3-cmn-MemSet.asm \
100 bs3-cmn-MemZero.asm \
101 bs3-cmn-MemAlloc.c \
102 bs3-cmn-MemAllocZ.c \
103 bs3-cmn-MemFree.c \
104 bs3-cmn-MemGuardedTestPage.c \
105 bs3-cmn-MemPrintInfo.c \
106 bs3-cmn-PagingData.c \
107 bs3-cmn-PagingInitRootForPP.c \
108 bs3-cmn-PagingInitRootForPAE.c \
109 bs3-cmn-PagingInitRootForLM.c \
110 bs3-cmn-PagingAlias.c \
111 bs3-cmn-PagingProtect.c \
112 bs3-cmn-PagingQueryAddressInfo.c \
113 bs3-cmn-PagingSetupCanonicalTraps.c \
114 bs3-cmn-pic-data.c \
115 bs3-cmn-PicMaskAll.c \
116 bs3-cmn-PicUpdateMask.c \
117 bs3-cmn-PicSetup.c \
118 bs3-cmn-pit.c \
119 bs3-cmn-PitIrqHandler.c \
120 bs3-cmn-RegCtxRestore.asm \
121 bs3-cmn-RegCtxConvertToRingX.c \
122 bs3-cmn-RegCtxConvertV86ToRm.c \
123 bs3-cmn-RegCtxPrint.c \
124 bs3-cmn-RegCtxGetRspSsAsCurPtr.c \
125 bs3-cmn-RegCtxSave.asm \
126 bs3-cmn-RegCtxSaveEx.asm \
127 bs3-cmn-RegCtxSaveForMode.c \
128 bs3-cmn-RegCtxSetGrpSegFromCurPtr.c \
129 bs3-cmn-RegCtxSetGrpSegFromFlat.c \
130 bs3-cmn-RegCtxSetRipCsFromCurPtr.c \
131 bs3-cmn-RegCtxSetRipCsFromFlat.c \
132 bs3-cmn-RegCtxSetRipCsFromLnkPtr.c \
133 bs3-cmn-RegCtxSetGpr.c \
134 bs3-cmn-RegGetCr0.asm \
135 bs3-cmn-RegGetCr2.asm \
136 bs3-cmn-RegGetCr3.asm \
137 bs3-cmn-RegGetCr4.asm \
138 bs3-cmn-RegSetCr0.asm \
139 bs3-cmn-RegSetCr2.asm \
140 bs3-cmn-RegSetCr3.asm \
141 bs3-cmn-RegSetCr4.asm \
142 bs3-cmn-RegGetDr0.asm \
143 bs3-cmn-RegGetDr1.asm \
144 bs3-cmn-RegGetDr2.asm \
145 bs3-cmn-RegGetDr3.asm \
146 bs3-cmn-RegGetDr6.asm \
147 bs3-cmn-RegGetDr7.asm \
148 bs3-cmn-RegGetDrX.asm \
149 bs3-cmn-RegSetDr0.asm \
150 bs3-cmn-RegSetDr1.asm \
151 bs3-cmn-RegSetDr2.asm \
152 bs3-cmn-RegSetDr3.asm \
153 bs3-cmn-RegSetDr6.asm \
154 bs3-cmn-RegSetDr7.asm \
155 bs3-cmn-RegSetDrX.asm \
156 bs3-cmn-RegGetTr.asm \
157 bs3-cmn-RegSetTr.asm \
158 bs3-cmn-RegGetLdtr.asm \
159 bs3-cmn-RegSetLdtr.asm \
160 bs3-cmn-RegGetXcr0.asm \
161 bs3-cmn-RegSetXcr0.asm \
162 bs3-cmn-ExtCtxInit.c \
163 bs3-cmn-ExtCtxSave.asm \
164 bs3-cmn-ExtCtxSaveEx.asm \
165 bs3-cmn-ExtCtxRestore.asm \
166 bs3-cmn-ExtCtxRestoreEx.asm \
167 bs3-cmn-ExtCtxGetSize.c \
168 bs3-cmn-ExtCtxAlloc.c \
169 bs3-cmn-ExtCtxFree.c \
170 bs3-cmn-ExtCtxCopy.c \
171 bs3-cmn-ExtCtxGetFcw.c \
172 bs3-cmn-ExtCtxSetFcw.c \
173 bs3-cmn-ExtCtxGetFsw.c \
174 bs3-cmn-ExtCtxSetFsw.c \
175 bs3-cmn-ExtCtxGetAbridgedFtw.c \
176 bs3-cmn-ExtCtxSetAbridgedFtw.c \
177 bs3-cmn-ExtCtxGetMxCsr.c \
178 bs3-cmn-ExtCtxSetMxCsr.c \
179 bs3-cmn-ExtCtxGetMxCsrMask.c \
180 bs3-cmn-ExtCtxSetMxCsrMask.c \
181 bs3-cmn-ExtCtxGetMm.c \
182 bs3-cmn-ExtCtxSetMm.c \
183 bs3-cmn-ExtCtxGetXmm.c \
184 bs3-cmn-ExtCtxSetXmm.c \
185 bs3-cmn-ExtCtxGetYmm.c \
186 bs3-cmn-ExtCtxSetYmm.c \
187 bs3-cmn-SelFar32ToFlat32.c \
188 bs3-cmn-SelFar32ToFlat32NoClobber.asm \
189 bs3-cmn-SelProtFar32ToFlat32.c \
190 bs3-cmn-SelProtModeCodeToRealMode.asm \
191 bs3-cmn-SelRealModeCodeToProtMode.asm \
192 bs3-cmn-SelRealModeCodeToProtFar16.c \
193 bs3-cmn-SelFlatCodeToRealMode.asm \
194 bs3-cmn-SelFlatCodeToProtFar16.asm \
195 bs3-cmn-SelRealModeDataToProtFar16.asm \
196 bs3-cmn-SelProtFar16DataToRealMode.asm \
197 bs3-cmn-SelRealModeDataToFlat.asm \
198 bs3-cmn-SelProtFar16DataToFlat.asm \
199 bs3-cmn-SelFlatDataToProtFar16.asm \
200 bs3-cmn-SelFlatDataToRealMode.asm \
201 bs3-cmn-SelLnkCodePtrToCurPtr.c \
202 bs3-cmn-SelLnkPtrToCurPtr.c \
203 bs3-cmn-SelLnkPtrToFlat.c \
204 bs3-cmn-SelSetup16BitData.c \
205 bs3-cmn-SelSetup16BitCode.c \
206 bs3-cmn-SelSetup32BitCode.c \
207 bs3-cmn-SelSetupGate.c \
208 bs3-cmn-SelSetupGate64.c \
209 bs3-cmn-SlabInit.c \
210 bs3-cmn-SlabAlloc.c \
211 bs3-cmn-SlabAllocEx.c \
212 bs3-cmn-SlabAllocFixed.c \
213 bs3-cmn-SlabFree.c \
214 bs3-cmn-SlabListInit.c \
215 bs3-cmn-SlabListAdd.c \
216 bs3-cmn-SlabListAlloc.c \
217 bs3-cmn-SlabListAllocEx.c \
218 bs3-cmn-SlabListFree.c \
219 bs3-cmn-SwitchHlpConvRealModeRetfPopBpDecBpAndReturn.asm \
220 bs3-cmn-SwitchHlpConvProtModeRetfPopBpDecBpAndReturn.asm \
221 bs3-cmn-SwitchToRing0.asm \
222 bs3-cmn-SwitchToRing1.asm \
223 bs3-cmn-SwitchToRing2.asm \
224 bs3-cmn-SwitchToRing3.asm \
225 bs3-cmn-SwitchToRingX.asm \
226 bs3-cmn-SwitchTo16Bit.asm \
227 bs3-cmn-SwitchTo16BitV86.asm \
228 bs3-cmn-SwitchTo32Bit.asm \
229 bs3-cmn-SwitchTo64Bit.asm \
230 bs3-cmn-Syscall.asm \
231 bs3-cmn-TestData.c \
232 bs3-cmn-TestInit.c \
233 bs3-cmn-TestFailed.c \
234 bs3-cmn-TestNow.asm \
235 bs3-cmn-TestSkipped.c \
236 bs3-cmn-TestSub.c \
237 bs3-cmn-TestSubDone.c \
238 bs3-cmn-TestSubErrorCount.c \
239 bs3-cmn-TestSubSub.c \
240 bs3-cmn-TestSubSubDone.c \
241 bs3-cmn-TestSubSubErrorCount.c \
242 bs3-cmn-TestTerm.c \
243 bs3-cmn-TestSendCmdWithStr.asm \
244 bs3-cmn-TestSendCmdWithU32.asm \
245 bs3-cmn-TestIsVmmDevTestingPresent.asm \
246 bs3-cmn-TestCheckRegCtxEx.c \
247 bs3-cmn-TestCheckExtCtx.c \
248 bs3-cmn-TestQueryCfgU8.asm \
249 bs3-cmn-TestQueryCfgU16.asm \
250 bs3-cmn-TestQueryCfgU32.asm \
251 bs3-cmn-TestHostPrintf.c \
252 bs3-cmn-TestPrintf.c \
253 bs3-cmn-TestValue.c \
254 bs3-cmn-TrapReInit.c \
255 bs3-cmn-TrapRmV86Init.c \
256 bs3-cmn-TrapRmV86SetGate.c \
257 bs3-cmn-Trap16Init.c \
258 bs3-cmn-Trap16SetGate.c \
259 bs3-cmn-Trap32Init.c \
260 bs3-cmn-Trap32SetGate.c \
261 bs3-cmn-Trap64Init.c \
262 bs3-cmn-Trap64SetGate.c \
263 bs3-cmn-TrapSetDpl.c \
264 bs3-cmn-TrapDefaultHandler.c \
265 bs3-cmn-TrapHandlersData.asm \
266 bs3-cmn-TrapPrintFrame.c \
267 bs3-cmn-TrapSetHandler.c \
268 bs3-cmn-TrapSetHandlerEx.c \
269 bs3-cmn-TrapSetJmp.asm \
270 bs3-cmn-TrapSetJmpAndRestore.c \
271 bs3-cmn-TrapSetJmpAndRestoreInRm.c \
272 bs3-cmn-TrapSetJmpAndRestoreWithRm.c \
273 bs3-cmn-TrapSetJmpAndRestoreWithExtCtx.c \
274 bs3-cmn-TrapSetJmpAndRestoreWithExtCtxAndRm.c \
275 bs3-cmn-TrapUnsetJmp.c \
276 bs3-cmn-UtilSetFullGdtr.asm \
277 bs3-cmn-UtilSetFullIdtr.asm \
278 bs3-cmn-TestDoModesByOneHlp.asm \
279 ../../../Runtime/common/asm/ASMBitFirstClear.asm \
280 ../../../Runtime/common/asm/ASMBitFirstSet.asm \
281 ../../../Runtime/common/asm/ASMBitNextClear.asm \
282 ../../../Runtime/common/asm/ASMBitNextSet.asm \
283 ../../../Runtime/common/asm/ASMBitFirstSetU16.asm \
284 ../../../Runtime/common/asm/ASMBitFirstSetU32.asm \
285 ../../../Runtime/common/asm/ASMBitFirstSetU64.asm \
286 ../../../Runtime/common/asm/ASMBitLastSetU16.asm \
287 ../../../Runtime/common/asm/ASMBitLastSetU32.asm \
288 ../../../Runtime/common/asm/ASMBitLastSetU64.asm \
289 ../../../Runtime/common/asm/ASMMemFirstMismatchingU8.asm \
290 ../../../Runtime/common/asm/ASMSerializeInstruction-cpuid.asm \
291 ../../../Runtime/common/asm/ASMSerializeInstruction-iret.asm \
292 ../../../Runtime/common/asm/ASMSerializeInstruction-rdtscp.asm \
293 ../../../Runtime/common/asm/ASMCpuIdExSlow.asm \
294 ../../../Runtime/common/asm/ASMCpuId.asm \
295 ../../../Runtime/common/asm/ASMCpuId_Idx_ECX.asm \
296 ../../../Runtime/common/asm/ASMWrMsr.asm \
297 ../../../Runtime/common/asm/ASMGetXcr0.asm \
298 ../../../Runtime/common/asm/ASMSetXcr0.asm \
299 ../../../Runtime/common/asm/ASMSetFlags.asm \
300 ../../../Runtime/common/asm/ASMGetFlags.asm \
301 ../../../Runtime/common/asm/ASMMultU64ByU32DivByU32.asm
302
303# The 16-bit BS3Kit library.
304LIBRARIES += bs3kit-common-16
305bs3kit-common-16_TEMPLATE = VBoxBS3KitImg
306bs3kit-common-16_INSTTYPE = none
307bs3kit-common-16_DEFS = TMPL_PE16 BS3_CMN_ONLY
308bs3kit-common-16_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
309bs3kit-common-16_SOURCES = $(VBOX_BS3KIT_COMMON_SOURCES) \
310 bs3-system-data.asm \
311 bs3-rm-InitAll.c \
312 bs3-rm-InitAllWithHighDlls.c \
313 bs3-rm-InitMemory.c \
314 bs3-rm-InitGdt.c \
315 bs3-rm-InitHighDlls.c \
316 bs3-cmn-hexdigits.c \
317 bs3-cmn-CpuDetectData.c \
318 bs3-cmn-PerCpuData.c \
319 bs3-cmn-ConvertRMStackToP16UsingCxReturnToAx.asm \
320 bs3-cmn-UInt64Div.c \
321 bs3-cmn-UInt32Div.c \
322 bs3-wc16-U8DR.asm \
323 bs3-wc16-U8DQ.asm \
324 bs3-wc16-I8DR.asm \
325 bs3-wc16-I8DQ.asm \
326 bs3-wc16-I8RS.asm \
327 bs3-wc16-U8RS.asm \
328 bs3-wc16-U8LS.asm \
329 bs3-wc16-U4D.asm \
330 bs3-wc16-I4D.asm \
331 bs3-c16-SwitchFromV86To16BitAndCallC.asm \
332 bs3-c16-Trap16Generic.asm \
333 bs3-c16-TrapRmV86Generic.asm \
334 bs3-c16-TrapRmV86Data.c \
335 bs3-c16-CreateHybridFarRet.asm
336bs3kit-common-16_bs3-cmn-UInt64Div.c_CFLAGS = -oh -d0 # -d1+ vs -d0 saves 0x6a3-0x577 = 0x12C (300)!
337
338$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMMemFirstMismatchingU8,8)
339$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMMemFirstNonZero,6)
340$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMCpuIdExSlow,32)
341$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMCpuId,20)
342$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMWrMsr,12)
343$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMSetXcr0,8)
344$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMGetXcr0,0)
345-include $(PATH_SUB_CURRENT)/bs3kit-autostubs.kmk # manually generated from headers, see bottom of this file.
346
347# The 32-bit BS3Kit library.
348LIBRARIES += bs3kit-common-32
349bs3kit-common-32_TEMPLATE = VBoxBS3KitImg32
350bs3kit-common-32_INSTTYPE = none
351bs3kit-common-32_DEFS = TMPL_PE32 BS3_CMN_ONLY
352bs3kit-common-32_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
353bs3kit-common-32_SOURCES = $(VBOX_BS3KIT_COMMON_SOURCES) \
354 bs3-cmn-PagingMapRamAbove4GForLM.c \
355 bs3-cmn-SwitchHlpConvFlatRetToRetfProtMode.asm \
356 bs3-cmn-UInt64Div.c \
357 bs3-wc32-U8D.asm \
358 bs3-wc32-I8D.asm \
359 bs3-wc32-I8RS.asm \
360 bs3-wc32-U8RS.asm \
361 bs3-wc32-U8LS.asm \
362 bs3-wc32-U8M.asm \
363 bs3-c32-Trap32Generic.asm
364
365# The 64-bit BS3Kit library.
366LIBRARIES += bs3kit-common-64
367bs3kit-common-64_TEMPLATE = VBoxBS3KitImg64
368bs3kit-common-64_INSTTYPE = none
369bs3kit-common-64_DEFS = TMPL_LM64 BS3_CMN_ONLY
370bs3kit-common-64_ASDEFS = RT_ASMDEFS_INC_FIRST_FILE
371bs3kit-common-64_SOURCES = $(VBOX_BS3KIT_COMMON_SOURCES) \
372 bs3-cmn-PagingMapRamAbove4GForLM.c \
373 bs3-cmn-SwitchHlpConvFlatRetToRetfProtMode.asm \
374 bs3-c64-Trap64Generic.asm \
375 ../../../Runtime/common/asm/ASMGetIDTR.asm \
376 ../../../Runtime/common/asm/ASMSetIDTR.asm \
377 ../../../Runtime/common/asm/ASMGetGDTR.asm \
378 ../../../Runtime/common/asm/ASMSetGDTR.asm
379
380
381#
382# Common sources to be compiled for each CPU mode.
383#
384VBOX_BS3KIT_MODE_SOURCES = \
385 bs3-mode-MemCopyFlat.asm \
386 bs3-mode-Name.asm \
387 bs3-mode-NameShortLower.asm \
388 bs3-mode-SwitchToRM.asm \
389 bs3-mode-SwitchToPE16.asm \
390 bs3-mode-SwitchToPE16_32.asm \
391 bs3-mode-SwitchToPE16_V86.asm \
392 bs3-mode-SwitchToPE32.asm \
393 bs3-mode-SwitchToPE32_16.asm \
394 bs3-mode-SwitchToPEV86.asm \
395 bs3-mode-SwitchToPP16.asm \
396 bs3-mode-SwitchToPP16_32.asm \
397 bs3-mode-SwitchToPP16_V86.asm \
398 bs3-mode-SwitchToPP32.asm \
399 bs3-mode-SwitchToPP32_16.asm \
400 bs3-mode-SwitchToPPV86.asm \
401 bs3-mode-SwitchToPAE16.asm \
402 bs3-mode-SwitchToPAE16_32.asm \
403 bs3-mode-SwitchToPAE16_V86.asm \
404 bs3-mode-SwitchToPAE32.asm \
405 bs3-mode-SwitchToPAE32_16.asm \
406 bs3-mode-SwitchToPAEV86.asm \
407 bs3-mode-SwitchToLM64.asm \
408 bs3-mode-SwitchToLM32.asm \
409 bs3-mode-SwitchToLM16.asm \
410 bs3-mode-SwitchTo32BitAndCallC.asm \
411 bs3-mode-EnteredMode.asm \
412 bs3-mode-PagingGetRootForPP16.asm \
413 bs3-mode-PagingGetRootForPP32.asm \
414 bs3-mode-PagingGetRootForPAE16.asm \
415 bs3-mode-PagingGetRootForPAE32.asm \
416 bs3-mode-PagingGetRootForLM64.asm \
417 bs3-mode-TrapInit.c \
418 bs3-mode-TrapSystemCallHandler.asm \
419 bs3-mode-TrapSetJmpAndRestoreInRmAsm.asm \
420 bs3-mode-TestDoModes.c \
421 bs3-mode-TestDoModesByOne.c \
422 bs3-mode-TestDoModesByMax.c \
423 bs3-mode-TestDoModesHlp.asm \
424 bs3-mode-BiosInt15hE820.asm \
425 bs3-mode-DiskQueryGeometry.asm \
426 bs3-mode-DiskRead.asm
427
428# The 16-bit real mode BS3Kit library.
429LIBRARIES += bs3kit-rm
430bs3kit-rm_TEMPLATE = VBoxBS3KitImg
431bs3kit-rm_INSTTYPE = none
432bs3kit-rm_DEFS = TMPL_MODE=BS3_MODE_RM
433bs3kit-rm_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
434 bs3-first-rm.asm \
435 bs3-mode-CpuDetect.asm \
436 bs3-mode-TestDoModesStub.asm \
437 bs3-mode-TestDoModesByOneStub.asm \
438 bs3-mode-TestDoModesByMaxStub.asm
439
440
441# The 16-bit BS3Kit library for 16-bit protected kernel+tss.
442LIBRARIES += bs3kit-pe16
443bs3kit-pe16_TEMPLATE = VBoxBS3KitImg
444bs3kit-pe16_INSTTYPE = none
445bs3kit-pe16_DEFS = TMPL_MODE=BS3_MODE_PE16
446bs3kit-pe16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
447 bs3-first-pe16.asm \
448 bs3-mode-TestDoModesStub.asm \
449 bs3-mode-TestDoModesByOneStub.asm \
450 bs3-mode-TestDoModesByMaxStub.asm
451# bs3-mode-CpuDetect.asm
452
453# The 32-bit BS3Kit library for 16-bit protected kernel+tss.
454LIBRARIES += bs3kit-pe16_32
455bs3kit-pe16_32_TEMPLATE = VBoxBS3KitImg32
456bs3kit-pe16_32_INSTTYPE = none
457bs3kit-pe16_32_DEFS = TMPL_MODE=BS3_MODE_PE16_32
458bs3kit-pe16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
459 bs3-mode-TestDoModesStub.asm \
460 bs3-mode-TestDoModesByOneStub.asm \
461 bs3-mode-TestDoModesByMaxStub.asm
462
463# The v86 BS3Kit library for 16-bit protected kernel+tss.
464LIBRARIES += bs3kit-pe16_v86
465bs3kit-pe16_v86_TEMPLATE = VBoxBS3KitImg
466bs3kit-pe16_v86_INSTTYPE = none
467bs3kit-pe16_v86_DEFS = TMPL_MODE=BS3_MODE_PE16_V86
468bs3kit-pe16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
469 bs3-mode-TestDoModesStub.asm \
470 bs3-mode-TestDoModesByOneStub.asm \
471 bs3-mode-TestDoModesByMaxStub.asm
472
473# The 32-bit BS3Kit library for 32-bit protected kernel+tss.
474LIBRARIES += bs3kit-pe32
475bs3kit-pe32_TEMPLATE = VBoxBS3KitImg32
476bs3kit-pe32_INSTTYPE = none
477bs3kit-pe32_DEFS = TMPL_MODE=BS3_MODE_PE32
478bs3kit-pe32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
479 bs3-first-init-all-pe32.asm
480
481# The 16-bit BS3Kit library for 32-bit protected kernel+tss.
482LIBRARIES += bs3kit-pe32_16
483bs3kit-pe32_16_TEMPLATE = VBoxBS3KitImg
484bs3kit-pe32_16_INSTTYPE = none
485bs3kit-pe32_16_DEFS = TMPL_MODE=BS3_MODE_PE32_16
486bs3kit-pe32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
487 bs3-mode-TestDoModesStub.asm \
488 bs3-mode-TestDoModesByOneStub.asm \
489 bs3-mode-TestDoModesByMaxStub.asm
490
491# The v8086 BS3Kit library for 32-bit protected kernel+tss.
492LIBRARIES += bs3kit-pev86
493bs3kit-pev86_TEMPLATE = VBoxBS3KitImg
494bs3kit-pev86_INSTTYPE = none
495bs3kit-pev86_DEFS = TMPL_MODE=BS3_MODE_PEV86
496bs3kit-pev86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
497
498# The 16-bit BS3Kit library for 16-bit paged protected kernel+tss.
499LIBRARIES += bs3kit-pp16
500bs3kit-pp16_TEMPLATE = VBoxBS3KitImg
501bs3kit-pp16_INSTTYPE = none
502bs3kit-pp16_DEFS = TMPL_MODE=BS3_MODE_PP16
503bs3kit-pp16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
504 bs3-mode-CpuDetect.asm \
505 bs3-mode-TestDoModesStub.asm \
506 bs3-mode-TestDoModesByOneStub.asm \
507 bs3-mode-TestDoModesByMaxStub.asm
508
509# The 32-bit BS3Kit library for 16-bit paged protected kernel+tss.
510LIBRARIES += bs3kit-pp16_32
511bs3kit-pp16_32_TEMPLATE = VBoxBS3KitImg32
512bs3kit-pp16_32_INSTTYPE = none
513bs3kit-pp16_32_DEFS = TMPL_MODE=BS3_MODE_PP16_32
514bs3kit-pp16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
515
516# The v8086 BS3Kit library for 16-bit paged protected kernel+tss.
517LIBRARIES += bs3kit-pp16_v86
518bs3kit-pp16_v86_TEMPLATE = VBoxBS3KitImg
519bs3kit-pp16_v86_INSTTYPE = none
520bs3kit-pp16_v86_DEFS = TMPL_MODE=BS3_MODE_PP16_V86
521bs3kit-pp16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
522
523# The 32-bit BS3Kit library for 32-bit paged protected kernel+tss.
524LIBRARIES += bs3kit-pp32
525bs3kit-pp32_TEMPLATE = VBoxBS3KitImg32
526bs3kit-pp32_INSTTYPE = none
527bs3kit-pp32_DEFS = TMPL_MODE=BS3_MODE_PP32
528bs3kit-pp32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
529 bs3-first-init-all-pp32.asm
530
531# The 16-bit BS3Kit library for 32-bit paged protected kernel+tss.
532LIBRARIES += bs3kit-pp32_16
533bs3kit-pp32_16_TEMPLATE = VBoxBS3KitImg
534bs3kit-pp32_16_INSTTYPE = none
535bs3kit-pp32_16_DEFS = TMPL_MODE=BS3_MODE_PP32_16
536bs3kit-pp32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
537 bs3-mode-TestDoModesStub.asm \
538 bs3-mode-TestDoModesByOneStub.asm \
539 bs3-mode-TestDoModesByMaxStub.asm
540
541# The v8086 BS3Kit library for 32-bit paged protected kernel+tss.
542LIBRARIES += bs3kit-ppv86
543bs3kit-ppv86_TEMPLATE = VBoxBS3KitImg
544bs3kit-ppv86_INSTTYPE = none
545bs3kit-ppv86_DEFS = TMPL_MODE=BS3_MODE_PPV86
546bs3kit-ppv86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
547
548
549# The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss.
550LIBRARIES += bs3kit-pae16
551bs3kit-pae16_TEMPLATE = VBoxBS3KitImg
552bs3kit-pae16_INSTTYPE = none
553bs3kit-pae16_DEFS = TMPL_MODE=BS3_MODE_PAE16
554bs3kit-pae16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
555 bs3-mode-CpuDetect.asm \
556 bs3-mode-TestDoModesStub.asm \
557 bs3-mode-TestDoModesByOneStub.asm \
558 bs3-mode-TestDoModesByMaxStub.asm
559
560# The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss.
561LIBRARIES += bs3kit-pae16_32
562bs3kit-pae16_32_TEMPLATE = VBoxBS3KitImg32
563bs3kit-pae16_32_INSTTYPE = none
564bs3kit-pae16_32_DEFS = TMPL_MODE=BS3_MODE_PAE16_32
565bs3kit-pae16_32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
566
567# The v8086 BS3Kit library for 16-bit PAE paged protected kernel+tss.
568LIBRARIES += bs3kit-pae16_v86
569bs3kit-pae16_v86_TEMPLATE = VBoxBS3KitImg
570bs3kit-pae16_v86_INSTTYPE = none
571bs3kit-pae16_v86_DEFS = TMPL_MODE=BS3_MODE_PAE16_V86
572bs3kit-pae16_v86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
573
574# The 32-bit BS3Kit library for 32-bit PAE paged protected kernel+tss.
575LIBRARIES += bs3kit-pae32
576bs3kit-pae32_TEMPLATE = VBoxBS3KitImg32
577bs3kit-pae32_INSTTYPE = none
578bs3kit-pae32_DEFS = TMPL_MODE=BS3_MODE_PAE32
579bs3kit-pae32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
580
581# The 16-bit BS3Kit library for 32-bit PAE paged protected kernel+tss.
582LIBRARIES += bs3kit-pae32_16
583bs3kit-pae32_16_TEMPLATE = VBoxBS3KitImg
584bs3kit-pae32_16_INSTTYPE = none
585bs3kit-pae32_16_DEFS = TMPL_MODE=BS3_MODE_PAE32_16
586bs3kit-pae32_16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
587 bs3-mode-TestDoModesStub.asm \
588 bs3-mode-TestDoModesByOneStub.asm \
589 bs3-mode-TestDoModesByMaxStub.asm
590
591# The v8086 BS3Kit library for 32-bit PAE paged protected kernel+tss.
592LIBRARIES += bs3kit-paev86
593bs3kit-paev86_TEMPLATE = VBoxBS3KitImg
594bs3kit-paev86_INSTTYPE = none
595bs3kit-paev86_DEFS = TMPL_MODE=BS3_MODE_PAEV86
596bs3kit-paev86_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
597
598
599# The 16-bit long mode BS3Kit library.
600LIBRARIES += bs3kit-lm16
601bs3kit-lm16_TEMPLATE = VBoxBS3KitImg
602bs3kit-lm16_INSTTYPE = none
603bs3kit-lm16_DEFS = TMPL_MODE=BS3_MODE_LM16
604bs3kit-lm16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
605 bs3-mode-TestDoModesStub.asm \
606 bs3-mode-TestDoModesByOneStub.asm \
607 bs3-mode-TestDoModesByMaxStub.asm
608
609# The 32-bit long mode BS3Kit library.
610LIBRARIES += bs3kit-lm32
611bs3kit-lm32_TEMPLATE = VBoxBS3KitImg32
612bs3kit-lm32_INSTTYPE = none
613bs3kit-lm32_DEFS = TMPL_MODE=BS3_MODE_LM32
614bs3kit-lm32_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES)
615
616# The 64-bit long mode BS3Kit library.
617LIBRARIES += bs3kit-lm64
618bs3kit-lm64_TEMPLATE = VBoxBS3KitImg64
619bs3kit-lm64_INSTTYPE = none
620bs3kit-lm64_DEFS = TMPL_MODE=BS3_MODE_LM64
621bs3kit-lm64_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \
622 bs3-first-init-all-lm64.asm
623
624
625#
626# shutdown example.
627#
628MISCBINS += bs3-shutdown
629bs3-shutdown_TEMPLATE = VBoxBS3KitImg
630bs3-shutdown_SOURCES = \
631 bs3-first-pe16.asm \
632 bs3-shutdown.c
633
634
635#
636# DOS Utilities / Testcases.
637#
638MISCBINS += bs3cpudt
639bs3cpudt_TEMPLATE = VBoxBS3KitUtil
640bs3cpudt_SOURCES = \
641 bs3-first-dosexe.asm \
642 bs3cpudt.c
643
644
645#
646# Rule for regenerating bs3kit-mangling-functions-undef.h.
647#
648bs3kit-mangling-code-undef.h: $(PATH_SUB_CURRENT)/bs3kit-mangling-code-define.h $(MAKEFILE)
649 $(SED) \
650 -e 's/#\( *\)define \([a-zA-Z_][a-zA-Z0-9_]*\) .*$(DOLLAR)/#\1undef \2/' \
651 -e 's/Function needing mangling.*$(DOLLAR)/Undefining function mangling - automatically generated by the $@ makefile rule./' \
652 --output $(dir $<)bs3kit-mangling-code-undef.h \
653 $<
654
655#
656# Rule for regenerating bs3kit-mangling-functions-define.h.
657#
658bs3kit-mangling-code-define.h: \
659 $(PATH_SUB_CURRENT)/bs3kit.h \
660 $(PATH_SUB_CURRENT)/bs3-cmn-paging.h \
661 $(PATH_SUB_CURRENT)/bs3-cmn-test.h \
662 $(MAKEFILE)
663 $(APPEND) -tn "$(dir $<)$@" \
664 '/* $(DOLLAR)Id: $(DOLLAR) */' \
665 '/** @file' \
666 ' * BS3Kit - Function needing mangling - generated by the $@ makefile rule.' \
667 ' */' \
668 '' \
669 '/*' \
670 ' * Copyright (C) 2007-$(VBOX_C_YEAR) Oracle and/or its affiliates.' \
671 ' *' \
672 ' * This file is part of VirtualBox base platform packages, as' \
673 ' * available from https://www.virtualbox.org.' \
674 ' *' \
675 ' * This program is free software; you can redistribute it and/or' \
676 ' * modify it under the terms of the GNU General Public License' \
677 ' * as published by the Free Software Foundation, in version 3 of the' \
678 ' * License.' \
679 ' *' \
680 ' * This program is distributed in the hope that it will be useful, but' \
681 ' * WITHOUT ANY WARRANTY; without even the implied warranty of' \
682 ' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU' \
683 ' * General Public License for more details.' \
684 ' *' \
685 ' * You should have received a copy of the GNU General Public License' \
686 ' * along with this program; if not, see <https://www.gnu.org/licenses>.' \
687 ' *' \
688 ' * The contents of this file may alternatively be used under the terms' \
689 ' * of the Common Development and Distribution License Version 1.0' \
690 ' * (CDDL), a copy of it is provided in the "COPYING.CDDL" file included' \
691 ' * in the VirtualBox distribution, in which case the provisions of the' \
692 ' * CDDL are applicable instead of those of the GPL.' \
693 ' *' \
694 ' * You may elect to license modified versions of this file under the' \
695 ' * terms and conditions of either the GPL or the CDDL or both.' \
696 ' *' \
697 ' * SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0' \
698 ' */' \
699 ''
700 $(SED) -n \
701 -e 's/^ *BS3_CMN_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
702 -e 's/^ *BS3_CMN_PROTO_NOSB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
703 -e 's/^ *BS3_CMN_PROTO_FARSTUB([^,]*,[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
704 $(filter %.h,$^) | sort >> "$(dir $<)bs3kit-mangling-code-define.h"
705 $(APPEND) -n "$(dir $<)$@" '#ifndef BS3_CMN_ONLY'
706 $(SED) -n \
707 -e 's/^ *BS3_MODE_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
708 -e 's/^ *BS3_MODE_PROTO_NOSB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
709 -e 's/^ *BS3_MODE_PROTO_FARSTUB([^,]*,[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
710 $(filter %.h,$^) | sort >> "$(dir $<)bs3kit-mangling-code-define.h"
711 $(APPEND) -n "$(dir $<)$@" '#endif /* !BS3_CMN_ONLY */'
712
713#
714# Rule for regenerating bs3kit-autostubs.kmk.
715#
716bs3kit-autostubs.kmk: \
717 $(PATH_SUB_CURRENT)/bs3kit.h \
718 $(PATH_SUB_CURRENT)/bs3-cmn-memory.h \
719 $(PATH_SUB_CURRENT)/bs3-cmn-paging.h \
720 $(PATH_SUB_CURRENT)/bs3-cmn-test.h \
721 $(MAKEFILE)
722 $(APPEND) -tn "$(dir $<)$@" \
723 '# $(DOLLAR)Id: $(DOLLAR)' \
724 '## @file' \
725 '# BS3Kit - Automatic near/far stubs - generated by the $@ makefile rule.' \
726 '#' \
727 '' \
728 '#' \
729 '# Copyright (C) 2007-$(VBOX_C_YEAR) Oracle and/or its affiliates.' \
730 '#' \
731 '# This file is part of VirtualBox base platform packages, as' \
732 '# available from https://www.virtualbox.org.' \
733 '#' \
734 '# This program is free software; you can redistribute it and/or' \
735 '# modify it under the terms of the GNU General Public License' \
736 '# as published by the Free Software Foundation, in version 3 of the' \
737 '# License.' \
738 '#' \
739 '# This program is distributed in the hope that it will be useful, but' \
740 '# WITHOUT ANY WARRANTY; without even the implied warranty of' \
741 '# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU' \
742 '# General Public License for more details.' \
743 '#' \
744 '# You should have received a copy of the GNU General Public License' \
745 '# along with this program; if not, see <https://www.gnu.org/licenses>.' \
746 '#' \
747 '# The contents of this file may alternatively be used under the terms' \
748 '# of the Common Development and Distribution License Version 1.0' \
749 '# (CDDL), a copy of it is provided in the "COPYING.CDDL" file included' \
750 '# in the VirtualBox distribution, in which case the provisions of the' \
751 '# CDDL are applicable instead of those of the GPL.' \
752 '#' \
753 '# You may elect to license modified versions of this file under the' \
754 '# terms and conditions of either the GPL or the CDDL or both.' \
755 '#' \
756 '# SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0' \
757 '#' \
758 ''
759 $(SED) -n \
760 -e '/^ *BS3_CMN_PROTO_STUB/p' \
761 -e '/^ *BS3_CMN_PROTO_FARSTUB/p' \
762 -e '/^ *BS3_MODE_PROTO_STUB/p' \
763 -e '/^ *BS3_MODE_PROTO_FARSTUB/p' \
764 $(filter %.h,$^) \
765 | sort \
766 | $(SED) -n \
767 -e 's/^ *BS3_CMN_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/\$(DOLLAR)(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,\1)/p' \
768 -e 's/^ *BS3_MODE_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/\$(DOLLAR)(call BS3KIT_FN_GEN_MODE_NEARSTUB,bs3kit-common-16,\1)/p' \
769 -e 's/^ *BS3_CMN_PROTO_FARSTUB( *\([^,]*\),[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/\$(DOLLAR)(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,\2,\1)/p' \
770 -e 's/^ *BS3_MODE_PROTO_FARSTUB( *\([^,]*\),[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/\$(DOLLAR)(call BS3KIT_FN_GEN_MODE_FARSTUB,bs3kit-common-16,\2,\1)/p' \
771 --append "$(dir $<)$@"
772
773bs3kit-update:: bs3kit-autostubs.kmk bs3kit-mangling-code-define.h bs3kit-mangling-code-undef.h
774.NOTPARALLEL: bs3kit-autostubs.kmk bs3kit-mangling-code-define.h bs3kit-mangling-code-undef.h
775
776
777include $(FILE_KBUILD_SUB_FOOTER)
778
Note: See TracBrowser for help on using the repository browser.

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