|
AM273x MCU+ SDK
08.06.00
|
|
Go to the documentation of this file.
33 #ifndef SIPC_NOTIFY_MAILBOX_H_
34 #define SIPC_NOTIFY_MAILBOX_H_
45 #define MAILBOX_MAX_SW_QUEUE_STRUCT_SIZE (sizeof(SIPC_SwQueue))
62 typedef struct SIPC_SwQueue_
76 volatile uint32_t rdIdx = swQ->
rdIdx;
77 volatile uint32_t wrIdx = swQ->
wrIdx;
79 if(rdIdx < swQ->Qlength && wrIdx < swQ->Qlength)
93 #
if defined(__aarch64__) || defined(__arm__)
94 __asm__ __volatile__(
"dsb sy" "\n\t": : :
"memory");
95 __asm__ __volatile__(
"isb" "\n\t": : :
"memory");
110 volatile uint32_t rdIdx = swQ->
rdIdx;
111 volatile uint32_t wrIdx = swQ->
wrIdx;
113 if(rdIdx < swQ->Qlength && wrIdx < swQ->Qlength)
115 if( ( (wrIdx+1)%swQ->
Qlength ) != rdIdx )
117 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
123 wrIdx = (wrIdx+1)%swQ->
Qlength;
129 #
if defined(__aarch64__) || defined(__arm__)
130 __asm__(
"dsb sy" "\n\t": : :
"memory");
131 __asm__(
"isb" "\n\t": : :
"memory");
135 *addr = (1U << (wrIntrBitPos));
145 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
151 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
158 volatile uint32_t *addr = ( uint32_t *)mailboxBaseAddr;
164 extern uint32_t gSIPCCoreIntrBitPos[];
166 uint32_t isPending = 0;
167 isPending = pendingIntr & (1 << gSIPCCoreIntrBitPos[coreId]);
static uint32_t SIPC_mailboxIsPendingIntr(uint32_t pendingIntr, uint32_t coreId)
Definition: sipc_notify_mailbox.h:162
uint32_t wrIdx
Definition: sipc_notify_mailbox.h:65
uint32_t rdIdx
Definition: sipc_notify_mailbox.h:64
static int32_t SIPC_mailboxWrite(uint32_t mailboxBaseAddr, uint32_t wrIntrBitPos, SIPC_SwQueue *swQ, uint8_t *Buff)
Definition: sipc_notify_mailbox.h:106
uint8_t * Qfifo
Definition: sipc_notify_mailbox.h:68
static uint32_t SIPC_mailboxGetPendingIntr(uint32_t mailboxBaseAddr)
Definition: sipc_notify_mailbox.h:149
uint16_t Qlength
Definition: sipc_notify_mailbox.h:67
SIPC swQ structure which holds the data pointer to a fifo Queue in HSM MBOX memory.
Definition: sipc_notify_mailbox.h:63
#define SystemP_SUCCESS
Return status when the API execution was successful.
Definition: SystemP.h:56
#define SystemP_FAILURE
Return status when the API execution was not successful due to a failure.
Definition: SystemP.h:61
uint16_t EleSize
Definition: sipc_notify_mailbox.h:66
static void SIPC_mailboxClearPendingIntr(uint32_t mailboxBaseAddr, uint32_t pendingIntr)
Definition: sipc_notify_mailbox.h:156
static void SIPC_mailboxClearAllInt(uint32_t mailboxBaseAddr)
Definition: sipc_notify_mailbox.h:143
static int32_t SIPC_mailboxRead(SIPC_SwQueue *swQ, uint8_t *Buff)
Definition: sipc_notify_mailbox.h:72