summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc/ap1000/apservice.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
committer <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
commit19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch)
tree40b1cb534496a7f1ca0f5c314a523c69f1fee464 /include/asm-sparc/ap1000/apservice.h
parent7206675c40394c78a90e74812bbdbf8cf3cca1be (diff)
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'include/asm-sparc/ap1000/apservice.h')
-rw-r--r--include/asm-sparc/ap1000/apservice.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/include/asm-sparc/ap1000/apservice.h b/include/asm-sparc/ap1000/apservice.h
new file mode 100644
index 000000000..902e774d6
--- /dev/null
+++ b/include/asm-sparc/ap1000/apservice.h
@@ -0,0 +1,111 @@
+ /*
+ * 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
+ */
+/* this defines service requests that can be made by the cells of the
+ front end "bootap" server
+
+ tridge, March 1996
+ */
+#ifndef _APSERVICE_H
+#define _APSERVICE_H
+#ifdef __KERNEL__
+#include <linux/sched.h>
+#endif
+
+#ifndef _ASM_
+
+/* all requests start with this structure */
+struct cap_request {
+ unsigned header; /* for the hardware */
+ int size; /* the total request size in bytes, including this header */
+ int cid; /* the cell it came from */
+ int type; /* the type of request */
+ int data[4]; /* misc data */
+};
+
+/* Initialisation data to be sent to boot cell program */
+struct cap_init {
+ int bootcid; /* base cid to boot */
+ int numcells; /* number of cells */
+ int physcells; /* physical number of cells */
+ unsigned long baseIP; /* IP address of cell 0 */
+ unsigned long netmask; /* netmask of cells net */
+ int gdbcell; /* what cell is the debugger running on */
+ unsigned init_time; /* time at startup */
+};
+#endif
+
+/* what fake host number to use for the aliased IP device */
+#define AP_ALIAS_IP 2
+
+/* request types */
+#define REQ_WRITE 0
+#define REQ_SHUTDOWN 1
+#define REQ_LOAD_AOUT 2
+#define REQ_PUTCHAR 3
+#define REQ_GETBOOTARGS 4
+#define REQ_PUTDEBUGCHAR 5
+#define REQ_GETDEBUGCHAR 6
+#define REQ_OPENNET 7
+#define REQ_IP 8
+#define REQ_BREAK 9
+#define REQ_INIT 10
+#define REQ_PUTDEBUGSTRING 11
+#define REQ_BREAD 12
+#define REQ_BWRITE 13
+#define REQ_BOPEN 14
+#define REQ_BCLOSE 15
+#define REQ_DDVOPEN 16
+#define REQ_BIF_TOKEN 17
+#define REQ_KILL 18
+#define REQ_SCHEDULE 19
+
+/* the bit used to indicate that the host wants the BIF */
+#define HOST_STATUS_BIT 2
+
+#ifdef __KERNEL__
+/* some prototypes */
+extern int ap_dma_wait(int ch);
+extern int ap_dma_go(unsigned long ch,unsigned int p,int size,unsigned long cmd);
+extern int mpp_cid(void);
+extern void ap_start_debugger(void);
+extern int bif_queue(struct cap_request *req,char *buf,int bufsize);
+extern void write_bif_polled(char *buf1,int len1,char *buf2,int len2);
+extern void read_bif(char *buf,int size);
+extern void ap_wait_request(struct cap_request *req,int type);
+extern void bif_set_poll(int set);
+extern void ap_led(unsigned char d);
+extern void ap_xor_led(unsigned char d);
+extern void ap_set_led(unsigned char d);
+extern void ap_unset_led(unsigned char d);
+extern void bif_toss(int size);
+void ap_msc_init(void);
+void mac_dma_complete(void);
+void ap_dbg_flush(void);
+void bif_queue_flush(void);
+/* void ap_printk(char *msg,int a1,int a2,int a3,int a4,int a5); */
+void show_mapping_ctx(unsigned *ctp,int context,unsigned Vm);
+void async_fault(unsigned long address, int write, int taskid,
+ void (*callback)(int,unsigned long,int,int));
+void ap_bif_init(void);
+void ap_tnet_init(void);
+int wait_on_int(volatile int *p,int x,int interval);
+void ap_put(int dest_cell,u_long local_addr,int size,
+ u_long remote_addr,u_long dest_flag,u_long local_flag);
+void ap_bput(u_long local_addr,int size,
+ u_long remote_addr,u_long dest_flag,u_long local_flag);
+void msc_switch_check(struct task_struct *tsk);
+int bif_queue_nocopy(struct cap_request *req,char *buf,int bufsize);
+void mpp_set_gang_factor(int factor);
+void bif_register_request(int type,void (*fn)(struct cap_request *));
+void bif_add_debug_key(char key,void (*fn)(void),char *description);
+void ap_complete(struct cap_request *creq);
+void ap_reboot(char *bootstr);
+#endif
+
+
+#endif /* _APSERVICE_H */