blob: 07fbd60476d1ef3b620d1d20121f20cf71d13b78 [file] [log] [blame]
/** @file
bhyve firmware configuration access
Copyright (c) 2020, Rebecca Cran <rebecca@bsdio.com>
Copyright (c) 2015 Nahanni Systems
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _BHYVE_FW_CTL_LIB_
#define _BHYVE_FW_CTL_LIB_
/**
Sysctl-like interface to read host information via a dot-separated
ASCII OID.
The information is copied into the buffer specified by Item. The
size of the buffer is given by the location specified by Size
before the call, and that location gives the amount of data copied
after a successfull call, and after a call that returns a truncated
value with an error return of RETURN_BUFFER_TOO_SMALL.
The size of the available data can be determined by passing a NULL
argument for Item. The size will be returned in the location pointed
to by Size.
@param[] Name - ASCII OID name
@param[] Data - return buffer pointer
@param[] Size - pointer to length
@return RETURN_SUCCESS Valid data/len returned.
RETURN_UNSUPPORTED f/w interface not present.
RETURN_NOT_FOUND OID not found.
RETURN_BUFFER_TOO_SMALL Return message truncated.
RETURN_INVALID_PARAMETER Buffer too large.
RETURN_PROTOCOL_ERROR Unknown error from host.
**/
RETURN_STATUS
EFIAPI
BhyveFwCtlGet (
IN CONST CHAR8 *Name,
OUT VOID *Item,
IN OUT UINTN *Size
);
#endif /* _BHYVE_FW_CTL_LIB_ */