|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 10419 (0x28b3) Types: TextFile Names: »cmdidx.h«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦3b20aab50⟧ »EurOpenD3/network/snmp/kip-snmp.91.tar.Z« └─⟦b503a39fe⟧ └─⟦this⟧ »kip/fp/cmdidx.h« └─⟦this⟧ »kip/fp3.0/cmdidx.h«
/* ** Copyright (C) 1987 Kinetics, Inc. All Rights Reserved. ** This program contains proprietary confidential information ** and trade secrets of Kinetics, Inc. Reverse engineering ** of object code is prohibited. Use of copyright notice ** is precautionary and does not imply publication. ** ** ** ** Indices into the jump table for PROM routines. ** Also, the command numbers for the routines when invoked ** from Kinetics LAP type command packets. ** The values of these constants are actually determined by ** their position in the jump table in .../proms/kfpx.s. ** See cmdmacro.h for the actual calls through the jump table. ** After the indices are defined, structure definitions for ** each call's pointer parameter are also defined.. */ #define X_VERSION 0 #define X_EXECUTE 1 #define X_ACK 2 #define X_REBOOT 3 #define X_SET68 4 #define X_SET86 5 #define X_ATINIT 6 #define X_ATWRITE 7 #define X_WAIT 8 #define X_WHEREIS 9 #define X_GETMEM 10 #define X_PROTECT 11 #define X_COPYMEM 12 #define X_CLRMEM 13 #define X_PROMRAM 14 #define X_RESET 15 #define X_USER0 16 #define X_USER1 17 #define X_USER2 18 #define X_USER3 19 #define X_USER4 20 #define X_USER5 21 #define X_USER6 22 #define X_USER7 23 #define X_BUFINIT 24 #define X_BUFGET 25 #define X_BUFFREE 26 #define X_BUFENQ 27 #define X_BUFDEQ 28 #define X_ERR 29 #define X_IDLE 30 #define X_KLAP 31 #define X_WHO 32 #define X_CA86 33 #define X_RES86 34 #define X_CLRINT 35 #define X_RCSID 36 #define X_EXPROM 37 #define X_INIPROM 38 #define X_RES8530 39 #define X_DMTSERV 40 #define X_SREC 41 #define X_SPL 42 #define X_LED 43 #define X_RAND 44 #define X_CMPMEM 45 #define X_SENDF 46 #define X_MEMSEG 47 #define X_MALLOC 48 #define X_FREE 49 #define X_NOTIMP 63 /* structures for the above commands */ /* X_VERSION */ struct fp_version { short fpv_entries; /* number of valid entries in jump table */ short fpv_version; /* version of the prom code */ long fpv_model; /* "KFPS", "KFPQ", or "KFPM" */ }; /* X_EXECUTE */ /* no parameters */ /* X_ACK */ /* no parameters */ /* X_REBOOT */ /* no parameters */ /* X_SET68 */ /* no parameters */ /* X_SET86 */ /* this structure is really defined in ie.h, but it should look like this */ #ifdef NEVER struct scb { unsigned short sc_status; /* status */ unsigned short sc_cmd; /* command */ unsigned short sc_clist; /* command list */ unsigned short sc_rlist; /* receive frame list */ unsigned short sc_crcerrs; /* crc errors */ unsigned short sc_alnerrs; /* alignment errors */ unsigned short sc_rscerrs; /* resource errors (lack of rfd/rbd's) */ unsigned short sc_ovrnerrs; /* overrun errors (mem bus not avail) */ }; #endif NEVER /* X_ATINIT */ /* The parameter is a pointer to a short which is filled in with the node number chosen by the AppleTalk initialization sequence */ /* X_ATWRITE */ struct fp_atwrite { short fpw_length; /* number of bytes in the following string */ unsigned char *fpw_str; /* string to be output onto the network */ }; /* X_WAIT */ /* The parameter is a long integer which indicates the number of milliseconds to delay */ /* X_WHEREIS */ struct fp_whereis { char *fpw_rom0; /* first address of 1st ROM */ char *fpw_rom1; /* first address of 2nd ROM */ char *fpw_8530; /* address of Zilog 8530 chip */ char *fpw_0port; /* address of 1st 8-bit port */ char *fpw_1port; /* address of 2nd 8-bit port */ char *fpw_ram2; /* address of 1st RAM location */ char *fpw_ramtop; /* address of last RAM location */ }; /* X_GETMEM and X_CLRMEM and X_BUFINIT */ struct fp_mem { unsigned short fpm_count; /* number of bytes */ char *fpm_memp; /* addr of allocated or to be cleared memory */ }; /* X_PROTECT */ struct fp_proelem { /* protection array element */ unsigned short fpp_count; /* number of bytes to protect */ char *fpp_memp; /* address of memory to protect */ unsigned short fpp_chksum; /* checksum of protected memory */ }; struct fp_protect { short fpt_oper; /* type of protection operation and result */ short fpt_count; /* number of elements in protection array */ struct fp_proelem *fpt_elem; /* addr 1st element in protection array */ }; /* fpt_oper operations */ #define PR_FAIL -1 /* result: check of checksums failed */ #define PR_PASS 0 /* result: check of checksums passed */ #define PR_PROTECT 1 /* operation: start protect via elem array */ #define PR_CHECK 2 /* operation: verify protect via elem array */ #define PR_CANCEL 3 /* operation: cancel protect via elem array */ /* X_COPYMEM and X_CMPMEM */ struct fp_copy { char *fpc_from; /* location to copy/cmp bytes from */ char *fpc_to; /* location to copy/cmp bytes to */ unsigned short fpc_count; /* number of bytes to copy/cmp */ }; /* X_PROMRAM */ struct fp_bufinfo { struct pbuf **fpb_pfree;/* beginning of the free list */ struct pqueue *fpb_pq; /* received buffers queue (both networks) */ struct pqueue *fpb_sendq;/* Ethernet transmit queue */ short fpb_bsize; /* size of a buffer including header */ short fpb_pbnfree; /* pbufs on our free list */ short fpb_pbndrops; /* times failed to find space */ short fpb_pbntypes[16];/* type specific pbuf allocations */ }; struct fp_state { unsigned short fps_atnet; /* current net number for AppleTalk side */ unsigned short fps_etnet; /* current net number for Ethernet side */ unsigned char fps_valid; /* following AppleTalk node number valid */ unsigned char fps_node; /* current AppleTalk LAP node number */ unsigned char fps_netw; /* network number (not used) */ unsigned char fps_bridge; /* last known bridge num on net if any */ unsigned char fps_ether[6]; /* current ethernet address */ #define SNAMESIZE 21 /* extra char for null at end */ char fps_name[SNAMESIZE];/* ascii name of the gateway */ char fps_file[SNAMESIZE];/* ascii name of srec file last loaded */ unsigned char fps_pforce; /* non-zero forces execution of prom loop */ unsigned char fps_reserve; unsigned char fps_unused[4]; #define ZNAMESIZE 33 /* extra char for null at end */ char fps_atzone[ZNAMESIZE]; /* zone name for AppleTalk side */ char fps_etzone[ZNAMESIZE]; /* zone name for Ethernet side */ unsigned char fps_spare[128];/* old proms didn't have this space */ }; /* defines for fps_netw */ #define DDP_NETW 0x00 /* DDP version of the code is loaded */ #define UDP_NETW 0xFF /* UDP version of the code is loaded */ struct fp_abstats { int fpa_interrupts; /* Appletalk interrupts */ int fpa_ipackets; /* packets received */ int fpa_opackets; /* packets transmitted */ int fpa_crc; /* crc errors */ int fpa_ovr; /* receive overrun errors */ int fpa_iund; /* receive underrun errors */ int fpa_xx; int fpa_yy; int fpa_bad; /* bad packets received */ int fpa_coll; /* collisions */ int fpa_defer; /* times deferred to other packets */ int fpa_idleto; /* packets that timed out waiting for the end */ int fpa_zz; int fpa_nodata; /* packets without data (nothing after rts) */ int fpa_ound; /* transmit underrun errors */ int fpa_badddp; /* bad ddp packets */ int fpa_spur; /* spurrious interrupts */ }; struct fp_iestats { struct scb *fpi_scbptr; /* status control block */ int fpi_ipackets; /* input packets */ int fpi_opackets; /* output packets */ int fpi_ierrors; /* input errors */ int fpi_oerrors; /* output errors */ int fpi_cmdbusy; /* busy waits */ }; /* ** the max size for the following structure is 64 */ struct fp_promram { short fpr_count; /* number of valid ptrs that follow */ struct fp_table **fpr_jtable; /* jump table */ struct fp_bufinfo *fpr_bufs; /* buffer manager vector */ struct fp_state *fpr_state; /* Prompt program's state vector */ struct fp_abstats *fpr_abstats; /* AppleTalk statistics vector */ struct fp_iestats *fpr_iestats; /* Ethernet statistics vector */ char *fpr_1debug; /* first level debug flag */ char *fpr_2debug; /* second level debug flag */ char *fpr_3debug; /* third level debug flag */ char fpr_unused[30]; /* remaining ptrs are not defined yet */ }; /* X_RESET */ /* no parameters */ /* X_USER0, X_USER1, X_USER2, X_USER3, X_USER4, X_USER5, X_USER6, X_USER7 */ /* parameters (if any) defined by user */ /* X_BUFGET */ struct fp_bget { struct pbuf *fpg_buf; /* address of buffer returned */ short fpg_type; /* type of buffer to be "gotten" */ }; /* X_BUFFREE */ struct fp_bfree { struct pbuf *fpf_buf; /* address of buffer to be freed */ struct pbuf *fpf_nxt; /* the freed buffer's link before it was freed*/ }; /* X_BUFENQ and X_BUFDEQ */ struct fp_bqueue { struct pqueue *fpq_q; /* addr of queue to enqueue to / dequeue from */ struct pbuf *fpq_buf; /* addr of buffer to be enqueued or dequeued */ }; /* X_ERR */ /* no parameters */ /* X_IDLE */ /* no parameters */ /* X_KLAP */ /* The parameter is the address of a pbuf structure. See pbuf.h. */ /* X_WHO */ /* no parameters */ /* X_CA86 */ /* no parameters */ /* X_RES86 */ /* no parameters */ /* X_CLRINT */ /* no parameters */ /* X_RCSID */ /* The parameter is the address of a character array which is filled in with the current RCS identification string of this PROM version. */ /* X_EXPROM */ /* no parameters */ /* X_INIPROM */ /* no parameters */ /* X_RES8530 */ /* no parameters */ /* X_DMTSERV */ /* no parameters */ /* X_SREC */ /* The parameter is the address of a character array which contains the S-record to be interpreted and used by the gateway */ /* X_SPL */ /* The parameter is the address of a short which becomes the next processor priority level. The previous priority level is returned at same location */ /* X_LED */ struct fp_led { char fpl_leds; /* bit field: each bit is an led */ char fpl_state; /* LED_ON, LED_OFF, LED_TOGGLE */ }; /* constants for fpl_onoff */ #define LED_OFF 0 #define LED_ON 1 #define LED_TOGGLE 2 /* if on, off. if off, on */ /* X_RAND */ /* The parameter is the address of a long integer which has a new random number in it when the call returns. */ /* X_SENDF */ /* The parameter is the address of a stack location which contains a format string address and followed by the variable number of arguments which are required by that format string */ /* X_MEMSEG, X_MALLOC, X_FREE */ struct fp_malloc { union { long fpo_size; /* bytes, for memseg and malloc */ unsigned char *fpo_area; /* ptr to area, for free */ } fpo_parm; }; /* X_NOTIMP */ /* no parameters */