udmabuf - User space mappable dma buffer device driver for Linux.

  •        76

udmabuf is a Linux device driver that allocates contiguous memory blocks in the kernel space as DMA buffers and makes them available from the user space. It is intended that these memory blocks are used as DMA buffers when a user application implements device driver in user space using UIO (User space I/O). A DMA buffer allocated by udmabuf can be accessed from the user space by opneing the device file (e.g. /dev/udmabuf0) and mapping to the user memory space, or using the read()/write() functions.

https://github.com/ikwzm/udmabuf

Tags
Implementation
License
Platform

   




Related Projects

Template for Stacked Block Device Driver

  •    C

BDwrap is a template for writing stackable block device drivers on Linux. It's clean interface hides the complexity of device handling, asynchronous calls, buffer cache interaction, etc. It is a great tool to develop stacked block drivers quickly.

Visual-DDK

  •    C++

The VisualDDK is a plugin for Microsoft Visual Studio allowing debugging device drivers right from the IDE. Additionally, a simple Driver Project Wizard is provided.

ldt - Linux Driver Template

  •    C

LDT project is useful for Linux driver development beginners and as starting point for a new drivers. The driver uses following Linux facilities: module, platform driver, file operations (read/write, mmap, ioctl, blocking and nonblocking mode, polling), kfifo, completion, interrupt, tasklet, work, kthread, timer, simple misc device, multiple char devices, Device Model, configfs, UART 0x3f8, HW loopback, SW loopback, ftracer. and explore sources.

lcfs - LCFS Graph driver for Docker

  •    C

tl;dr: Every time you build, pull or destroy a Docker container, you are using a storage driver. Current storage drivers like Device Mapper, AUFS, and Overlay2 implement container behavior using file systems designed to run a full OS. We are open-sourcing a file system that is purpose-built for the container lifecycle. We call this new file system Layer Cloning File System (LCFS). Because it is designed only for containers, it is up to 2.5x faster to build an image and up to almost 2x faster to pull an image. We're looking forward to working with the container community to improve and expand this new tool. Layer Cloning FileSystem (LCFS) is a new filesystem purpose-built to be a Docker storage driver. All Docker images are constructed of layers using storage drivers (graph drivers) like AUFS, OverlayFS, and Device Mapper. As a design principle, LCFS focuses on layers as the first-class citizen. The LCFS filesystem operates directly on top of block devices, as opposed to merging separate filesystems. Thereby, LCFS aims to directly manage at the container image’s layer level, eliminate the overhead of having a second filesystem that then is merged, and to optimize for density.

Linux X10 universal device driver

  •    Java

X10 device drivers for Linux creating a /dev device for each X10 unit in the house. This allows command line, script, and program access to the X10 network.This driver currently supports the PowerLinc Serial, PowerLinc USB, and CM11A.


OSR USB FX2 Learning Kit device driver

  •    C

This project will implement USB device drivers for the quot;OSR USB FX2 Learning Kitquot; device by Open Systems Resources Inc on several OSes. The intent it to allow USB driver developers compare amp; contrasts the different OS driver development environments.

Linux Frame Buffer Device Development

  •    C

This is the development site for frame buffer video drivers and video subsystem for Linux.

Emulex Linux Drivers

  •    C

This project is a development area for a Linux Device driver for Emulex Fibre Channel HBA's, targetting the Linux 2.6 kernel. For White Papers and Errata, please see the driver download area. SCST support has just been added!!

msphpsql - Microsoft PHP drivers for SQL Server

  •    PHP

The Microsoft Drivers for PHP for SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PDO for accessing data in all editions of SQL Server 2008 R2 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server.This release contains the SQLSRV and PDO_SQLSRV drivers for PHP 7 with improvements on both drivers and some limitations (see Limitations below for details). Upcoming release(s) will contain more functionality, bug fixes, and more (see Plans below for more details).

