patch-2.1.23 linux/include/asm-sparc/ap1000/DdvReqTable.h

Next file: linux/include/asm-sparc/ap1000/apbif.h
Previous file: linux/include/asm-ppc/processor.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.22/linux/include/asm-sparc/ap1000/DdvReqTable.h linux/include/asm-sparc/ap1000/DdvReqTable.h
@@ -0,0 +1,107 @@
+  /*
+   * Copyright 1996 The Australian National University.
+   * Copyright 1996 Fujitsu Laboratories Limited
+   * 
+   * This software may be distributed under the terms of the Gnu
+   * Public License version 2 or later
+  */
+/*
+ *	Request table size
+ */
+
+#define	TABLE_SIZE	200
+
+/*
+ *	Indirect memory address table size
+ */
+
+#define	MTABLE_SIZE	1000
+
+static inline int INC_T(int a)
+{
+	return (++a == TABLE_SIZE?0:a);
+}
+
+static inline int INC_ML(int a)
+{
+	return (++a == MTABLE_SIZE?0:a);
+}
+
+/*
+ *	Status of requiest table
+ */
+
+#define	DDV_ERROR_RETURN	0
+#define	DDV_NORMAL_RETURN	1
+#define	DDV_REQ_FREE		2
+#define DDV_DISKREAD_REQ	3
+#define	DDV_DISKWRITE_REQ	4
+#define DDV_RAWREAD_REQ		5
+#define	DDV_RAWWRITE_REQ	6
+#define DDV_CACHEPOSTALL_REQ    11
+#define DDV_CACHEFLUSHALL_REQ    12
+#define DDV_CAPACITY_REQ        13
+
+/*
+ *      Specify type of interrupt (set by opiu in PBUF1)
+ */
+
+#define DDV_PRINTK_INTR  1
+#define DDV_MLIST_INTR   2
+#define DDV_READY_INTR   3
+#define DDV_REQCOMP_INTR 4 
+
+struct  RequestInformation {
+	volatile int	status;
+	int rtn;
+	unsigned bnum;
+	int argv[8];
+};
+
+struct DiskInfo {
+  u_long blocks;
+  u_long blk_size;
+  int pad[8];
+  unsigned ptrs[4];
+};
+
+struct RequestTable{
+  volatile unsigned cell_pointer;	/* Cell requiest pointer */
+  volatile unsigned ddv_pointer;	/* DDV operation pointer */
+  struct  RequestInformation async_info[TABLE_SIZE];
+  volatile unsigned start_mtable;
+  volatile unsigned end_mtable;
+  unsigned mtable[MTABLE_SIZE];
+};
+
+#define PRINT_BUFS 32
+
+struct OPrintBuf {
+  char *fmt;
+  int args[6];
+};
+
+struct OPrintBufArray {
+  volatile unsigned option_counter;
+  volatile unsigned cell_counter;
+  struct OPrintBuf bufs[PRINT_BUFS];  
+};
+
+#define ALIGN_SIZE 16
+#define ALIGN_BUFS 128
+#define ALIGN_BUF_SIZE 1024
+
+struct AlignBuf {
+  char *dest;
+  unsigned size;
+  int offset;
+  char buf[ALIGN_BUF_SIZE+2*ALIGN_SIZE];
+};
+
+struct OAlignBufArray {
+  volatile unsigned option_counter;
+  volatile unsigned cell_counter;
+  struct AlignBuf bufs[ALIGN_BUFS];
+};
+
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov