wut  v1.5.0
Wii U Toolchain
Data Structures | Typedefs | Enumerations | Functions

IOS <-> PPC message dequeue. More...

Collaboration diagram for SMD:

Data Structures

struct  SmdVectorSpec
 
struct  SmdVector
 
struct  SmdElement
 
struct  SmdReceiveData
 
struct  SmdInterface
 
struct  SmdCtrlTable
 
struct  SmdPpcCtrlTableVectors
 
struct  SmdPpc
 
struct  SmdSimpleBufPool
 
union  SmdElement.__unnamed9__
 
union  SmdReceiveData.__unnamed11__
 

Typedefs

typedef struct SmdVectorSpec SmdVectorSpec
 
typedef struct SmdVector SmdVector
 
typedef struct SmdElement SmdElement
 
typedef struct SmdReceiveData SmdReceiveData
 
typedef struct SmdInterface SmdInterface
 
typedef struct SmdCtrlTable SmdCtrlTable
 
typedef struct SmdPpcCtrlTableVectors SmdPpcCtrlTableVectors
 
typedef struct SmdPpc SmdPpc
 
typedef struct SmdSimpleBufPool SmdSimpleBufPool
 
typedef enum SmdLockType SmdLockType
 
typedef enum SmdPpcState SmdPpcState
 
typedef enum SmdInterfaceState SmdInterfaceState
 
typedef enum SmdElementType SmdElementType
 

Enumerations

enum  SmdLockType {
  SMD_LOCK_TYPE_MUTEX = 0 ,
  SMD_LOCK_TYPE_DISABLE_INTERRUPTS = 1 ,
  SMD_LOCK_TYPE_NONE = 2
}
 
enum  SmdPpcState {
  SMD_PPC_STATE_INVALID = 0 ,
  SMD_PPC_STATE_INITIALIZED = 1 ,
  SMD_PPC_STATE_CLOSED = 2 ,
  SMD_PPC_STATE_OPENED = 3
}
 
enum  SmdInterfaceState {
  SMD_INTERFACE_STATE_OPENED = 0x2222 ,
  SMD_INTERFACE_STATE_CLOSED = 0x3333
}
 
enum  SmdElementType {
  SMD_ELEMENT_TYPE_MESSAGE = 0 ,
  SMD_ELEMENT_TYPE_VECTOR_SPEC = 1 ,
  SMD_ELEMENT_TYPE_VECTOR = 2
}
 

Functions

SmdPpcsmdPpcInit (void *buf, uint32_t bufSize, uint32_t messageCount, const char *name, SmdLockType lockType)
 
int32_t smdPpcGetCtrlTableVectors (SmdPpc *smd, SmdPpcCtrlTableVectors *outVectors)
 
int32_t smdPpcOpen (SmdPpc *smd)
 
int32_t smdPpcClose (SmdPpc *smd)
 
int32_t smdPpcGetInterfaceState (SmdPpc *smd, SmdInterfaceState *outPpcState, SmdInterfaceState *outIopState)
 
int32_t smdPpcReceive (SmdPpc *smd, SmdReceiveData *data)
 
int32_t smdPpcSendMessage (SmdPpc *smd, void *message, uint32_t messageSize)
 
int32_t smdPpcSendVectorSpec (SmdPpc *smd, uint32_t command, SmdVectorSpec *specs, int32_t specsCount)
 
int32_t smdPpcSendVector (SmdPpc *smd, SmdVector *vector)
 
SmdSimpleBufPoolsmdSimpleBufPoolCreate (void *poolData, uint32_t poolDataSize, uint32_t allocSize, uint32_t allocCount, SmdLockType lockType)
 
int32_t smdSimpleBufAlloc (SmdSimpleBufPool *pool, void **outAlloc)
 
int32_t smdSimpleBufFree (SmdSimpleBufPool *pool, void *alloc)
 
int32_t smdSimpleBufGetStatistics (SmdSimpleBufPool *pool, uint32_t *allocCount, uint32_t *freeErrorCount)
 

Detailed Description

IOS <-> PPC message dequeue.


Data Structure Documentation

◆ SmdVectorSpec

struct SmdVectorSpec

Definition at line 58 of file smd.h.

Data Fields
void * ptr
uint32_t size

◆ SmdVector

struct SmdVector

Definition at line 67 of file smd.h.

Data Fields
uint32_t command
int32_t count
SmdVectorSpec vecs[4]

◆ SmdElement

struct SmdElement

Definition at line 78 of file smd.h.

Data Fields
SmdElementType type
uint32_t size
union SmdElement __unnamed__

◆ SmdReceiveData

struct SmdReceiveData

Definition at line 95 of file smd.h.

Data Fields
SmdElementType type
uint32_t size
union SmdReceiveData __unnamed__

◆ SmdInterface

struct SmdInterface

Definition at line 112 of file smd.h.

Data Fields
SmdInterfaceState state
uint32_t elementCount
int32_t readOffset
int32_t writeOffset
uint32_t bufPaddr

◆ SmdCtrlTable

struct SmdCtrlTable

Definition at line 132 of file smd.h.

Data Fields
char name[0x10]
uint32_t reusedCount
SmdInterface iopInterface
SmdInterface ppcInterface

◆ SmdPpcCtrlTableVectors

struct SmdPpcCtrlTableVectors

Definition at line 148 of file smd.h.

Data Fields
SmdCtrlTable * ctrlTable
uint32_t ctrlTableSize
SmdElement * writeBuf
uint32_t writeBufSize
SmdElement * readBuf
uint32_t readBufSize

◆ SmdPpc

struct SmdPpc

