[comp.protocols.tcp-ip.ibmpc] 'C' - Packet Driver interface

slang@waikato.ac.nz (05/20/91)

I am trying to modify a program written by a previous employee. It sits on a
packet driver and watches the net, logging information about each packet it
sees. Now, unfortunately, the PC has run out of memory, and a recompilation
under a LARGE memory model is required. It uses ET_PKT (from Epilogue
Technology) as it's C-interface to the packet driver. This was successfully
modified to use the Medium model (Code > 64K) but not Large (data > 64K.)
Now for my question:

Does anybody out there know of a similar set of Assembler routines that sit
between C and a Packet Driver that will run in a LARGE memory model? Any hints
would be greatly appreciated etc. etc.

-- 
"Drink is the curse of the working class man,
	Work is the curse of the drinking class man."

				Steve Lang
				Systems Programmer Analyst
				University of Waikato
				Hamilton
				NEW ZEALAND
				<slang@waikato.ac.nz>

karl@lvs.Eng.Sun.COM (Karl Auerbach) (05/21/91)

In article <1991May20.150430.3739@waikato.ac.nz> slang@waikato.ac.nz writes:
>I am trying to modify a program written by a previous employee. It sits on a
>packet driver and watches the net, logging information about each packet it
>sees. Now, unfortunately, the PC has run out of memory, and a recompilation
>under a LARGE memory model is required. It uses ET_PKT (from Epilogue
>Technology) as it's C-interface to the packet driver. This was successfully
>modified to use the Medium model (Code > 64K) but not Large (data > 64K.)
>Now for my question:
>
>Does anybody out there know of a similar set of Assembler routines that sit
>between C and a Packet Driver that will run in a LARGE memory model? Any hints
>would be greatly appreciated etc. etc.

Hi -- I wrote the Epilogue interface code.  It's in assembly language
and ought to be easy to change.  I didn't use any of the model macros,
1) because the code was originally only for my own consumption, 2) MASM
was a much weaker animal at the time I wrote it, and 3) I'm lazy and never
really learned how to use masm very well.

That interface code was written for the original packet driver specification
and is somewhat out-of-date (for instance, it grabs a handle on a bogus packet
type so it can get the driver information.  That hack isn't needed with "modern"
packet drivers, but the code still does it.

The interface also didn't support any but the basic packet driver operations.

If you do modify my code, I'd appreciate it if you would post it back to the
near-public-domain.

				Good luck
					--karl--

gt@hprnd.rose.hp.com (Glenn Talbott) (05/31/91)

>Does anybody out there know of a similar set of Assembler routines that sit
>between C and a Packet Driver that will run in a LARGE memory model? Any hints
>would be greatly appreciated etc. etc.

It doesn't have to be in assembly. The Clarkson packet driver collection
contains the source to a C module by Phil Karn which serves as a C to
packet driver interface. It is written for Turbo C.

I am currently working on a Microsoft C 6.0 port of Phil's code, also
adding calls that were left out and bringing it up to the PC/TCP Packet
Driver Specification version 1.09. I compile and link it with the large
memory model, and won't get around to testing it any other way.

Since I'm not in the software distribution business, I'm contributing the
Microsoft C 6.0 port back to Russ Nelson's Clarkson Packet Driver
Collection within a week or two. Look for it there soon.


Glenn Talbott
R&D Lab Current Product Engineering & Hotsite Management
Hewlett-Packard Roseville Networks Division
gt@hprnd.rose.hp.com