NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvsipl::IInterruptStatus Class Reference

Detailed Description

Interface defining Interrupt Status functionality.

Definition at line 48 of file IInterruptStatus.hpp.

Data Structures

struct  InterruptNotification
 Interrupt Notification from hardware device drivers to be delivered to the client. More...
 

Public Member Functions

virtual SIPLStatus GetInterruptStatus (uint32_t const gpioIdx, std::array< InterruptNotification, MAX_DEVGRP_NTFNS_PER_INTR > &intrNtfns) const noexcept
 Requests the driver to query the status of a device in response to an asserted interrupt, and return a list of interrupt notifications to be propagated to the client. More...
 

Protected Member Functions

 IInterruptStatus ()=default
 Constructor. More...
 
 IInterruptStatus (IInterruptStatus const &)=delete
 Prevent IInterruptStatus from being copy constructed. More...
 
 IInterruptStatus (IInterruptStatus &&)=delete
 Prevent IInterruptStatus from being move constructed. More...
 
IInterruptStatusoperator= (IInterruptStatus const &) &=delete
 Prevent IInterruptStatus from being copy assigned. More...
 
IInterruptStatusoperator= (IInterruptStatus &&) &=delete
 Prevent IInterruptStatus from being move assigned. More...
 
virtual ~IInterruptStatus ()=default
 destructor More...
 

Constructor & Destructor Documentation

◆ IInterruptStatus() [1/3]

nvsipl::IInterruptStatus::IInterruptStatus ( )
protecteddefault

Constructor.

◆ IInterruptStatus() [2/3]

nvsipl::IInterruptStatus::IInterruptStatus ( IInterruptStatus const &  )
protecteddelete

Prevent IInterruptStatus from being copy constructed.

◆ IInterruptStatus() [3/3]

nvsipl::IInterruptStatus::IInterruptStatus ( IInterruptStatus &&  )
protecteddelete

Prevent IInterruptStatus from being move constructed.

◆ ~IInterruptStatus()

virtual nvsipl::IInterruptStatus::~IInterruptStatus ( )
protectedvirtualdefault

destructor

Member Function Documentation

◆ GetInterruptStatus()

virtual SIPLStatus nvsipl::IInterruptStatus::GetInterruptStatus ( uint32_t const  gpioIdx,
std::array< InterruptNotification, MAX_DEVGRP_NTFNS_PER_INTR > &  intrNtfns 
) const
inlinevirtualnoexcept

Requests the driver to query the status of a device in response to an asserted interrupt, and return a list of interrupt notifications to be propagated to the client.

If the device emits interrupt(s) muxed to the asserted GPIO pin, its driver is expected to perform a brief and minimal query to the hardware (e.g. to read select status registers) over the communication bus to determine whether it is in a state of error.

Locking and synchronization may be required in the driver, in order to protect the context data and communication bus.

If no error statuses or evidence of interrupt assertions were found in the device(s), NVSIPL_STATUS_OK should be returned unless there were errors in the process of querying for this information.

If neither NVSIPL_STATUS_OK nor NVSIPL_STATUS_NOT_SUPPORTED is returned, then an error notification with code InterruptCode::INTR_STATUS_FAILURE is dispatched to the client and no notifications in intrNtfns are dispatched.

Parameters
[in]gpioIdxCDAC error GPIO index, of type uint32_t. Valid range is [0, UINT_MAX].
[out]intrNtfnsList of interrupt notifications to propagate to the client. The valid parameter of each element must be set to true, otherwise it is considered empty.

The list capacity is MAX_DEVGRP_NTFNS_PER_INTR.

Return values
NVSIPL_STATUS_OKon completion
NVSIPL_STATUS_NOT_SUPPORTEDon invalid configuration
(SIPLStatus)other propagated error


Usage considerations

  • Allowed context for the API call
    • Interrupt handler: No
    • Signal handler: No
    • Thread-safe: Yes
    • Re-entrant: No
    • Async/Sync: Sync
  • Required privileges: Yes, with the following conditions:
    • Grants: nonroot, allow
    • Abilities: public_channel
    • Application needs to have access to the SGIDs that SIPL depends on as mentioned in the NVIDIA DRIVE OS Safety Developer Guide
  • API group
    • Init: No
    • Runtime: Yes
    • De-Init: No

Definition at line 127 of file IInterruptStatus.hpp.

References nvsipl::NVSIPL_STATUS_NOT_SUPPORTED.

◆ operator=() [1/2]

IInterruptStatus& nvsipl::IInterruptStatus::operator= ( IInterruptStatus &&  ) &
protecteddelete

Prevent IInterruptStatus from being move assigned.

◆ operator=() [2/2]

IInterruptStatus& nvsipl::IInterruptStatus::operator= ( IInterruptStatus const &  ) &
protecteddelete

Prevent IInterruptStatus from being copy assigned.


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