Definition at line 165 of file smd.h.

Data Fields
SmdPpc * self
SmdCtrlTable * ctrlTable
SmdLockType lockType
OSMutex mutex
uint32_t messageCount
SmdElement * writeBuf
SmdElement * readBuf
SmdPpcState state

◆ SmdSimpleBufPool

struct SmdSimpleBufPool

Definition at line 187 of file smd.h.

Data Fields
SmdSimpleBufPool * self
OSMutex mutex
void * poolData
uint32_t poolDataSize
SmdLockType lockType
uint32_t allocSize
uint32_t realAllocSize
uint32_t maxAllocCount
void * allocPoolStart
void * allocPoolEnd
uint32_t elementsIn
uint32_t freeErrorCount

◆ SmdElement.__unnamed9__

union SmdElement.__unnamed9__

Definition at line 82 of file smd.h.

Data Fields
uint8_t data[0xf8]
SmdVector spec
uint32_t vectorPaddr

◆ SmdReceiveData.__unnamed11__

union SmdReceiveData.__unnamed11__

Definition at line 99 of file smd.h.

Data Fields
uint8_t message[0x80]
SmdVector spec
SmdVector * vector

Typedef Documentation

◆ SmdVectorSpec

typedef struct SmdVectorSpec SmdVectorSpec

Definition at line 1 of file smd.h.

◆ SmdVector

typedef struct SmdVector SmdVector

Definition at line 1 of file smd.h.

◆ SmdElement

typedef struct SmdElement SmdElement

Definition at line 1 of file smd.h.

◆ SmdReceiveData

Definition at line 1 of file smd.h.

◆ SmdInterface

typedef struct SmdInterface SmdInterface

Definition at line 1 of file smd.h.

◆ SmdCtrlTable

typedef struct SmdCtrlTable SmdCtrlTable

Definition at line 1 of file smd.h.

◆ SmdPpcCtrlTableVectors

Definition at line 1 of file smd.h.

◆ SmdPpc

typedef struct SmdPpc SmdPpc

Definition at line 1 of file smd.h.

◆ SmdSimpleBufPool

Definition at line 1 of file smd.h.

◆ SmdLockType

typedef enum SmdLockType SmdLockType

◆ SmdPpcState

typedef enum SmdPpcState SmdPpcState

◆ SmdInterfaceState

◆ SmdElementType

Enumeration Type Documentation

◆ SmdLockType

Enumerator
SMD_LOCK_TYPE_MUTEX 

Locking is done with a mutex.

SMD_LOCK_TYPE_DISABLE_INTERRUPTS 

Locking is done by disabling interrupts.

SMD_LOCK_TYPE_NONE 

No locking is done.

Definition at line 27 of file smd.h.

◆ SmdPpcState

Enumerator
SMD_PPC_STATE_INVALID 
SMD_PPC_STATE_INITIALIZED 
SMD_PPC_STATE_CLOSED 
SMD_PPC_STATE_OPENED 

Definition at line 37 of file smd.h.

◆ SmdInterfaceState

Enumerator
SMD_INTERFACE_STATE_OPENED 
SMD_INTERFACE_STATE_CLOSED 

Definition at line 45 of file smd.h.

◆ SmdElementType

Enumerator
SMD_ELEMENT_TYPE_MESSAGE 
SMD_ELEMENT_TYPE_VECTOR_SPEC 
SMD_ELEMENT_TYPE_VECTOR 

Definition at line 51 of file smd.h.

Function Documentation

◆ smdPpcInit()

SmdPpc* smdPpcInit ( void *  buf,
uint32_t  bufSize,
uint32_t  messageCount,
const char *  name,
SmdLockType  lockType 
)

◆ smdPpcGetCtrlTableVectors()

int32_t smdPpcGetCtrlTableVectors ( SmdPpc smd,
SmdPpcCtrlTableVectors outVectors 
)

◆ smdPpcOpen()

int32_t smdPpcOpen ( SmdPpc smd)

◆ smdPpcClose()

int32_t smdPpcClose ( SmdPpc smd)

◆ smdPpcGetInterfaceState()

int32_t smdPpcGetInterfaceState ( SmdPpc smd,
SmdInterfaceState outPpcState,
SmdInterfaceState outIopState 
)

◆ smdPpcReceive()

int32_t smdPpcReceive ( SmdPpc smd,
SmdReceiveData data 
)

◆ smdPpcSendMessage()

int32_t smdPpcSendMessage ( SmdPpc smd,
void *  message,
uint32_t  messageSize 
)

◆ smdPpcSendVectorSpec()

int32_t smdPpcSendVectorSpec ( SmdPpc smd,
uint32_t  command,
SmdVectorSpec specs,
int32_t  specsCount 
)

◆ smdPpcSendVector()

int32_t smdPpcSendVector ( SmdPpc smd,
SmdVector vector 
)

◆ smdSimpleBufPoolCreate()

SmdSimpleBufPool* smdSimpleBufPoolCreate ( void *  poolData,
uint32_t  poolDataSize,
uint32_t  allocSize,
uint32_t  allocCount,
SmdLockType  lockType 
)

◆ smdSimpleBufAlloc()

int32_t smdSimpleBufAlloc ( SmdSimpleBufPool pool,
void **  outAlloc 
)

◆ smdSimpleBufFree()

int32_t smdSimpleBufFree ( SmdSimpleBufPool pool,
void *  alloc 
)

◆ smdSimpleBufGetStatistics()

int32_t smdSimpleBufGetStatistics ( SmdSimpleBufPool pool,
uint32_t *  allocCount,
uint32_t *  freeErrorCount 
)