tock - A secure embedded operating system for Cortex-M based microcontrollers

  •    Rust

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety, type safety and strict aliasing. Tock uses Rust to protect the kernel (e.g. the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel. Tock is documented in the doc folder. Read through the guides there to learn about the overview and design of Tock, its implementation, and much more.

Windows-Driver-Frameworks - WDF makes it easy to write high-quality Windows drivers

  •    C++

The Windows Driver Frameworks (WDF) are a set of libraries that make it simple to write high-quality device drivers.Developers can use the MSDN reference documentation to learn about the core concepts of WDF and the APIs available for use. Still, there's no substitute for actual source code. That's why we've published the source behind KMDF and UMDF v2 for anyone to dig through and debug drivers with.

AMDVLK - AMD Open Source Driver For Vulkan

  •    Python

The AMD Open Source Driver for Vulkan® is an open-source Vulkan driver for Radeon™ graphics adapters on Linux®. It is built on top of AMD's Platform Abstraction Library (PAL), a shared component that is designed to encapsulate certain hardware and OS-specific programming details for many of AMD's 3D and compute drivers. Leveraging PAL can help provide a consistent experience across platforms, including support for recently released GPUs and compatibility with AMD developer tools. Shaders that compose a particular VkPipeline object are compiled as a single entity using the LLVM-Based Pipeline Compiler (LLPC) library. LLPC builds on LLVM's existing shader compilation infrastructure for AMD GPUs to generate code objects compatible with PAL's pipeline ABI. Notably, AMD's closed-source Vulkan driver currently uses a different pipeline compiler, which is the major difference between AMD's open-source and closed-source Vulkan drivers.

mongo-php-driver - MongoDB PHP driver

  •    PHP

The driver is written to be a bare bone layer to talk to MongoDB, and therefore misses many convenience features. Instead, these convenience methods have been split out into a layer written in PHP, the MongoDB Library. Using this library should be your preferred way of interacting with MongoDB.Please note that the new HHVM and PHP drivers implement a different API from the legacy driver at http://pecl.php.net/package/mongo; therefore existing libraries that use the legacy driver (e.g. Doctrine MongoDB's ODM) will not work with the new drivers.

MANGA KS8695 GNU/Linux 2.6.x

  •    Python

Development area for GNU/Linux 2.6.x for the KS8695 ARM SoC. Covers kernel patches, drivers for serial, Ethernet, PCI, GPIO, watchdog subsystems, and drivers for optional PCI based devices such as USB, WiFi, WiMAX, IPSec, SSL, and RSA devices.

fusesoc - FuseSoC is a package manager and a set of build tools for FPGA/ASIC development

  •    Python

FuseSoC is an award-winning package manager and a set of build tools for HDL (Hardware Description Language) code. Its main purpose is to increase reuse of IP (Intellectual Property) cores and be an aid for creating, building and simulating SoC solutions.

HW+ / DXR3 device driver for Linux

  •    C

This project is an attempt to provide the Linux community with kernel drivers for two hugely popular DVD playback cards namely DXR3 from Creative Labs and Hollywood Plus from Sigma Designs.

Qlogic QLA2xxx Linux Driver

  •    

This project builds tested Qlogic ISP 2xxx driver patches against the latest linux kernels for 2.6. These drivers are based upon Qlogic's web-delivered drivers, but they are integrated into the kernel.

VMware SVGA Device Developer Kit

  •    C

Documentation, examples, and reference driver code for the VMware virtual graphics device used by all VMware virtual machines. This project provides the information and code necessary to write both 2D and 3D graphics drivers for this device.

pcileech - Direct Memory Access (DMA) Attack Software

  •    C

PCILeech uses PCIe hardware devices to read and write from the target system memory. This is achieved by using DMA over PCIe. No drivers are needed on the target system. PCILeech works without hardware together with memory dump files and the Windows 7/2008R2 x64 Total Meltdown / CVE-2018-1038 vulnerability.

HWSensors - HWSensors is a software bundle that includes drivers and applications that allow you to access information from hardware sensors available on your Mac

  •    Objective-C

HWSensors is a software bundle that includes drivers and applications that allow you to access information from hardware sensors available on your Mac. FakeSMC is an open source SMC device driver/emulator developed by netkas.