VirtualBox

Ignore:
Timestamp:
Apr 20, 2016 9:48:09 AM (9 years ago)
Author:
vboxsync
Message:

bs3kit: updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/Makefile.kmk

    r60578 r60585  
    157157       ../../../Runtime/common/asm/ASMSerializeInstruction-rdtscp.asm \
    158158
    159 #
    160 # We generate a list of files with 16-bit far functions for which we generate
    161 # near jump stubs.
    162 #
    163 #$(PATH_OUT_OBJ)/bs3kit-common-16-near-to-far.kmk.ts \
    164 #+| $(PATH_OUT_OBJ)/bs3kit-common-16-near-to-far.kmk: $(VBOX_PATH_BS3KIT_SRC)/bs3kit.h
    165 #       $(SED) \
    166 #               -n -e '/no-near-stub/d' \
    167 #               -e 's/^ *BS3_DECL(.*)  *\([a-zA-Z][a-zA-Z0-9_]*\)(.*[;,][^;]*$/\1/p' \
    168 #               --output $@ \
    169 #               bs3kit.h
    170 #       .$(CP_CHANGED) --changed -f -- $@ $(PATH_OUT_OBJ)/bs3kit-common-16-near-to-far.kmk
    171 #include $(PATH)
    172 
    173 
    174159# The 16-bit BS3Kit library.
    175160LIBRARIES += bs3kit-common-16
     
    199184        bs3-wc16-I4D.asm \
    200185       bs3-c16-Trap16Generic.asm \
     186       bs3-c16-TrapRmV86Generic.asm \
     187       bs3-c16-Trap16RmV86Data.asm \
     188       bs3-c16-TrapRmV86Data.c \
    201189        bs3-c16-CreateHybridFarRet.asm
    202190bs3kit-common-16_bs3-cmn-UInt64Div.c_CFLAGS = -oh -d0 # -d1+ vs -d0 saves 0x6a3-0x577 = 0x12C (300)!
    203 bs3kit-common-16_VBOX_NEAR_TO_FAR_CMN_FUNCTIONS := \
    204         $(sort $(subst bs3-cmn-,Bs3,$(basename $(filter-out \
    205                 %Data.c \
    206                 bs3-rm-% \
    207                 bs3-cmn-hexdigits.c \
    208         ,$(filter %.c,$(bs3kit-common-16_SOURCES)))))) \
    209        Bs3PrintfV \
    210        Bs3StrPrintfV \
    211        Bs3TestPrintfV \
    212        Bs3TestFailedF \
    213        Bs3TestFailedV \
    214        Bs3TestSkippedF \
    215        Bs3TestSkippedV \
    216        Bs3TestSubF \
    217        Bs3TestSubV \
    218        Bs3Trap16InitEx \
    219 
    220 bs3kit-common-16_VBOX_NEAR_TO_FAR_MODE_FUNCTIONS := \
    221         Bs3TrapInit \
    222 
    223 bs3kit-common-16_VBOX_FAR_TO_NEAR_CMN_FUNCTIONS := \
    224         ASMMemFirstMismatchingU8:8 \
    225         ASMMemFirstNonZero:6 \
    226 
    227 $(call BS3KIT_FN_GEN_CMN_NEARSTUBS,bs3kit-common-16,$(bs3kit-common-16_VBOX_NEAR_TO_FAR_CMN_FUNCTIONS))
    228 $(call BS3KIT_FN_GEN_MODE_NEARSTUBS,bs3kit-common-16,$(bs3kit-common-16_VBOX_NEAR_TO_FAR_MODE_FUNCTIONS))
    229 $(call BS3KIT_FN_GEN_CMN_FARSTUBS,bs3kit-common-16,$(bs3kit-common-16_VBOX_FAR_TO_NEAR_CMN_FUNCTIONS))
     191
     192$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMMemFirstMismatchingU8,8)
     193$(call BS3KIT_FN_GEN_CMN_FARSTUB,bs3kit-common-16,ASMMemFirstNonZero,6)
     194-include $(PATH_SUB_CURRENT)/bs3kit-autostubs.kmk # manually generated from headers, see bottom of this file.
    230195
    231196# The 32-bit BS3Kit library.
     
    488453bs3kit-mangling-code-undef.h: $(PATH_SUB_CURRENT)/bs3kit-mangling-code-define.h
    489454        $(SED) \
    490                 -e 's/#define \([a-zA-Z_][a-zA-Z0-9_]*\) .*$(DOLLAR)/#undef \1/' \
    491         -e 's/Function needing mangling\./Undefining function mangling - automatically generated by the $@ makefile rule./' \
     455                -e 's/#\( *\)define \([a-zA-Z_][a-zA-Z0-9_]*\) .*$(DOLLAR)/#\1undef \2/' \
     456        -e 's/Function needing mangling.*$(DOLLAR)/Undefining function mangling - automatically generated by the $@ makefile rule./' \
    492457        --output $(dir $<)bs3kit-mangling-code-undef.h \
    493458                $<
    494459
     460#
     461# Rule for regenerating bs3kit-mangling-functions-define.h.
     462#
     463bs3kit-mangling-code-define.h: \
     464                $(PATH_SUB_CURRENT)/bs3kit.h \
     465                $(PATH_SUB_CURRENT)/bs3-cmn-paging.h \
     466                $(PATH_SUB_CURRENT)/bs3-cmn-test.h
     467        $(APPEND) -tn "$(dir $<)$@" \
     468                 '/* $(DOLLAR)Id: $(DOLLAR) */' \
     469                 '/** @file' \
     470                 ' * BS3Kit - Function needing mangling - generated by the $@ makefile rule.' \
     471                 ' */' \
     472                 '' \
     473                 '/*' \
     474                 ' * Copyright (C) 2007-2016 Oracle Corporation' \
     475                 ' *' \
     476                 ' * This file is part of VirtualBox Open Source Edition (OSE), as' \
     477                 ' * available from http://www.virtualbox.org. This file is free software;' \
     478                 ' * you can redistribute it and/or modify it under the terms of the GNU' \
     479                 ' * General Public License (GPL) as published by the Free Software' \
     480                 ' * Foundation, in version 2 as it comes in the "COPYING" file of the' \
     481                 ' * VirtualBox OSE distribution. VirtualBox OSE is distributed in the' \
     482                 ' * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.' \
     483                 ' *' \
     484                 ' * The contents of this file may alternatively be used under the terms' \
     485                 ' * of the Common Development and Distribution License Version 1.0' \
     486                 ' * (CDDL) only, as it comes in the "COPYING.CDDL" file of the' \
     487                 ' * VirtualBox OSE distribution, in which case the provisions of the' \
     488                 ' * CDDL are applicable instead of those of the GPL.' \
     489                 ' *' \
     490                 ' * You may elect to license modified versions of this file under the' \
     491                 ' * terms and conditions of either the GPL or the CDDL or both.' \
     492                 ' */' \
     493                 ''
     494        $(SED) -n \
     495                -e 's/^ *BS3_CMN_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
     496                -e 's/^ *BS3_CMN_PROTO_NOSB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
     497                -e 's/^ *BS3_CMN_PROTO_FARSTUB([^,]*,[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/#define \1 BS3_CMN_MANGLER(\1)/p' \
     498                $< | sort >> "$(dir $<)bs3kit-mangling-code-define.h"
     499        $(APPEND) -n "$(dir $<)$@" '#ifndef BS3_CMN_ONLY'
     500        $(SED) -n \
     501                -e 's/^ *BS3_MODE_PROTO_STUB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
     502                -e 's/^ *BS3_MODE_PROTO_NOSB([^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
     503                -e 's/^ *BS3_MODE_PROTO_FARSTUB([^,]*,[^,]*, *\([a-zA-Z_][a-zA-Z0-9_]*\) *,.*$(DOLLAR)/# define \1 BS3_MODE_MANGLER(\1)/p' \
     504                $< | sort >> "$(dir $<)bs3kit-mangling-code-define.h"
     505        $(APPEND) -n "$(dir $<)$@" '#endif /* !BS3_CMN_ONLY */'
     506
     507#
     508# Rule for regenerating bs3kit-autostubs.kmk.
     509#
     510bs3kit-autostubs.kmk: \
     511                $(PATH_SUB_CURRENT)/bs3kit.h \
     512                $(PATH_SUB_CURRENT)/bs3-cmn-memory.h \
     513                $(PATH_SUB_CURRENT)/bs3-cmn-paging.h \
     514                $(PATH_SUB_CURRENT)/bs3-cmn-test.h
     515        $(APPEND) -tn "$(dir $<)$@" \
     516                 '# $(DOLLAR)Id: $(DOLLAR)' \
     517                 '## @file' \
     518                 '# BS3Kit - Automatic near/far stubs - generated by the $@ makefile rule.' \
     519                 '#' \
     520                 '' \
     521                 '#' \
     522                 '# Copyright (C) 2007-2016 Oracle Corporation' \
     523                 '#' \
     524                 '# This file is part of VirtualBox Open Source Edition (OSE), as' \
     525                 '# available from http://www.virtualbox.org. This file is free software;' \
     526                 '# you can redistribute it and/or modify it under the terms of the GNU' \
     527                 '# General Public License (GPL) as published by the Free Software' \
     528                 '# Foundation, in version 2 as it comes in the "COPYING" file of the' \
     529                 '# VirtualBox OSE distribution. VirtualBox OSE is distributed in the' \
     530                 '# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.' \
     531                 '#' \
     532                 '# The contents of this file may alternatively be used under the terms' \
     533                 '# of the Common Development and Distribution License Version 1.0' \
     534                 '# (CDDL) only, as it comes in the "COPYING.CDDL" file of the' \
     535                 '# VirtualBox OSE distribution, in which case the provisions of the' \
     536                 '# CDDL are applicable instead of those of the GPL.' \
     537                 '#' \
     538                 '# You may elect to license modified versions of this file under the' \
     539                 '# terms and conditions of either the GPL or the CDDL or both.' \
     540                 '#' \
     541                 ''
     542        $(SED) -n \
     543                -e '/^ *BS3_CMN_PROTO_STUB/p' \
     544                -e '/^ *BS3_CMD_PROTO_FARSTUB/p' \
     545                -e '/^ *BS3_MODE_PROTO_STUB/p' \
     546                -e '/^ *BS3_MODE_PROTO_FARSTUB/p' \
     547                $< \
     548        | sort \
     549        | $(SED) -n \
     550                -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' \
     551                -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' \
     552                -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' \
     553                -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' \
     554                --append "$(dir $<)$@"
     555
     556bs3kit-update:: bs3kit-autostubs.kmk bs3kit-mangling-code-define.h bs3kit-mangling-code-undef.h
     557.NOTPARALLEL:   bs3kit-autostubs.kmk bs3kit-mangling-code-define.h bs3kit-mangling-code-undef.h
     558
    495559
    496560include $(FILE_KBUILD_SUB_FOOTER)
Note: See TracChangeset for help on using the changeset viewer.

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