patch-2.4.19 linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/i2o.h
Next file: linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/memory.h
Previous file: linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/flashdrv.h
Back to the patch index
Back to the overall index
- Lines: 62
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/include/asm-mips/galileo-boards/evb64120A/i2o.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -urN linux-2.4.18/include/asm-mips/galileo-boards/evb64120A/i2o.h linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/i2o.h
@@ -0,0 +1,61 @@
+/* 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 */
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)