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

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)