PSDK QNX API Guide
HwiP.h File Reference

Hardware Interrupt module for the RTOS Porting Interface. More...

#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  HwiP_Params
 Basic HwiP Parameters. More...
 

Macros

#define HWIP_USE_DEFAULT_PRIORITY   (~((uint32_t)0))
 

Typedefs

typedef void * HwiP_Handle
 Opaque client reference to an instance of a HwiP. More...
 

Enumerations

enum  HwiP_Status {
  HwiP_OK = 0 ,
  HwiP_FAILURE = (-(int32_t)1)
}
 Status codes for HwiP APIs. More...
 

Enumerates the types different trigger types.

#define OSAL_ARM_GIC_TRIG_TYPE_LEVEL   ((uint32_t) 1U)
 
#define OSAL_ARM_GIC_TRIG_TYPE_EDGE   ((uint32_t) 2U)
 
#define OSAL_ARM_GIC_TRIG_TYPE_HIGH_LEVEL   ((uint32_t) 3U)
 
#define OSAL_ARM_GIC_TRIG_TYPE_LOW_LEVEL   ((uint32_t) 4U)
 
#define OSAL_ARM_GIC_TRIG_TYPE_RISING_EDGE   ((uint32_t) 5U)
 
#define OSAL_ARM_GIC_TRIG_TYPE_FALLING_EDGE   ((uint32_t) 6U)
 
typedef uint32_t OSAL_armGicTrigType_t
 Enumerates the types different trigger types. Please refer to Section 4.3.13 Interrupt Configuration Registers, GICD_ICFGRn of ARM Generic Interrupt Controller Architecture version 2.0 Architecture Specification document for details. More...
 
typedef void(* HwiP_Fxn) (uintptr_t arg)
 Prototype for the entry function for a hardware interrupt. More...
 
typedef void(* HwiP_DirectFxn) (void)
 Prototype for the entry function for a hardware interrupt registered using HwiP_createDirect. More...
 
void HwiP_clearInterrupt (uint32_t interruptNum)
 Function to clear a single interrupt. More...
 
HwiP_Handle HwiP_create (uint32_t interruptNum, HwiP_Fxn hwiFxn, const HwiP_Params *hwipParams)
 Function to create an interrupt on CortexM devices. More...
 
HwiP_Handle HwiP_createDirect (uint32_t interruptNum, HwiP_DirectFxn hwiFxn, const HwiP_Params *hwipParams)
 Function to create an interrupt using VIM direct registration. More...
 
HwiP_Status HwiP_delete (HwiP_Handle hwiPhandle)
 Function to delete an interrupt on CortexM devices. More...
 
uintptr_t HwiP_disable (void)
 Function to disable interrupts to enter a critical region. More...
 
void HwiP_disableInterrupt (uint32_t interruptNum)
 Function to disable a single interrupt. More...
 
void HwiP_enableInterrupt (uint32_t interruptNum)
 Function to enable a single interrupt. More...
 
void HwiP_Params_init (HwiP_Params *hwipParams)
 Initialize params structure to default values. More...
 
void HwiP_restore (uintptr_t key)
 Function to restore interrupts to exit a critical region. More...
 
HwiP_Handle HwiP_getHandle (uint32_t interruptNum)
 Function to get HwiP Handle from an interrupt number. More...
 
uint32_t HwiP_getEventId (uint32_t interruptNum)
 Function to get the eventId associated with an interrupt number. More...
 
int32_t HwiP_post (uint32_t interruptNum)
 Function to post the Hwi interrupt by software. More...
 

Detailed Description

Hardware Interrupt module for the RTOS Porting Interface.

============================================================================

The HwiP_disable/HwiP_restore APIs can be called recursively. The order of the HwiP_restore calls, must be in reversed order. For example:

uintptr_t key1, key2;
key1 = HwiP_disable();
key2 = HwiP_disable();
void HwiP_restore(uintptr_t key)
Function to restore interrupts to exit a critical region.
uintptr_t HwiP_disable(void)
Function to disable interrupts to enter a critical region.