Coder Social home page Coder Social logo

soh0ro0t / ivshmem-code Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cmacdonell/ivshmem-code

0.0 1.0 0.0 380 KB

Example programs and tests for ivshmem module for QEMU/KVM

License: Other

Makefile 2.82% C 64.45% Shell 5.73% Python 0.83% Java 23.89% CMake 1.03% C++ 1.24%

ivshmem-code's Introduction

IVSHMEM testing code

This is the code repository for the shared memory device for KVM/Qemu. This GIT repository contains code and scripts that demonstrate how to make use of the shared memory device. I use the name 'Nahanni' to refer to my device and system. It is not that the system is so substantial that it requires its own name, but having a name makes discussion easier.

The Device

The device specification is in the file device-spec.txt. If you want to write a device driver for a different OS than Linux, the device spec will describe how the device works.

Directories in this repo

kernel_module - Linux kernel modules and makefiles to build them against the currently running kernel. There are two kinds of drivers. "Normal" pci drivers and a UIO_PCI driver. Use the UIO_PCI driver. The other driver is only kept their for legacy purposes. With UIO_PCI, device registers and memory regions are usually mapped to userspace and accessed directly which has certain advantages.

scripts - these aren't shared memory scripts, but are networking scripts when using DNSmasq for networking. Perhaps they don't belong here.

startup_files - these are Linux init scripts for different Linux distros namely ubuntu, fedora and SUSE. Init scripts formats can change and so some tweaking may be necessary for newer versions of distros. There is also a UIO_PCI init script which is different than regular device init scripts.

tests - test programs for using shared memory device WITHOUT UIO_PCI. These tests rely on mmap to access the shared region and ioctl calls to trigger interrupts in other guests.

uio - test programs for the UIO driver that uses the assigned mappings of registers and memory to trigger notifications rather than ioctl calls as in the other 'tests' directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.