diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1997-04-29 21:13:14 +0000 |
commit | 19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch) | |
tree | 40b1cb534496a7f1ca0f5c314a523c69f1fee464 /include/asm-sparc/ap1000/apservice.h | |
parent | 7206675c40394c78a90e74812bbdbf8cf3cca1be (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.h | 111 |
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 */ |