Veritas NetBackup™ DataStore SDK Programmer's Guide for XBSA 1.1.0
- Introduction to NetBackup XBSA
- How to set up the SDK
- Using the NetBackup XBSA interface
- NetBackup XBSA data structures
- NetBackup XBSA environment
- XBSA sessions and transactions
- Creating a NetBackup XBSA application
- Initiating a session
- Backup - creating an object
- Query - finding an object descriptor
- Restore - retrieving an object's data
- Delete - deleting an object or image
- Media IDs - obtaining media IDs
- How to build an XBSA application
- How to run a NetBackup XBSA application
- About How to run a NetBackup XBSA application
- API reference
- Function calls
- Function specifications
- Type definitions
- Process flow and troubleshooting
- How to use the sample files
- Support and updates
- Appendix A. Register authorized locations
Private buffer space
When function calls use the BSA_DataBlock32 structure, a convention lets the NetBackup XBSA interface reserve certain portions of the buffer for its own use. The NetBackup XBSA interface can reserve the following areas:
A contiguous area starting at offset 0 (that is, the start of the buffer)
A contiguous area that ends at the end of the buffer (that is, the tail of the buffer)
The area that is reserved for the XBSA application is as follows:
A contiguous area that lies in between the Header and Trailer
To make this preference known to the XBSA application, the NetBackup XBSA interface can set certain parameters in the BSA_DataBlock32 structure when a data transfer is initiated. Specifically, when the XBSA application issues either the BSACreateObject() call or the BSAGetObject() call, the BSA_DataBlock32 structure is used for passing the preference of the NetBackup XBSA interface. The parameters set by the NetBackup XBSA interface are described in the following table:
Table: Parameters in the BSA.DATABlock32 Structure
bufferLen == 0
The interface has no restrictions on the buffer length. No trailer portion is required.
bufferLen != 0
The interface accepts the buffers that are at least bufferLen bytes in length (minimum length). It also accepts larger buffers. For a BSASendData() call, the interface accepts a trailer that is as least as large as: trailerBytes >= (bufferLen - numBytes - headerBytes) For a BSAGetData() call, the interface returns a trailer that is not larger than: trailerBytes <= (bufferLen - numBytes - headerBytes)
numBytes == 0
The interface has no restrictions on the length of the data portion of the buffer.
numBytes != 0
The interface accepts (for a BSASendData() call), or returns (for a BSAGetData() call), a data segment that does not exceed numBytes bytes.
headerBytes == 0
The interface only accepts or returns buffers with no header.
headerBytes != 0
The length of the header portion of the buffers that are accepted or returned by the interface is headerBytes bytes.
Subsequent calls to BSAGetData() or BSASendData() must adhere to the preferences that are specified by the NetBackup XBSA interface.
The NetBackup XBSA interface can write anything into the header and trailer area of the actual buffer, as specified by the bufferPtr parameter in the BSA_DataBlock32 structure.
The NetBackup XBSA interface has a buffer size limit of 1 Gigabyte.
For NetBackup XBSA Version 1.1.0, there are no header or trailer requirements. The XBSA specifications define the format that is documented here and can be used in the future by NetBackup.