2N/A * PDM - Pluggable Device Manager, EFI NVRAM storage back-end. 2N/A * Copyright (C) 2012-2013 Oracle Corporation 2N/A * This file is part of VirtualBox Open Source Edition (OSE), as 2N/A * you can redistribute it and/or modify it under the terms of the GNU 2N/A * General Public License (GPL) as published by the Free Software 2N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 2N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 2N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 2N/A * The contents of this file may alternatively be used under the terms 2N/A * of the Common Development and Distribution License Version 1.0 2N/A * (CDDL) only, as it comes in the "COPYING.CDDL" file of the 2N/A * VirtualBox OSE distribution, in which case the provisions of the 2N/A * CDDL are applicable instead of those of the GPL. 2N/A * You may elect to license modified versions of this file under the 2N/A * terms and conditions of either the GPL or the CDDL or both. 2N/A/** @defgroup grp_pdm_ifs_nvram NVRAM Interface 2N/A * @ingroup grp_pdm_interfaces 2N/A/** Pointer to NVRAM interface provided by the driver. */ 2N/A * Non-volatile RAM storage interface provided by the driver (up). 2N/A * @note The variable indexes used here 0-based, sequential and without gaps. 2N/A * Query a variable by variable index. 2N/A * @returns VBox status code. * @retval VERR_NOT_FOUND if the variable was not found. This indicates that * there are not variables with a higher index. * @param idxVariable The variable index. By starting @a idxVariable at 0 * and increasing it with each call, this can be used * to enumerate all available variables. * @param pVendorUuid The vendor UUID of the variable. * @param pszName The variable name buffer. * @param pcchName On input this hold the name buffer size (including * the space for the terminator char). On successful * return it holds the strlen() value for @a pszName. * @param pfAttributes Where to return the value attributes. * @param pbValue The value buffer. * @param pcbValue On input the size of the value buffer, on output the * actual number of bytes returned. * Begins variable store sequence. * @returns VBox status code. * @param pInterance Pointer to this interface structure. * @param cVariables The number of variables. * Puts the next variable in the store sequence. * @returns VBox status code. * @param idxVariable The variable index. This will start at 0 and advance * up to @a cVariables - 1. * @param pVendorUuid The vendor UUID of the variable. * @param pszName The variable name buffer. * @param pcchName On input this hold the name buffer size (including * the space for the terminator char). On successful * return it holds the strlen() value for @a pszName. * @param fAttributes The value attributes. * @param pbValue The value buffer. * @param pcbValue On input the size of the value buffer, on output the * actual number of bytes returned. * Ends a variable store sequence. * @returns VBox status code, @a rc on success. * @param pInterance Pointer to this interface structure. * @param rc The VBox status code for the whole store operation. /** PDMINVRAMCONNECTOR interface ID. */