GpaGetFuncTable¶
Syntax¶
GpaStatus GpaGetFuncTable(
void* gpa_func_table);
Description¶
Gets the GPA API function table. gpa_func_table
is both an input and output
parameter, whose type is GpaFunctionTable*
. Prior to calling this function
the major_version
and minor_version
should be set by the caller. When
compiling in C++ mode, these will be set automatically. When compiling in C
mode, they will need to be set manually to
GPA_FUNCTION_TABLE_MAJOR_VERSION_NUMBER and
GPA_FUNCTION_TABLE_MINOR_VERSION_NUMBER, respectively. After execution of this
function, the major_version
and minor_version
members will be set to the
major and minor version of the GPUPerfAPI library that is loaded. If the
versions are determined to be incompatible, the function will return an error.
The minor version of the function table is calculated as the size of the
function table structure. This allows for additional functions to be added to
the end of the table in future versions, while still maintaining
backwards-compatibility. If the minor version number specified by the caller is
lower than the minor version number of the GPUPerfAPI library, GPA_GetFuncTable
will assign the function pointers of the input structure up to the size of the
structure (as specified by the minor version). The caller can detect this
situation by checking the value of minor_version
after successful execution.
If the value is larger than the original value, the caller can infer that the
version of the GPUPerfAPI library loaded has some additional API functions
available that were not present in older versions of the library. The caller
can recompile using the newer GPUPerfAPI header files to gain access to the new
functions.
If non-backwards compatible changes are ever made in a new version of
GPUPerfAPI, the major version of the API table will be incremented. Examples of
non-backwards compatible changes would be removal of a public function or
changing the signature of a public function. In the case where the major
version number specified by the caller differs from the major version number
of the GPUPerfAPI library, this function will set the major_version
member to
the major version of the GPUPerfAPI library that was loaded and return an error.
Parameters¶
Name | Description |
---|---|
gpa_func_table |
Pointer to the GPA function table structure. |
Return value¶
Return value | Description |
---|---|
kGpaStatusOk | The function table was successfully retrieved. |
kGpaStatusErrorNullPointer | The supplied gpa_func_table parameter is NULL. |
kGpaStatusErrorLibLoadMajorVersionMismatch | The major version specified by the caller is different from the major version of the GPUPerfAPI library that was loaded. |
kGpaStatusErrorLibLoadMinorVersionMismatch | The minor version specified by the caller is greater than the major version of the GPUPerfAPI library that was loaded. |
kGpaStatusErrorException | Exception occurred. |