From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- src/VBox/Installer/win/StubBld/VBoxStubBld.h | 88 ++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/VBox/Installer/win/StubBld/VBoxStubBld.h (limited to 'src/VBox/Installer/win/StubBld/VBoxStubBld.h') diff --git a/src/VBox/Installer/win/StubBld/VBoxStubBld.h b/src/VBox/Installer/win/StubBld/VBoxStubBld.h new file mode 100644 index 00000000..b0a4c382 --- /dev/null +++ b/src/VBox/Installer/win/StubBld/VBoxStubBld.h @@ -0,0 +1,88 @@ +/* $Id: VBoxStubBld.h $ */ +/** @file + * VBoxStubBld - VirtualBox's Windows installer stub builder. + */ + +/* + * Copyright (C) 2009-2023 Oracle and/or its affiliates. + * + * This file is part of VirtualBox base platform packages, as + * available from https://www.virtualbox.org. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, in version 3 of the + * License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#ifndef VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h +#define VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h +#ifndef RT_WITHOUT_PRAGMA_ONCE +# pragma once +#endif + +#include +#include + +/**/ +#define VBOXSTUB_MAX_PACKAGES 128 + +/** */ +#define VBOXSTUBPKGHEADER_MAGIC_SZ "VBoxInstV1\0\0\0\0" + +/** + * VBox installer stub header, aka "MANIFEST". + * + * This just holds the number of packages present in the image. + */ +typedef struct VBOXSTUBPKGHEADER +{ + /** Magic value/string (VBOXSTUBPKGHEADER_MAGIC_SZ) */ + char szMagic[11 + 4]; + /** Number of packages following the header. */ + uint8_t cPackages; +} VBOXSTUBPKGHEADER; +AssertCompileSize(VBOXSTUBPKGHEADER, 16); +typedef VBOXSTUBPKGHEADER *PVBOXSTUBPKGHEADER; + +typedef enum VBOXSTUBPKGARCH +{ + /** Always extract. */ + VBOXSTUBPKGARCH_ALL = 1, + /** Extract on x86 hosts. */ + VBOXSTUBPKGARCH_X86, + /** Extract on AMD64 hosts. */ + VBOXSTUBPKGARCH_AMD64 +} VBOXSTUBPKGARCH; + +/** + * Package header/descriptor. + * + * This is found as "HDR_xx" where xx is replaced by the decimal package number, + * zero padded to two digits. + */ +typedef struct VBOXSTUBPKG +{ + /** The architecture for the file. */ + VBOXSTUBPKGARCH enmArch; + /** The name of the resource holding the file bytes. + * This is a pointless field, because the resource name is "BIN_xx" + * corresponding to the name of the resource containing this struct. */ + char szResourceName[28]; + /** The filename. */ + char szFilename[224]; +} VBOXSTUBPKG; +AssertCompileSize(VBOXSTUBPKG, 256); +typedef VBOXSTUBPKG *PVBOXSTUBPKG; + +#endif /* !VBOX_INCLUDED_SRC_StubBld_VBoxStubBld_h */ -- cgit v1.2.3