mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			98 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			98 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); | ||
|  | } | ||
|  | 
 | ||
|  | 	 |