⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcap-dos.h

📁 Ubuntu packages of security software。 相当不错的源码
💻 H
字号:
/* * Internal details for libpcap on DOS. * 32-bit targets: djgpp, Pharlap or DOS4GW. * * @(#) $Header: /tcpdump/master/libpcap/pcap-dos.h,v 1.1 2004/12/18 08:52:10 guy Exp $ (LBL) */#ifndef __PCAP_DOS_H#define __PCAP_DOS_H#ifdef __DJGPP__#include <pc.h>    /* simple non-conio kbhit */#else#include <conio.h>#endiftypedef int            BOOL;typedef unsigned char  BYTE;typedef unsigned short WORD;typedef unsigned long  DWORD;typedef BYTE           ETHER[6];#define ETH_ALEN       sizeof(ETHER)   /* Ether address length */#define ETH_HLEN       (2*ETH_ALEN+2)  /* Ether header length  */#define ETH_MTU        1500#define ETH_MIN        60#define ETH_MAX        (ETH_MTU+ETH_HLEN)#ifndef TRUE  #define TRUE   1  #define FALSE  0#endif#define PHARLAP  1#define DJGPP    2#define DOS4GW   4#ifdef __DJGPP__  #undef  DOSX  #define DOSX DJGPP#endif#ifdef __WATCOMC__  #undef  DOSX  #define DOSX DOS4GW#endif#ifdef __HIGHC__  #include <pharlap.h>  #undef  DOSX  #define DOSX PHARLAP  #define inline#else  typedef unsigned int UINT;#endif#if defined(__GNUC__) || defined(__HIGHC__)  typedef unsigned long long  uint64;  typedef unsigned long long  QWORD;#endif#if defined(__WATCOMC__)  typedef unsigned __int64  uint64;  typedef unsigned __int64  QWORD;#endif#define ARGSUSED(x)  (void) x#if defined (__SMALL__) || defined(__LARGE__)  #define DOSX 0#elif !defined(DOSX)  #error DOSX not defined; 1 = PharLap, 2 = djgpp, 4 = DOS4GW#endif#ifdef __HIGHC__#define min(a,b) _min(a,b)#define max(a,b) _max(a,b)#endif#ifndef min#define min(a,b) ((a) < (b) ? (a) : (b))#endif#ifndef max#define max(a,b) ((a) < (b) ? (b) : (a))#endif#if !defined(_U_) && defined(__GNUC__)#define _U_  __attribute__((unused))#endif#ifndef _U_#define _U_#endif#if defined(USE_32BIT_DRIVERS)  #include "msdos/pm_drvr/lock.h"  #ifndef RECEIVE_QUEUE_SIZE  #define RECEIVE_QUEUE_SIZE  60  #endif  #ifndef RECEIVE_BUF_SIZE  #define RECEIVE_BUF_SIZE   (ETH_MAX+20)  #endif  extern struct device el2_dev     LOCKED_VAR;  /* 3Com EtherLink II */  extern struct device el3_dev     LOCKED_VAR;  /*      EtherLink III */  extern struct device tc59_dev    LOCKED_VAR;  /* 3Com Vortex Card (?) */  extern struct device tc515_dev   LOCKED_VAR;  extern struct device tc90x_dev   LOCKED_VAR;  extern struct device tc90bcx_dev LOCKED_VAR;  extern struct device wd_dev      LOCKED_VAR;  extern struct device ne_dev      LOCKED_VAR;  extern struct device acct_dev    LOCKED_VAR;  extern struct device cs89_dev    LOCKED_VAR;  extern struct device rtl8139_dev LOCKED_VAR;  struct rx_ringbuf {         volatile int in_index;   /* queue index head */         int          out_index;  /* queue index tail */         int          elem_size;  /* size of each element */         int          num_elem;   /* number of elements */         char        *buf_start;  /* start of buffer pool */       };  struct rx_elem {         DWORD size;              /* size copied to this element */         BYTE  data[ETH_MAX+10];  /* add some margin. data[0] should be */       };                         /* dword aligned */  extern BYTE *get_rxbuf     (int len) LOCKED_FUNC;  extern int   peek_rxbuf    (BYTE **buf);  extern int   release_rxbuf (BYTE  *buf);#else  #define LOCKED_VAR  #define LOCKED_FUNC  struct device {         const char *name;         const char *long_name;         DWORD  base_addr;      /* device I/O address       */         int    irq;            /* device IRQ number        */         int    dma;            /* DMA channel              */         DWORD  mem_start;      /* shared mem start         */         DWORD  mem_end;        /* shared mem end           */         DWORD  rmem_start;     /* shmem "recv" start       */         DWORD  rmem_end;       /* shared "recv" end        */         struct device *next;   /* next device in list      */         /* interface service routines */         int   (*probe)(struct device *dev);         int   (*open) (struct device *dev);         void  (*close)(struct device *dev);         int   (*xmit) (struct device *dev, const void *buf, int len);         void *(*get_stats)(struct device *dev);         void  (*set_multicast_list)(struct device *dev);         /* driver-to-pcap receive buffer routines */         int   (*copy_rx_buf) (BYTE *buf, int max); /* rx-copy (pktdrvr only) */         BYTE *(*get_rx_buf) (int len);             /* rx-buf fetch/enqueue */         int   (*peek_rx_buf) (BYTE **buf);         /* rx-non-copy at queue */         int   (*release_rx_buf) (BYTE *buf);       /* release after peek */         WORD   flags;          /* Low-level status flags. */         void  *priv;           /* private data */       };  /*   * Network device statistics   */  typedef struct net_device_stats {          DWORD  rx_packets;            /* total packets received       */          DWORD  tx_packets;            /* total packets transmitted    */          DWORD  rx_bytes;              /* total bytes received         */          DWORD  tx_bytes;              /* total bytes transmitted      */          DWORD  rx_errors;             /* bad packets received         */          DWORD  tx_errors;             /* packet transmit problems     */          DWORD  rx_dropped;            /* no space in Rx buffers       */          DWORD  tx_dropped;            /* no space available for Tx    */          DWORD  multicast;             /* multicast packets received   */          /* detailed rx_errors: */          DWORD  rx_length_errors;          DWORD  rx_over_errors;        /* recv'r overrun error         */          DWORD  rx_osize_errors;       /* recv'r over-size error       */          DWORD  rx_crc_errors;         /* recv'd pkt with crc error    */          DWORD  rx_frame_errors;       /* recv'd frame alignment error */          DWORD  rx_fifo_errors;        /* recv'r fifo overrun          */          DWORD  rx_missed_errors;      /* recv'r missed packet         */          /* detailed tx_errors */          DWORD  tx_aborted_errors;          DWORD  tx_carrier_errors;          DWORD  tx_fifo_errors;          DWORD  tx_heartbeat_errors;          DWORD  tx_window_errors;          DWORD  tx_collisions;          DWORD  tx_jabbers;        } NET_STATS;#endifextern struct device       *active_dev  LOCKED_VAR;extern const struct device *dev_base    LOCKED_VAR;extern struct device       *probed_dev;extern int pcap_pkt_debug;extern void _w32_os_yield (void); /* Watt-32's misc.c */#ifdef NDEBUG  #define PCAP_ASSERT(x) ((void)0)#else  void pcap_assert (const char *what, const char *file, unsigned line);    #define PCAP_ASSERT(x) do { \                           if (!(x)) \                              pcap_assert (#x, __FILE__, __LINE__); \                         } while (0)#endif#endif  /* __PCAP_DOS_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -