cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; $Id$
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;; @file
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Boot Sector 2 with big instruction test image template. For use with
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; bootsector2-vbinstst-kernel.asm. Requires:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; VBoxManage setextradata bs-vbinstst-64-1 VBoxInternal/Devices/VMMDev/0/Config/TestingEnabled 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Copyright (C) 2007-2014 Oracle Corporation
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; available from http://www.virtualbox.org. This file is free software;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; you can redistribute it and/or modify it under the terms of the GNU
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; General Public License (GPL) as published by the Free Software
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; The contents of this file may alternatively be used under the terms
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; of the Common Development and Distribution License Version 1.0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; VirtualBox OSE distribution, in which case the provisions of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; CDDL are applicable instead of those of the GPL.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; You may elect to license modified versions of this file under the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; terms and conditions of either the GPL or the CDDL or both.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Set up the assembler environment.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "bootsector2-first.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "bootsector2-api.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "bootsector2-template-footer.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%ifdef BS2_BIG_IMAGE_LM64
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %define TMPL_LM64
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %include "bootsector2-template-header.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync BITS 64
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%elifdef BS2_BIG_IMAGE_PAE32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %define TMPL_PAE32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %include "bootsector2-template-header.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync BITS 32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%elifdef BS2_BIG_IMAGE_PP32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %define TMPL_PP32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %include "bootsector2-template-header.mac"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync BITS 32
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%else
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync %error Do not know which mode to run in.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov bad,instr
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%endif
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ORG BS2_BIG_LOAD_ADDR
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; The entry point is the first byte in the image.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncbs2_big_image_start:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncentrypoint:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mov xAX, .s_szTestName
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call [TMPL_NM_CMN(g_pfnTestInit) xWrtRIP]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call TMPL_NM(TestInstrMain)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync call [TMPL_NM_CMN(g_pfnTestTerm) xWrtRIP]
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync.hltloop:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync hlt
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync jmp .hltloop
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync.s_szTestName:
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync db BS2_BIG_IMAGE_GEN_TEST_NAME, 0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync; Instantiate the template code.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync%include "BS2_BIG_IMAGE_GEN_SOURCE_FILE"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync