Metadata-Version: 2.1
Name: portio
Version: 0.5
Summary: PortIO, python low level port I/O for Linux x86
Home-page: http://portio.inrim.it
Author: Fabrizio Pollastri
Author-email: f.pollastri@inrim.it
Maintainer: Fabrizio Pollastri
Maintainer-email: f.pollastri@inrim.it
License: http://www.gnu.org/licenses/gpl.txt
Platform: Linux
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Hardware
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: POSIX :: Linux

PortIO is a Python front end to the low level functions provided by the
C library on Linux 386 platforms for the hardware input and output ports:
outb, outw, outl, outsb, outsw, outsl, outb_p, outw_p, outl_p, inb, inw,
inl, insb, insw, insl, inb_p, inw_p, inl_p, ioperm, iopl.

Before doing port I/O, it is mandatory to acquire proper privileges by
calling ioperm or iopl. Otherwise you will get a segmentation fault.

outb (data,port)
  Output the byte data to the I/O address port.

outb_p (data,port)
  The same as outb, but waits for I/O completion.

outw (data,port)
  Output the 16 bit word data to the I/O address port.

outw_p (data,port)
  The same as outw, but waits for I/O completion.

outl (data,port)
  Output the 32 bit word data to the I/O address port.

outl_p (data,port)
  The same as outl, but waits for I/O completion.

outsb (port,data,count)
  Repeat count times the output of a byte to the I/O address port,
  reading it from buffer of bytes starting at data and with length
  count.

outsw (port,data,count)
  Repeat count times the output of a 16 bit word to the I/O address
  port, reading it from buffer of 16 bit words starting at data and
  with length count x 2.

outsl (port,data,count)
  Repeat count times the output of a 32 bit word to the I/O address
  port, reading it from buffer of 32 bit words starting at data and
  with length count x 4.

inb (port)
  Input a byte from the I/O address port and return it as integer.

inb_p (port)
  The same as inb, but waits for I/O completion.

inw (port)
  Input a 16 bit word from the I/O address port and return it as integer.

inw_p (port)
  The same as inw, but waits for I/O completion.

inl (port)
  Input a 32 bit word from the I/O address port and return it as integer.

inl_p (port)
  The same as inl, but waits for I/O completion.

insb (port,data,count)
  Repeat count times the input of a byte from the I/O address port
  and write it to a buffer of bytes starting at data and with length
  count bytes.

insw (port,data,count)
  Repeat count times the input of a 16 bit word from the I/O address
  port and write it to a buffer of 16 bit words starting at data
  and with length count x 2 bytes.

insl (port,data,count)
  Repeat count times the input of a 32 bit word from the I/O address
  port and write it to a buffer of 32 bit words starting at data
  and with length count x 4 bytes.

ioperm (from,extent,enable)
  Set port access permission starting from address from for extent
  bytes. If the enable is True, access is enabled, otherwise is disabled.
  On success, zero is returned. On error, the errno code is returned.
  The use of ioperm requires root privileges.

  Only the first 0x3ff I/O ports can be specified in this manner. To gain
  access to any I/O port in the whole (0x0000-0xffff) address range, use
  the iopl function. 

iopl (level)
  Set the I/O privilege level of the current process. When level is 3
  access is granted to any I/O port.
  On success, zero is returned. On error, the errno code is returned.
  The use of iopl requires root privileges.

