Files
m241Neelima/vxworks-6.9/target/h/wrn/wm/demo/pktd.h
T
2026-07-30 11:19:44 +05:30

310 lines
8.6 KiB
C

/* $Header: /usr/cvsroot/target/h/wrn/wm/demo/pktd.h,v 1.1 2001/11/08 16:00:58 tneale Exp $ */
/*
* Copyright (C) 1999-2005 Wind River Systems, Inc.
* All rights reserved. Provided under license only.
* Distribution or other use of this software is only
* permitted pursuant to the terms of a license agreement
* from Wind River Systems (and is otherwise prohibited).
* Refer to that license agreement for terms of use.
*/
/****************************************************************************
* Copyright 1992-1997 Epilogue Technology Corporation.
* Copyright 1998 Integrated Systems, Inc.
* All rights reserved.
*****************************************************************************/
/*
* $Log: pktd.h,v $
* Revision 1.1 2001/11/08 16:00:58 tneale
* Adding header files originally from snark/lib
*
* Revision 2.9 2001/01/19 22:23:48 paul
* Update copyright.
*
* Revision 2.8 2000/03/17 00:12:42 meister
* Update copyright message
*
* Revision 2.7 1998/02/25 04:57:30 sra
* Update copyrights.
*
* Revision 2.6 1998/02/20 23:07:23 sra
* Add multicast and IPv6 support.
*
* Revision 2.5 1998/02/19 07:46:10 sra
* Preliminary multicast support.
*
* Revision 2.4 1997/07/22 20:33:47 mrf
* put constants in correct include file
*
* Revision 2.3 1997/03/20 06:53:05 sra
* DFARS-safe copyright text. Zap!
*
* Revision 2.2 1997/02/25 10:58:16 sra
* Update copyright notice, dust under the bed.
*
* Revision 2.1 1996/03/22 10:05:39 sra
* Update copyrights prior to Attache 3.2 release.
*
* Revision 2.0 1995/05/10 22:38:15 sra
* Attache release 3.0.
*
* Revision 1.3 1995/01/06 00:52:48 sra
* Update copyright notice for 2.1 release.
*
* Revision 1.2 1993/07/31 02:00:54 sra
* Flush boolean_t from this file.
*
* Revision 1.1 1993/07/30 02:41:24 sra
* Initial revision
*
*
* Revision 1.3 1992/12/10 19:32:36 dab
* Added fake PPP stuff for compatibility with FTP's router.
*
* Revision 1.2 1992/10/13 15:59:35 dab
* Fixes for SLIP
*
* Revision 1.1 92/09/18 15:54:43 dab
* Initial revision
*/
/* [clearcase]
modification history
-------------------
01a,20apr05,job update copyright notices
*/
#ifndef _PKTD_H_
#define _PKTD_H_
/*
* The following definitions are from the FTP Software Packet Driver
* specification.
*/
/*
* Range in which the packet driver interrupt may lie
*/
#define PKTDRVR_MIN_INT 0x60
#define PKTDRVR_MAX_INT 0x7F
/*
* The interface classes
*/
#define IC_ETHERNET 1
#define IC_PRONET10 2
#define IC_TOKENRING 3
#define IC_OMNINET 4
#define IC_APPLETALK 5
#define IC_SERIAL_LINE 6
#define IC_STARLAN 7
#define IC_ARCNET 8
#define IC_AX25 9
#define IC_KISS 10
#define IC_8023 11
#define IC_FDDI 12
#define IC_X25 13
#define IC_LANSTAR 14
#define IC_FPPP 16 /* "Fake" PPP (Niwot card) */
/* packet driver code still needs types byte-swapped */
#define PD_ET_IP 0x0008
#define PD_ET_ARP 0x0608
#define PD_ET_IP6 0xDD86
/*
* Packet driver error codes.
*/
#define PDE_NO_ERROR 0 /* Added */
#define PDE_BAD_HANDLE 1
#define PDE_NO_CLASS 2
#define PDE_NO_TYPE 3
#define PDE_NO_NUMBER 4
#define PDE_BAD_TYPE 5
#define PDE_NO_MULTICAST 6
#define PDE_CANT_TERMINATE 7
#define PDE_BAD_MODE 8
#define PDE_NO_SPACE 9 /* Added */
#define PDE_TYPE_INUSE 10 /* Added */
#define PDE_BAD_COMMAND 11 /* Added */
#define PDE_CANT_SEND 12 /* Added */
#define PDE_NO_PKT_DRVR 128 /* Added */
/*
* Interface types (within each class)
*/
#define IT_ANY 0xFFFF
/*
* Devices in the Ethernet class
*/
#define _3COM_3C501 1
#define _3COM_3C505 2
#define INTERLAN_NI5010 3
#define BICC_4110 4
#define BICC_4117 5
#define INTERLAN_NP600 6
#define UB_NIC 8
#define UNIVATION 9
#define TRW_PC2000 10
#define INTERLAN_NI5210 11
#define _3COM_3C503 12
#define _3COM_3C523 13
#define WESTERN_DIGITAL_WD8003 14
/*
* ProNET-10
*/
#define PROTEON_P1300 1
/*
* IEEE 802.5 & IBM Token Ring
*/
#define IBM_TOKEN_RING 1
#define PROTEON_P1340 2
#define PROTEON_P1344 2
/*
* Driver Functionality Codes (bit-mapped, sort of)
*/
#define PDFC_BASIC 1 /* this one isn't bit-mapped */
#define PDFC_EXTENDED 2
#define PDFC_HIGH_PERFORMANCE 4
/*
* Extended driver receive modes
*/
#define PKT_RCVR_OFF 1
#define PKT_RCVR_UNICAST 2 /* unicast only */
#define PKT_RCVR_BCAST 3 /* unicast + b'cast */
#define PKT_RCVR_LIM_MCAST 4 /* unicast + b'cast + some m-cast */
#define PKT_RCVR_ALL_MCAST 5 /* unicast + b'cast + all m-cast */
#define PKT_RCVR_PROMISCUOUS 6 /* everything */
/*
* Define the pkt driver function codes
*/
#define PF_DRIVER_INFO 1
#define PF_ACCESS_TYPE 2
#define PF_RELEASE_TYPE 3
#define PF_SEND_PKT 4
#define PF_TERMINATE 5
#define PF_GET_ADDRESS 6
#define PF_RESET_INTERFACE 7
#define PF_SET_RCV_MODE 20
#define PF_GET_RCV_MODE 21
#define PF_SET_MULTICAST_LIST 22
#define PF_GET_MULTICAST_LIST 23
#define PF_GET_STATISTICS 24
typedef struct {
int version;
int pdtype;
unsigned char class;
unsigned char number;
char far *name;
char basic_flag;
} pkt_driver_info_t;
typedef struct {
long int pkts_in;
long int pkts_out;
long int bytes_in;
long int bytes_out;
long int errors_in;
long int errors_out;
long int packets_dropped;
long int pad[4]; /* Space for FTP Software to add new items. */
/*
* The remaining fields are TRW PC-2000 extensions
*/
long int ints; /* Interrupts */
/*
* XMIT errors...
*/
long int cd_lost; /* Lost Carrier Detect on XMIT */
long int cts_lost; /* Lost Clear-to-send on XMIT */
long int xmit_dma_under; /* XMIT DMA underrun */
long int deferred; /* XMITs deferred */
long int sqe_lost; /* SQE failed to follow XMIT */
long int collisions; /* Collisions during XMIT */
long int ex_collisions; /* XMITs terminated due to excess collisions */
long int toobig; /* User packet too big to XMIT */
long int refused; /* User packet refused, no XMIT resources */
int max_send_pend; /* High water mark of pending transmissions. */
int place_holder_0; /* Place holder for future use */
/*
* RCV errors ...
*/
long int shorts; /* RCVD packets < min length */
long int longs; /* RCVD packets > max length */
long int skipped; /* RCVD packets discarded by software. */
long int crcerrs; /* RCVD packets with CRC errors */
long int alnerrs; /* RCVD pkts w/ alignment errors*/
long int rscerrs; /* RCVD pkts but no 82586 rcv resources */
long int ovrnerrs; /* RCVD pkts lost due to rcv DMA overruns
/* (occurs often using 82586 in loopback) */
long int unwanted; /* RCVD packets skipped by software because */
/* no user wants that type. */
long int user_drops; /* RCVD packets skipped by software because */
/* user would not provide a buffer. */
} pkt_driver_statistics_t;
struct pd_net {
int pd_int;
int handle;
PD_UPCALL_RTN_T *device_receive_rtn;
pkt_driver_info_t drvr_info;
};
/*
* Packet driver routines.
*/
extern int pd_check_int
(int pd_int);
extern int pd_driver_info
(int handle,
struct pd_net *pd_net);
extern int pd_access_type
(struct pd_net *pd_net,
int *handle,
unsigned char far *type,
int type_length);
extern int pd_release_type
(struct pd_net *pd_net,
int handle);
extern int pd_get_address
(struct pd_net *pdnet,
unsigned char far *address_buffer,
int buffer_length);
extern int pd_send_pkt
(struct pd_net *pd_net,
unsigned char far *buffer,
unsigned int buffer_length);
extern char *pd_perror
(int error_code);
extern int pd_get_rcv_mode
(struct pd_net *pdn,
int *mode);
extern int pd_set_rcv_mode
(struct pd_net *pdn,
int mode);
#endif /* _PKTD_H_ */