Lines Matching +full:addr +full:- +full:mode
8 * Description..: Packet-driver interface for 16/32-bit C :
24 #include "pcap-dos.h"
25 #include "pcap-int.h"
79 /* Data located in a real-mode segment. This becomes far at runtime
106 #define LAST_RX_BUF offsetof (PktRealStub,_pktRxBuf [NUM_RX_BUF-1])
112 extern BYTE pktRxEnd; /* marks the end of r-mode code/data */
119 #define LAST_RX_BUF (WORD) &pktRxBuf [NUM_RX_BUF-1]
149 LOCAL WORD realSeg; /* DOS para-address of allocated area */
181 #else /* real-mode Borland etc. */
201 PUBLIC PKT_INFO pktInfo; /* packet-driver information */
227 "Invalid receiver mode specified", in PktGetErrorStr()
235 "Bad Check-sum", in PktGetErrorStr()
253 return ("DIX-Ether"); in PktGetClassName()
255 return ("ProNET-10"); in PktGetClassName()
289 PUBLIC char const *PktRXmodeStr (PKT_RX_MODE mode) in PktRXmodeStr() argument
297 "Receive all packets (promiscuous mode)" in PktRXmodeStr()
300 if (mode > DIM(modeStr)) in PktRXmodeStr()
302 return (modeStr [mode-1]); in PktRXmodeStr()
387 pktInfo.intr = (found ? intr-1 : 0); in PktSearchDriver()
489 if (rx->handle != pktInfo.handle) in CheckElement()
493 PktReleaseHandle (rx->handle); in CheckElement()
496 count_1 = rx->firstCount; in CheckElement()
497 count_2 = rx->secondCount; in CheckElement()
542 PUBLIC BOOL PktSetReceiverMode (PKT_RX_MODE mode) in PktSetReceiverMode() argument
549 reg.r_cx = (WORD)mode; in PktSetReceiverMode()
554 receiveMode = mode; in PktSetReceiverMode()
560 PUBLIC BOOL PktGetReceiverMode (PKT_RX_MODE *mode) in PktGetReceiverMode() argument
568 *mode = reg.r_ax; in PktGetReceiverMode()
610 pktStat.inPackets -= initialStat.inPackets; in PktSessStatistics()
611 pktStat.outPackets -= initialStat.outPackets; in PktSessStatistics()
612 pktStat.inBytes -= initialStat.inBytes; in PktSessStatistics()
613 pktStat.outBytes -= initialStat.outBytes; in PktSessStatistics()
614 pktStat.inErrors -= initialStat.inErrors; in PktSessStatistics()
615 pktStat.outErrors -= initialStat.outErrors; in PktSessStatistics()
616 pktStat.outErrors -= initialStat.outErrors; in PktSessStatistics()
617 pktStat.lost -= initialStat.lost; in PktSessStatistics()
636 PUBLIC BOOL PktGetAddress (ETHER *addr) in PktGetAddress() argument
640 reg.r_cx = sizeof (*addr); in PktGetAddress()
657 ReadRealMem (addr, realBase + (WORD)&pktTemp, sizeof(*addr)); in PktGetAddress()
660 dosmemget (realBase+pktTemp, sizeof(*addr), addr); in PktGetAddress()
663 memcpy (addr, (void*)(realBase+pktTemp), sizeof(*addr)); in PktGetAddress()
666 memcpy ((void*)addr, &pktTemp, sizeof(*addr)); in PktGetAddress()
674 PUBLIC BOOL PktSetAddress (const ETHER *addr) in PktSetAddress() argument
676 /* copy addr to real-mode scrath area */ in PktSetAddress()
679 WriteRealMem (realBase + (WORD)&pktTemp, (void*)addr, sizeof(*addr)); in PktSetAddress()
682 dosmemput (addr, sizeof(*addr), realBase+pktTemp); in PktSetAddress()
685 memcpy ((void*)(realBase+pktTemp), addr, sizeof(*addr)); in PktSetAddress()
688 memcpy (&pktTemp, (void*)addr, sizeof(*addr)); in PktSetAddress()
692 reg.r_cx = sizeof (*addr); /* address length */ in PktSetAddress()
786 size = min (head->firstCount, sizeof(RX_ELEMENT)); in PktReceive()
788 _fmemcpy (buf, &head->destin, len); in PktReceive()
791 size = -1; in PktReceive()
816 return (inOfs - outOfs) / sizeof(RX_ELEMENT); in PktBuffersUsed()
817 return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT)); in PktBuffersUsed()
846 size = -1; in PktReceive()
882 return (inOfs - outOfs) / sizeof(RX_ELEMENT); in PktBuffersUsed()
883 return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT)); in PktBuffersUsed()
912 size = -1; in PktReceive()
948 return (inOfs - outOfs) / sizeof(RX_ELEMENT); in PktBuffersUsed()
949 return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT)); in PktBuffersUsed()
957 #else /* real-mode small/large model */
968 size = min (head->firstCount, sizeof(RX_ELEMENT)); in PktReceive()
970 _fmemcpy (buf, &head->destin, len); in PktReceive()
973 size = -1; in PktReceive()
997 return ((inOfs - outOfs) / sizeof(RX_ELEMENT)); in PktBuffersUsed()
998 return (NUM_RX_BUF - (outOfs - inOfs) / sizeof(RX_ELEMENT)); in PktBuffersUsed()
1020 unsigned ofs; /* clear the DOS-mem to prevent further upcalls */ in PktFreeMem()
1043 PUTS ("Error restoring receiver mode."); in PktExitDriver()
1046 PUTS ("Error releasing PKT-DRVR handle."); in PktExitDriver()
1053 printf ("Internal stats: too-small %lu, too-large %lu, bad-sync %lu, " in PktExitDriver()
1054 "wrong-handle %lu\n", in PktExitDriver()
1076 PUBLIC BOOL PktInitDriver (PKT_RX_MODE mode) in PktInitDriver() argument
1108 PUTS ("Error getting pkt-drvr information."); in PktInitDriver()
1124 PUTS ("Cannot allocate real-mode stub."); in PktInitDriver()
1139 PUTS ("real-mode init failed."); in PktInitDriver()
1151 PUTS ("real-mode init failed."); in PktInitDriver()
1191 PUTS ("Error setting pkt-drvr access."); in PktInitDriver()
1203 if (!PktSetReceiverMode(mode)) in PktInitDriver()
1205 PUTS ("Error setting receiver mode."); in PktInitDriver()
1212 PUTS ("Error getting receiver mode."); in PktInitDriver()
1218 printf ("Pkt-driver information:\n" in PktInitDriver()
1228 " Hi-perf : %s\n" in PktInitDriver()
1229 " RX mode : %s\n" in PktInitDriver()
1230 " Eth-addr : %02X:%02X:%02X:%02X:%02X:%02X\n", in PktInitDriver()
1322 * of code (which must be within the first 64K of the protected mode
1328 * NOTE THIS ROUTINE REQUIRES 386|DOS-EXTENDER 3.0 OR LATER.
1331 * start_offs start of real mode code in program segment
1332 * end_offs 1 byte past end of real mode code in program segment
1333 * real_basep returned; real mode ptr to use as a base for the
1334 * real mode code (eg, to get the real mode FAR
1335 * addr of a function foo(), take
1338 * offsets within the real mode segment are
1339 * the same as the link-time offsets in the
1340 * protected mode program segment
1341 * prot_basep returned; prot mode ptr to use as a base for getting
1343 * so that adding the prot mode offset of a
1347 * rmem_adrp returned; real mode para addr of allocated
1350 * USE THIS TO CONSTRUCT A REAL MODE PTR, USE
1364 ULONG rm_base; /* base real mode para addr for accessing */ in RealCopy()
1377 /* Round start_offs down to a paragraph (16-byte) boundary so we can set up in RealCopy()
1378 * the real mode pointer easily. Round up end_offs to make sure we allocate in RealCopy()
1384 /* Allocate the conventional memory for our real mode code. Remember to in RealCopy()
1385 * round byte count UP to 16-byte paragraph size. We alloc it in RealCopy()
1395 len = ((end_offs - start_offs) + 15) >> 4; in RealCopy()
1415 /* Construct real mode & protected mode pointers to access the allocated in RealCopy()
1416 * memory. Note we know start_offs is aligned on a paragraph (16-byte) in RealCopy()
1419 * We make the offsets come out rights by backing off the real mode selector in RealCopy()
1422 rm_base = ((ULONG) *rmem_adrp) - (start_offs >> 4); in RealCopy()
1426 /* Copy the real mode code/data to the allocated memory in RealCopy()
1431 len = end_offs - start_offs; in RealCopy()