DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T c

⟦cf4e62c92⟧ TextFile

    Length: 10419 (0x28b3)
    Types: TextFile
    Names: »cmdidx.h«

Derivation

└─⟦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« 

TextFile

/*
**	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 */