RetroArch
Functions | Variables
arqueue.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <lwp.h>
#include "asm.h"
#include "processor.h"
#include "arqueue.h"
Include dependency graph for arqueue.c:

Functions

static __inline__ void __ARQPopTaskQueueHi ()
 
static void __ARQCallbackDummy (ARQRequest *req)
 
static void __ARQCallbackSync (ARQRequest *req)
 
static void __ARQServiceQueueLo ()
 
static void __ARInterruptServiceRoutine ()
 
void ARQ_Init ()
 
void ARQ_Reset ()
 
void ARQ_SetChunkSize (u32 size)
 
u32 ARQ_GetChunkSize ()
 
void ARQ_FlushQueue ()
 
void ARQ_PostRequestAsync (ARQRequest *req, u32 owner, u32 dir, u32 prio, u32 aram_addr, u32 mram_addr, u32 len, ARQCallback cb)
 Enqueue a ARAM DMA transfer request. More...
 
void ARQ_PostRequest (ARQRequest *req, u32 owner, u32 dir, u32 prio, u32 aram_addr, u32 mram_addr, u32 len)
 Enqueue a ARAM DMA transfer request. More...
 
void ARQ_RemoveRequest (ARQRequest *req)
 
u32 ARQ_RemoveOwnerRequest (u32 owner)
 

Variables

static u32 __ARQChunkSize
 
static u32 __ARQInitFlag = 0
 
static lwpq_t __ARQSyncQueue
 
static lwp_queue __ARQReqQueueLo
 
static lwp_queue __ARQReqQueueHi
 
static ARQRequest__ARQReqPendingLo
 
static ARQRequest__ARQReqPendingHi
 
static ARQCallback __ARQCallbackLo = NULL
 
static ARQCallback __ARQCallbackHi = NULL
 

Function Documentation

◆ __ARInterruptServiceRoutine()

static void __ARInterruptServiceRoutine ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ __ARQCallbackDummy()

static void __ARQCallbackDummy ( ARQRequest req)
static
Here is the caller graph for this function:

◆ __ARQCallbackSync()

static void __ARQCallbackSync ( ARQRequest req)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ __ARQPopTaskQueueHi()

static __inline__ void __ARQPopTaskQueueHi ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ __ARQServiceQueueLo()

static void __ARQServiceQueueLo ( )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ARQ_FlushQueue()

void ARQ_FlushQueue ( )
Here is the call graph for this function:

◆ ARQ_GetChunkSize()

u32 ARQ_GetChunkSize ( )

◆ ARQ_Init()

void ARQ_Init ( )
Here is the call graph for this function:

◆ ARQ_PostRequest()

void ARQ_PostRequest ( ARQRequest req,
u32  owner,
u32  dir,
u32  prio,
u32  aram_addr,
u32  mram_addr,
u32  len 
)

Enqueue a ARAM DMA transfer request.

Parameters
[in]reqstructure to hold ARAM DMA request informations.
[in]ownerunique owner id.
[in]dirdirection of ARAM DMA transfer.
[in]priopriority of request.
[in]aram_addrstartaddress of buffer to be pushed onto the queue. NOTE: Must be 32-bytealigned.
[in]mram_addrlength of data to be pushed onto the queue.
[in]lenstartaddress of buffer to be pushed onto the queue. NOTE: Must be 32-bytealigned.
[in]cblength of data to be pushed onto the queue.
Returns
none
Here is the call graph for this function:

◆ ARQ_PostRequestAsync()

void ARQ_PostRequestAsync ( ARQRequest req,
u32  owner,
u32  dir,
u32  prio,
u32  aram_addr,
u32  mram_addr,
u32  len,
ARQCallback  cb 
)

Enqueue a ARAM DMA transfer request.

Parameters
[in]reqstructure to hold ARAM DMA request informations.
[in]ownerunique owner id.
[in]dirdirection of ARAM DMA transfer.
[in]priopriority of request.
[in]aram_addrstartaddress of buffer to be pushed onto the queue. NOTE: Must be 32-bytealigned.
[in]mram_addrlength of data to be pushed onto the queue.
[in]lenstartaddress of buffer to be pushed onto the queue. NOTE: Must be 32-bytealigned.
[in]cblength of data to be pushed onto the queue.
Returns
none
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ARQ_RemoveOwnerRequest()

u32 ARQ_RemoveOwnerRequest ( u32  owner)
Here is the call graph for this function:

◆ ARQ_RemoveRequest()

void ARQ_RemoveRequest ( ARQRequest req)
Here is the call graph for this function:

◆ ARQ_Reset()

void ARQ_Reset ( )

◆ ARQ_SetChunkSize()

void ARQ_SetChunkSize ( u32  size)

Variable Documentation

◆ __ARQCallbackHi

ARQCallback __ARQCallbackHi = NULL
static

◆ __ARQCallbackLo

ARQCallback __ARQCallbackLo = NULL
static

◆ __ARQChunkSize

u32 __ARQChunkSize
static

◆ __ARQInitFlag

u32 __ARQInitFlag = 0
static

◆ __ARQReqPendingHi

ARQRequest* __ARQReqPendingHi
static

◆ __ARQReqPendingLo

ARQRequest* __ARQReqPendingLo
static

◆ __ARQReqQueueHi

lwp_queue __ARQReqQueueHi
static

◆ __ARQReqQueueLo

lwp_queue __ARQReqQueueLo
static

◆ __ARQSyncQueue

lwpq_t __ARQSyncQueue
static