NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
DU Interface Reference

Detailed Description

Initialize C&C connection to the DRIVE Update Master.

defined Boot Health Check callback function.

Close an active C&C connection.

Retrieves all known version information about currently installed image or the image pending installation.

Retrieve current DRIVE Update status.

Request DRIVE Update to switch to another run level.

Return current active run level of DRIVE Update.

Return current C&C API version.

This function should be only called once before closing the connection. This function is not thread safe.

Spec

Parameters
[in]trType(DUTR_TR_TYPE)Type of back-end transport protocol used.
[in]seType(DUTR_SEC_TYPE)Type of security protocol.
[in]pTrParam(const_PDUTR_TR_PARAM)Pointer to the argument of selected transport protocol. For instance, if trType is DUTR_TR_TYPE_IVC, then it shall point to the structure DUTR_IVC_PARAM.
[in]pSeParam(const_PDUTR_SEC_PARAM)Pointer to the argument of selected security protocol. For instance, if seType is DUTR_SEC_TYPE_TLS, then it shall point to the structure DUTR_SEC_TLS_PARAM.
[in,out]ppDucc(PDUCC*)Pointer to initialized DUCC handle.
Returns
DUCC_Success Upon success.
ERR_InvalidArgument NULL argument was passed. DU Tranasport failed to init the connection.
  • Connection details was not valid.
  • Another application already using the connection.
ERR_OperationNotPermitted DUCC already initialized.
ERR_UnableConnect Could not start listener thread.


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges:
    • NVSCIIPC permissions
    • nvdriveupdate_ivc_2 IVC channel
  • API group
    • Init: Yes
    • Runtime: No
    • De-Init: No

Currently, this API will be returning version 1.

Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
[in,out]pVersion(uint32_t*)Returned version number, this variable is caller allocated.
Returns
DUCC_Success Upon success.
ERR_InvalidArgument NULL argument was passed.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges: None
  • API group
    • Init: No
    • Runtime: Yes
    • De-Init: No

This may be different from most recently requested run level.

Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
[in,out]pRunLevel(DU_RUN_LEVEL*)Returned run level, this variable is caller allocated.
Returns
DUCC_Success Upon success.
ERR_InvalidArgument NULL argument was passed.
ERR_NoActiveConnection DUCC is not initialized. Connection was aborted.
ERR_Busy DUCC is currently running other command.
ERR_BufferTooSmall Failed to allocate buffer for sending data. Failed to receive return data.
ERR_InvalidResponse Invalid Response returned from remote.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges:
    • NVSCIIPC permissions
    • nvdriveupdate_ivc_2 IVC channel
  • API group
    • Init: No
    • Runtime: Yes
    • De-Init: No

This function is non-blocking. It doesn't ensure switch to requested run level immediately.

Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
[in]reqRunLevel(DU_RUN_LEVEL)Requested run level.
Returns
DUCC_Success Upon success.
ERR_InvalidArgument Runlevel passed was invalid.
ERR_NoActiveConnection DUCC is not initialized. Connection was aborted.
ERR_Busy DUCC is currently running other command.
ERR_BufferTooSmall Failed to allocate buffer for sending data. Failed to receive return data.
ERR_OperationNotPermitted Run level can't be set.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges:
    • NVSCIIPC permissions
    • nvdriveupdate_ivc_2 IVC channel
  • API group
    • Init: No
    • Runtime: Yes
    • De-Init: No

Notice if progress is returned as PR_NONE it means the progress is undefined. Otherwise, it should be an unsigned int between 0 and PR_MAX.

Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
[in,out]pStatus(DUCC_Status*)Current DRIVE Update status, this struct is caller allocated.
Returns
DUCC_Success Upon success.
ERR_InvalidArgument NULL argument was passed.
ERR_NoActiveConnection DUCC is not initialized. Connection was aborted.
ERR_Busy DUCC is currently running other command.
ERR_BufferTooSmall Failed to allocate buffer for sending data. Failed to receive return data.
ERR_InvalidResponse Invalid Response returned from remote.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges:
    • NVSCIIPC permissions
    • nvdriveupdate_ivc_2 IVC channel
  • API group

    • Init: No
    • Runtime: Yes
    • De-Init: No

    Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
[in]image(DUCC_Image)Specifies which version info to be retrieved.
[in,out]pVersionBuf(versionBuffer*)Caller allocated buffer to hold retrieved version information. It would contain a series of versionEntry to get possible version name and its value. Can be NULL to get requested buffer size.
[in,out]pVersionBufsize(uint32_t*)Size of passed in buffer. If pVersionBuf is passed as NULL or this number is too small, the minimal size of buffer needed is returned.
Returns
DUCC_Success Upon success.
ERR_BufferTooSmall pVersionBuf is passed as NULL or pVersionBufsize was too small.
ERR_InvalidArgument NULL argument was passed.
ERR_NotImplemented DUCC_IMG_PENDING was passed.
ERR_NoActiveConnection DUCC is not initialized. Connection was aborted.
ERR_Busy DUCC is currently running other command.
ERR_BufferTooSmall Failed to allocate buffer for sending data. Failed to receive return data. Result buffer was too small.
ERR_InvalidResponse Invalid Response returned from remote.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges:
    • NVSCIIPC permissions
    • nvdriveupdate_ivc_2 IVC channel
  • API group

    • Init: No
    • Runtime: Yes
    • De-Init: No

    Spec

Parameters
[in]pDuccInfo(PDUCC)Pointer to DUCC handle.
Returns
DUCC_Success Upon success.
Precondition
DUCC_Init should already be called


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: Yes
    • Async/Sync: Sync
  • Required privileges: None
  • API group
    • Init: Yes
    • Runtime: No
    • De-Init: Yes

@language C

Returns
true Success on boot health check.
false Failure on boot health check.

The documentation for this interface was generated from the following file: