mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| ** InterslipLib - Routines to talk to InterSLIP. Version 1.1, 31-Oct-1995.
 | |
| **
 | |
| **
 | |
| ** (c) Jack Jansen, CWI, 1995 <jack@cwi.nl>
 | |
| */
 | |
| 
 | |
| #include <Devices.h>
 | |
| 
 | |
| #include "InterslipLib.h"
 | |
| 
 | |
| static CntrlParam iopb;
 | |
| static short refnum = -1;
 | |
| 
 | |
| OSErr is_open()
 | |
| {
 | |
| 	if ( refnum >= 0 ) return 0;
 | |
| 	return OpenDriver("\p.InterSLIP", &refnum);
 | |
| }
 | |
| 
 | |
| OSErr is_connect()
 | |
| {
 | |
| 	iopb.ioCRefNum = refnum;
 | |
| 	iopb.ioVRefNum = refnum;
 | |
| 	iopb.ioCompletion = (UniversalProcPtr) 0;
 | |
| 	iopb.csCode = 2;
 | |
| 	return PBControlImmed((ParmBlkPtr)&iopb);
 | |
| }
 | |
| 
 | |
| OSErr is_disconnect()
 | |
| {
 | |
| 	iopb.ioCRefNum = refnum;
 | |
| 	iopb.ioVRefNum = refnum;
 | |
| 	iopb.ioCompletion = (UniversalProcPtr) 0;
 | |
| 	iopb.csCode = 3;
 | |
| 	return PBControlImmed((ParmBlkPtr)&iopb);
 | |
| }
 | |
| 
 | |
| OSErr is_status(long *status, long *msgseqnum, StringPtr *msg)
 | |
| {
 | |
| 	long *csp;
 | |
| 	OSErr err;
 | |
| 	
 | |
| 	iopb.ioCRefNum = refnum;
 | |
| 	iopb.ioVRefNum = refnum;
 | |
| 	iopb.ioCompletion = (UniversalProcPtr) 0;
 | |
| 	iopb.csCode = 4;
 | |
| 	if( err = PBControlImmed((ParmBlkPtr)&iopb) )
 | |
| 		return err;
 | |
| 	csp = (long *)&iopb.csParam;
 | |
| 	*status = csp[0];
 | |
| 	*msgseqnum = csp[1];
 | |
| 	*msg = (unsigned char *)csp[2];
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| OSErr is_getconfig(long *baudrate, long *flags, 
 | |
| 		Str255 idrvnam, Str255 odrvnam, Str255 cfgnam)
 | |
| {
 | |
| 	long *csp;
 | |
| 	OSErr err;
 | |
| 	
 | |
| 	iopb.ioCRefNum = refnum;
 | |
| 	iopb.ioVRefNum = refnum;
 | |
| 	iopb.ioCompletion = (UniversalProcPtr) 0;
 | |
| 	iopb.csCode = 6;
 | |
| 	csp = (long *)&iopb.csParam;
 | |
| 	csp[2] = (long)idrvnam;
 | |
| 	csp[3] = (long)odrvnam;
 | |
| 	csp[4] = (long)cfgnam;
 | |
| 	if( err = PBControlImmed((ParmBlkPtr)&iopb) )
 | |
| 		return err;
 | |
| 	*baudrate = csp[0];
 | |
| 	*flags = csp[1];
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| OSErr is_setconfig(long baudrate, long flags, 
 | |
| 		Str255 idrvnam, Str255 odrvnam, Str255 cfgnam)
 | |
| {
 | |
| 	long *csp;
 | |
| 	OSErr err;
 | |
| 	
 | |
| 	iopb.ioCRefNum = refnum;
 | |
| 	iopb.ioVRefNum = refnum;
 | |
| 	iopb.ioCompletion = (UniversalProcPtr) 0;
 | |
| 	iopb.csCode = 7;
 | |
| 	csp = (long *)&iopb.csParam;
 | |
| 	csp[0] = baudrate;
 | |
| 	csp[1] = flags;
 | |
| 	csp[2] = (long)idrvnam;
 | |
| 	csp[3] = (long)odrvnam;
 | |
| 	csp[4] = (long)cfgnam;
 | |
| 	return PBControlImmed((ParmBlkPtr)&iopb);
 | |
| }
 | |
| 
 | |
| 	
 | 
