i2o.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
- /* i2o.h - Header file for the I2O`s interface */
- /* Copyright - Galileo technology. */
- #ifndef __INCi2oh
- #define __INCi2oh
- /* includes */
- #include "core.h"
- /* typedefs */
- typedef enum _i2oMessageReg{MESSAGE_REG_0,MESSAGE_REG_1} I2O_MESSAGE_REG;
- typedef enum _cirQueSize{I20_16K = 0x1,I20_32K = 0x2,I20_64K = 0x4,
- I20_128K = 0x8,I20_256K = 0xc} CIRCULAR_QUEUE_SIZE;
- /* Message handle Functions */
- unsigned int getInBoundMassege(I2O_MESSAGE_REG messageRegNum);
- bool sendOutBoundMassege(I2O_MESSAGE_REG messageRegNum,unsigned int message);
- bool checkInBoundIntAndClear(I2O_MESSAGE_REG messageRegNum);
- bool outBoundMessageAcknowledge(I2O_MESSAGE_REG messageRegNum);
- bool maskInBoundMessageInterrupt(I2O_MESSAGE_REG messageRegNum);
- bool enableInBoundMessageInterrupt(I2O_MESSAGE_REG messageRegNum);
- bool maskOutBoundMessageInterrupt(I2O_MESSAGE_REG messageRegNum);
- bool enableOutBoundMessageInterrupt(I2O_MESSAGE_REG messageRegNum);
- /* Doorbell handle Functions */
- unsigned int readInBoundDoorBellInt(void);
- bool initiateOutBoundDoorBellInt(unsigned int interruptBits);
- bool clearInBoundDoorBellInt(unsigned int interruptBits);
- bool isInBoundDoorBellInterruptSet(void);
- bool isOutBoundDoorBellInterruptSet(void); /* For acknowledge */
- bool maskInBoundDoorBellInterrupt(void);
- bool enableInBoundDoorBellInterrupt(void);
- bool maskOutBoundDoorBellInterrupt(void);
- bool enableOutBoundDoorBellInterrupt(void);
- /* I2O - Circular Queues handle Functions */
- /* initialization */
- bool circularQueueEnable(CIRCULAR_QUEUE_SIZE cirQueSize,
- unsigned int queueBaseAddr);
- /* Inbound Post Queue */
- unsigned int inBoundPostQueuePop(void);
- bool isInBoundPostQueueInterruptSet(void);
- bool clearInBoundPostQueueInterrupt(void);
- void maskInBoundPostQueueInterrupt(void);
- void enableInBoundPostQueueInterrupt(void);
- /* Outbound Post Queue */
- bool outBoundPostQueuePush(unsigned int data);
- bool isOutBoundPostQueueEmpty(void);
- /* Inbound Free Queue */
- bool inBoundFreeQueuePush(unsigned int data);
- bool isInBoundFreeQueueEmpty(void);
- /* Outbound Free Queue */
- unsigned int outBoundFreeQueuePop(void);
- #endif /* __INCi2oh */