From 9c6d6f173699c8ebba83dcb9ca95f936d96d65e5 Mon Sep 17 00:00:00 2001 From: alexperry Date: Mon, 4 Oct 2004 18:13:39 +0000 Subject: Put in a conditional to use signed ioctl() for python versions 2.2 and earlier --- pyparallel/parallel/parallelppdev.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pyparallel/parallel/parallelppdev.py b/pyparallel/parallel/parallelppdev.py index 64c89f4..347a851 100644 --- a/pyparallel/parallel/parallelppdev.py +++ b/pyparallel/parallel/parallelppdev.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # parallel port access using the ppdev driver +import sys import struct import fcntl import os @@ -8,6 +9,8 @@ import os #---- # Generated by h2py 0.1.1 from , # then cleaned up a bit by Michael P. Ashton and then a gain by chris ;-) +# Changes for Python2.2 support (c) September 2004 Alex.Perry@qm.com + def sizeof(type): return struct.calcsize(type) def _IOC(dir, type, nr, size): return (dir << _IOC_DIRSHIFT ) | (type << _IOC_TYPESHIFT ) |\ @@ -25,11 +28,20 @@ _IOC_TYPEBITS = 8 _IOC_SIZESHIFT = _IOC_TYPESHIFT + _IOC_TYPEBITS IOCSIZE_MASK = _IOC_SIZEMASK << _IOC_SIZESHIFT IOCSIZE_SHIFT = _IOC_SIZESHIFT -_IOC_WRITE = 1L + +# Python 2.2 uses a signed int for the ioctl() call, so ... +if ( sys.version_info[0] < 3 ) or ( sys.version_info[1] < 3 ): + _IOC_WRITE = 1L + _IOC_READ = -2L + _IOC_INOUT = -1L +else: + _IOC_WRITE = 1L + _IOC_READ = 2L + _IOC_INOUT = 3L + _IOC_DIRSHIFT = _IOC_SIZESHIFT + _IOC_SIZEBITS +IOC_INOUT = _IOC_INOUT << _IOC_DIRSHIFT IOC_IN = _IOC_WRITE << _IOC_DIRSHIFT -_IOC_READ = 2L -IOC_INOUT = (_IOC_WRITE | _IOC_READ) << _IOC_DIRSHIFT IOC_OUT = _IOC_READ << _IOC_DIRSHIFT _IOC_NONE = 0 -- cgit v1.2.1