/* privcomm.h private communication constants and function prototypes public == for use by the host system code and/or by the DSP system code private == for use by the developers of the communication system only This file has three parts: I, II, III. See below. */ /* =========================================================================== */ /* I. Items here are for use by software running in the host or in the DSP. */ /* =========================================================================== */ #define IMPORT 0 #define EXPORT 1 #define DAV 2 #define ACK 3 #define EOM 4 #define ABORT 5 #define MTU 1024 #define LOOKUPS 3 typedef struct { int32 id; int32 timestamp; int32 return_add; int32 size; } t_head; typedef struct { t_head header; int32 message[MTU]; } transport; typedef struct { int32 boot[16]; /* reserved for DSP's system download code */ int32 signals; transport packet ; int32 flags[NUM_FLAGS]; } dpr; #ifdef I_AM_HOST /* =============================================================== */ /* II. Items here are for use by software running in the host. */ /* =============================================================== */ #define PORT_OFFSET DPRAM_SIZE #define TMESSID(x) io_base[x]->packet.header.id #define TTIME(x) io_base[x]->packet.header.timestamp #define TRETURN(x) io_base[x]->packet.header.return_add #define TSIZE(x) io_base[x]->packet.header.size #define FLAG(x,y) io_base[x]->flags[y] #define DO_T_HEAD(x) io_base[x]->packet.header.id = mess_id; \ io_base[x]->packet.header.timestamp = time; \ io_base[x]->packet.header.return_add = iam; \ io_base[x]->packet.header.size = remain #define MCIW(x) x->ciw #define MSIZE(x) x->len #define MDEST(x) x->dsp /* ----------------------- */ /* function prototypes */ /* ----------------------- */ int get_port( int ); void set_port( int, int ); int sys_set (int, int); int sys_clear (int, int); int sys_wait (int, int); int sys_nwait (int, int); /* int copy_header (void); FIXME -- Is this needed? */ void copy (int32 *, int32 *, int32 ); void zero (int32 *, int32 ); int look (int, int); /* void com_aborted( int ); FIXME -- Is this needed? */ int __check_mess (int); #endif #ifdef I_AM_DSP /* =============================================================== */ /* III. Items here are for use by software running in the DSP. */ /* =============================================================== */ /* ---------------------- */ /* function prototypes */ /* ---------------------- */ #define TMESSID(x) io_base->packet.header.id #define TTIME(x) io_base->packet.header.timestamp #define TRETURN(x) io_base->packet.header.return_add #define TSIZE(x) io_base->packet.header.size #define FLAG(y) io_base->flags[y] #define DO_T_HEAD(x) io_base->packet.header.id = mess_id; \ io_base->packet.header.timestamp = time; \ io_base->packet.header.return_add = iam; \ io_base->packet.header.size = remain #define MCIW(x) x->ciw #define MSIZE(x) x->len int sys_set (int); int sys_clear (int); int sys_wait (int); int sys_nwait (int); int copy_header (void); void copy (int *, int *, int); void zero (int *, int); int look (int); void com_aborted (int); int __check_mess (void); #endif