Skip to main content

A package to expose the Linux Userspace IO to python

Project description

pyuio

A package to expose the Linux Userspace IO to python. Currently implements process_vm_readv and process_vm_writev from sys/uio.h.

installing

Download the source from the github page and run:

pip3 install .

In the rootfolder, the package is also available on PyPI

pip3 install pyuio

usage

There are two functions process_read and process write, read takes two required parameters (pid, asap_element) and one optional return_bytes=True/False which defaults to False
and write takes three (pid, asap_element, data).
asap_element is a class contained in the module that takes 2 required parameters to initialize (address, dataType) and one optional arraySize:int which defaults to 1.
The different kinds of datatypes are in the asap_datatypes class.

A very simple implementation would look like this:

from pyuio import asap_element, asap_datatypes, process_read, process_write

address = 0x422540                  #the memory address to read from
dataType = asap_datatypes.uint16    #the value to read is a unsigned 16 bit integer
arraySize = 1                       #it is a single value and not an array

asap_dutycycle = asap_element(address, dataType, arraySize)

pid = 2842                          #automate looking up the pid of the process you would like to influence, this is just a simple example

dutycycle = process_read(pid, asap_dutycycle)
# do some work
new_dutycycle = 900
process_write(pid, asap_dutycycle, new_dutycycle)

#process_read(pid, asap_dutycycle) == 900 now

To read and write arrays of data just set the arraySize to the desired size and then feed the process_write an array. or receive an array from the process_read function.

Matrices are an idea for future expansion. These could be usefull for modifying 2d lookup tables for example.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyuio-0.0.4.tar.gz (4.1 kB view details)

Uploaded Source

File details

Details for the file pyuio-0.0.4.tar.gz.

File metadata

  • Download URL: pyuio-0.0.4.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for pyuio-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5c7c3b0ac7b8048efdcf832c56cc53b8db302d7a8a2bbf6c8f8114ab8106192b
MD5 edcc431315b4cd8a5e5838f95e841580
BLAKE2b-256 26f9cf8ef5d1e1bb9fe521bbcbb535a7c083ddf3aef27bce796a1cbdd1e2794a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page