From 16f504a9dca3fe3b70568f67b7d41241ae485288 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:49:04 +0200 Subject: Adding upstream version 7.0.6-dfsg. Signed-off-by: Daniel Baumann --- src/VBox/Storage/VDBackendsInline.h | 125 ++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 src/VBox/Storage/VDBackendsInline.h (limited to 'src/VBox/Storage/VDBackendsInline.h') diff --git a/src/VBox/Storage/VDBackendsInline.h b/src/VBox/Storage/VDBackendsInline.h new file mode 100644 index 00000000..976c8692 --- /dev/null +++ b/src/VBox/Storage/VDBackendsInline.h @@ -0,0 +1,125 @@ +/* $Id: VDBackendsInline.h $ */ +/** @file + * VD - backends inline helpers. + */ + +/* + * Copyright (C) 2017-2022 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 + */ + +/******************************************************************************* +* Header Files * +*******************************************************************************/ + +#ifndef VBOX_INCLUDED_SRC_Storage_VDBackendsInline_h +#define VBOX_INCLUDED_SRC_Storage_VDBackendsInline_h +#ifndef RT_WITHOUT_PRAGMA_ONCE +# pragma once +#endif + +#include + +RT_C_DECLS_BEGIN + +/** + * Stub for VDIMAGEBACKEND::pfnGetComment when the backend doesn't suport comments. + * + * @returns VBox status code. + * @param a_StubName The name of the stub. + */ +#define VD_BACKEND_CALLBACK_GET_COMMENT_DEF_NOT_SUPPORTED(a_StubName) \ + static DECLCALLBACK(int) a_StubName(void *pBackendData, char *pszComment, size_t cbComment) \ + { \ + RT_NOREF2(pszComment, cbComment); \ + LogFlowFunc(("pBackendData=%#p pszComment=%#p cbComment=%zu\n", pBackendData, pszComment, cbComment)); \ + AssertPtrReturn(pBackendData, VERR_VD_NOT_OPENED); \ + LogFlowFunc(("returns %Rrc comment='%s'\n", VERR_NOT_SUPPORTED, pszComment)); \ + return VERR_NOT_SUPPORTED; \ + } \ + typedef int ignore_semicolon + + +/** + * Stub for VDIMAGEBACKEND::pfnSetComment when the backend doesn't suport comments. + * + * @returns VBox status code. + * @param a_StubName The name of the stub. + * @param a_ImageStateType Type of the backend image state. + */ +#define VD_BACKEND_CALLBACK_SET_COMMENT_DEF_NOT_SUPPORTED(a_StubName, a_ImageStateType) \ + static DECLCALLBACK(int) a_StubName(void *pBackendData, const char *pszComment) \ + { \ + RT_NOREF1(pszComment); \ + LogFlowFunc(("pBackendData=%#p pszComment=\"%s\"\n", pBackendData, pszComment)); \ + a_ImageStateType pThis = (a_ImageStateType)pBackendData; \ + AssertPtrReturn(pThis, VERR_VD_NOT_OPENED); \ + int rc = VERR_NOT_SUPPORTED; \ + if (pThis->uOpenFlags & VD_OPEN_FLAGS_READONLY) \ + rc = VERR_VD_IMAGE_READ_ONLY; \ + LogFlowFunc(("returns %Rrc\n", rc)); \ + return rc; \ + } \ + typedef int ignore_semicolon + + +/** + * Stub for VDIMAGEBACKEND::pfnGetUuid when the backend doesn't suport UUIDs. + * + * @returns VBox status code. + * @param a_StubName The name of the stub. + */ +#define VD_BACKEND_CALLBACK_GET_UUID_DEF_NOT_SUPPORTED(a_StubName) \ + static DECLCALLBACK(int) a_StubName(void *pBackendData, PRTUUID pUuid) \ + { \ + RT_NOREF1(pUuid); \ + LogFlowFunc(("pBackendData=%#p pUuid=%#p\n", pBackendData, pUuid)); \ + AssertPtrReturn(pBackendData, VERR_VD_NOT_OPENED); \ + LogFlowFunc(("returns %Rrc (%RTuuid)\n", VERR_NOT_SUPPORTED, pUuid)); \ + return VERR_NOT_SUPPORTED; \ + } \ + typedef int ignore_semicolon + + +/** + * Stub for VDIMAGEBACKEND::pfnSetComment when the backend doesn't suport UUIDs. + * + * @returns VBox status code. + * @param a_StubName The name of the stub. + * @param a_ImageStateType Type of the backend image state. + */ +#define VD_BACKEND_CALLBACK_SET_UUID_DEF_NOT_SUPPORTED(a_StubName, a_ImageStateType) \ + static DECLCALLBACK(int) a_StubName(void *pBackendData, PCRTUUID pUuid) \ + { \ + RT_NOREF1(pUuid); \ + LogFlowFunc(("pBackendData=%#p Uuid=%RTuuid\n", pBackendData, pUuid)); \ + a_ImageStateType pThis = (a_ImageStateType)pBackendData; \ + AssertPtrReturn(pThis, VERR_VD_NOT_OPENED); \ + int rc = VERR_NOT_SUPPORTED; \ + if (pThis->uOpenFlags & VD_OPEN_FLAGS_READONLY) \ + rc = VERR_VD_IMAGE_READ_ONLY; \ + LogFlowFunc(("returns %Rrc\n", rc)); \ + return rc; \ + } \ + typedef int ignore_semicolon + +RT_C_DECLS_END + +#endif /* !VBOX_INCLUDED_SRC_Storage_VDBackendsInline_h */ -- cgit v1.2.3