summaryrefslogtreecommitdiffstats
path: root/wiki/open-iov.org/index.php/Articles.html
diff options
context:
space:
mode:
authorOpen-IOV <dev@open-iov.org>2026-09-23 05:44:08 -0400
committerOpen-IOV <dev@open-iov.org>2026-09-23 05:46:43 -0400
commit2302fc09080bad51c73f293294e19fd4db464eb0 (patch)
treec722d186347fdef5a34131e9e143b1549b1daf8e /wiki/open-iov.org/index.php/Articles.html
downloadopen-iov-2302fc09080bad51c73f293294e19fd4db464eb0.tar.gz
open-iov-2302fc09080bad51c73f293294e19fd4db464eb0.zip
Open-IOV: initial public release
Open-IOV virtualizes NVIDIA GPUs so that unmodified guest drivers run with real GPU functionality - CUDA first, 3D and video to follow - on unmodified hosts, without a proprietary vGPU license and without patching any driver, firmware or hypervisor. Core principle: emulate the interface, pass through the work. kernel/ open-iov-vfio.ko - host VFIO mdev driver: virtual GPU device (PCI config space, BAR shadows, MSI-X), GSP boot emulation, GSP-RM message-queue/RPC emulation, memory model (GPU-VA to guest-PA discovery) and the semaphore-completion service that advances guest UVM progress. userspace/ libiov.so management API and examples. tools/ guest diagnostics, firmware analysis wrappers, RM probes. scripts/ stack manager, VM harness, build/load/test automation. config/ hardware/version profiles (the portability surface). docs/ documentation tree - start at docs/README.md. wiki/ long-form firmware and protocol deep dives. Status: initialization works end to end for a stock 570.144 Linux guest on Turing (TU104): driver probe, nvidia-smi, the full GSP-RM control battery, object creation and the early CUDA/UVM start-up path. GPU work forwarding - the step that makes CUDA kernels execute on real hardware - is the active work item; see docs/04-implementation/01-known-knowns-and-unknowns.md. License: BSD-3-Clause for the project; GPL-2.0 for kernel modules that link GPL-only kernel interfaces. See LICENSE and docs/09-reference/legal-and-licensing.md.
Diffstat (limited to 'wiki/open-iov.org/index.php/Articles.html')
-rw-r--r--wiki/open-iov.org/index.php/Articles.html323
1 files changed, 323 insertions, 0 deletions
diff --git a/wiki/open-iov.org/index.php/Articles.html b/wiki/open-iov.org/index.php/Articles.html
new file mode 100644
index 0000000..92bb44d
--- /dev/null
+++ b/wiki/open-iov.org/index.php/Articles.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html>
+<html class="client-nojs" lang="en" dir="ltr">
+<head>
+<meta charset="UTF-8"/>
+<title>Articles - Open-IOV</title>
+<script>document.documentElement.className="client-js";RLCONF={"wgBreakFrames":!1,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"7c55a96366ad8c8c66258c68","wgCSPNonce":!1,"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":!1,"wgNamespaceNumber":0,"wgPageName":"Articles","wgTitle":"Articles","wgCurRevisionId":23794,"wgRevisionId":23794,"wgArticleId":28,"wgIsArticle":!0,"wgIsRedirect":!1,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Articles","wgRelevantArticleId":28,"wgIsProbablyEditable":!1,"wgRelevantPageIsProbablyEditable":!1,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},
+"wgEditSubmitButtonLabelPublish":!1};RLSTATE={"site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"loading","skins.vector.styles.legacy":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready"};RLPAGEMODULES=["site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader"];</script>
+<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement("user.options@1hzgi",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});
+});});</script>
+<link rel="stylesheet" href="../load.php%3Flang=en&amp;modules=ext.visualEditor.desktopArticleTarget.noscript|skins.vector.styles.legacy&amp;only=styles&amp;skin=vector.css"/>
+<script async="" src="../load.php%3Flang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script>
+<meta name="generator" content="MediaWiki 1.37.1"/>
+<meta name="format-detection" content="telephone=no"/>
+<link rel="shortcut icon" href="../favicon.ico.html"/>
+<link rel="search" type="application/opensearchdescription+xml" href="../opensearch_desc.php" title="Open-IOV (en)"/>
+<link rel="EditURI" type="application/rsd+xml" href="../api.php%3Faction=rsd"/>
+<link rel="alternate" type="application/atom+xml" title="Open-IOV Atom feed" href="../index.php%3Ftitle=Special:RecentChanges&amp;feed=atom"/>
+</head>
+<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Articles rootpage-Articles skin-vector action-view skin-vector-legacy"><div id="mw-page-base" class="noprint"></div>
+<div id="mw-head-base" class="noprint"></div>
+<div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+ <div id="siteNotice"></div>
+ <div class="mw-indicators">
+ </div>
+ <h1 id="firstHeading" class="firstHeading" >Articles</h1>
+ <div id="bodyContent" class="vector-body">
+ <div id="siteSub" class="noprint">From Open-IOV</div>
+ <div id="contentSub"></div>
+ <div id="contentSub2"></div>
+
+ <div id="jump-to-nav"></div>
+ <a class="mw-jump-link" href="Articles.html#mw-head">Jump to navigation</a>
+ <a class="mw-jump-link" href="Articles.html#searchInput">Jump to search</a>
+ <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><p>This page indexes the articles contained within Open-IOV.
+</p><p>If you're new to GPU Virtualization start by reading the <b><a href="Introduction.html" title="Introduction">Introduction</a></b> article.
+</p>
+<div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="Articles.html#Start_Here"><span class="tocnumber">1</span> <span class="toctext">Start Here</span></a></li>
+<li class="toclevel-1 tocsection-2"><a href="Articles.html#Abstract"><span class="tocnumber">2</span> <span class="toctext">Abstract</span></a></li>
+<li class="toclevel-1 tocsection-3"><a href="Articles.html#Design_Documents"><span class="tocnumber">3</span> <span class="toctext">Design Documents</span></a></li>
+<li class="toclevel-1 tocsection-4"><a href="Articles.html#Driver_Integration_Documents"><span class="tocnumber">4</span> <span class="toctext">Driver Integration Documents</span></a></li>
+<li class="toclevel-1 tocsection-5"><a href="Articles.html#Projects"><span class="tocnumber">5</span> <span class="toctext">Projects</span></a></li>
+<li class="toclevel-1 tocsection-6"><a href="Articles.html#Device_Support"><span class="tocnumber">6</span> <span class="toctext">Device Support</span></a></li>
+<li class="toclevel-1 tocsection-7"><a href="Articles.html#Software_Support"><span class="tocnumber">7</span> <span class="toctext">Software Support</span></a></li>
+<li class="toclevel-1 tocsection-8"><a href="Articles.html#API_Documentation"><span class="tocnumber">8</span> <span class="toctext">API Documentation</span></a>
+<ul>
+<li class="toclevel-2 tocsection-9"><a href="Articles.html#Kernel_APIs"><span class="tocnumber">8.1</span> <span class="toctext">Kernel APIs</span></a></li>
+<li class="toclevel-2 tocsection-10"><a href="Articles.html#Driver_APIs"><span class="tocnumber">8.2</span> <span class="toctext">Driver APIs</span></a></li>
+<li class="toclevel-2 tocsection-11"><a href="Articles.html#Sample_Code"><span class="tocnumber">8.3</span> <span class="toctext">Sample Code</span></a></li>
+<li class="toclevel-2 tocsection-12"><a href="Articles.html#Virtualization_APIs"><span class="tocnumber">8.4</span> <span class="toctext">Virtualization APIs</span></a></li>
+</ul>
+</li>
+<li class="toclevel-1 tocsection-13"><a href="Articles.html#User_Guides"><span class="tocnumber">9</span> <span class="toctext">User Guides</span></a></li>
+<li class="toclevel-1 tocsection-14"><a href="Articles.html#Developer_Guides"><span class="tocnumber">10</span> <span class="toctext">Developer Guides</span></a></li>
+<li class="toclevel-1 tocsection-15"><a href="Articles.html#Specifications"><span class="tocnumber">11</span> <span class="toctext">Specifications</span></a></li>
+<li class="toclevel-1 tocsection-16"><a href="Articles.html#Communities_&amp;_Mailing_Lists"><span class="tocnumber">12</span> <span class="toctext">Communities &amp; Mailing Lists</span></a></li>
+</ul>
+</div>
+
+<h3><span class="mw-headline" id="Start_Here">Start Here</span></h3>
+<p><a href="Introduction.html" title="Introduction">Introduction</a>
+</p><p><a rel="nofollow" class="external text" href="./Open-IOV:About.html">About Open-IOV (CC-BY-4.0)</a>
+</p>
+<h3><span class="mw-headline" id="Abstract">Abstract</span></h3>
+<p><a href="Introductory_Concepts_&amp;_Definitions.html" class="mw-redirect" title="Introductory Concepts &amp; Definitions">Glossary</a>
+</p><p><a href="Virtualization_Fundamentals.html" title="Virtualization Fundamentals">Virtualization Fundamentals</a>
+</p><p><a href="Merged_Drivers.html" title="Merged Drivers">Merged Drivers</a>
+</p>
+<h3><span class="mw-headline" id="Design_Documents">Design Documents</span></h3>
+<p><a href="Virtual_IO_Internals.html" class="mw-redirect" title="Virtual IO Internals">Virtual I/O Internals</a>
+</p><p><a href="GPU_Driver_Internals.html" title="GPU Driver Internals">GPU Driver Internals</a>
+</p>
+<h3><span class="mw-headline" id="Driver_Integration_Documents">Driver Integration Documents</span></h3>
+<p><a rel="nofollow" class="external text" href="OpenRM.html">Nvidia</a>
+</p><p><a href="Intel_SR-IOV_APIs.html" class="mw-redirect" title="Intel SR-IOV APIs">Intel</a>
+</p><p><a rel="nofollow" class="external text" href="AMDGPU.html">AMD</a>
+</p>
+<h3><span class="mw-headline" id="Projects">Projects</span></h3>
+<p><a rel="nofollow" class="external text" href="LIME_Is_Mediated_Emulation.html">LIME Is Mediated Emulation</a>
+</p><p><a rel="nofollow" class="external text" href="Looking_Glass_KVMFR.html">Looking Glass</a>
+</p><p><a rel="nofollow" class="external text" href="https://openxt.atlassian.net/wiki/spaces/OD/pages/10747915/What+is+OpenXT">OpenXT</a>
+</p><p><a rel="nofollow" class="external text" href="https://gitlab.com/vglass">OpenXT: vGlass</a>
+</p><p><a rel="nofollow" class="external text" href="https://github.com/OpenXT/surfman">OpenXT: Surfman (legacy DRM)</a>
+</p><p><a rel="nofollow" class="external text" href="https://www.bromium.com/opensource/">Bromium/uXen</a>
+</p><p><a rel="nofollow" class="external text" href="https://xenproject.org/help/documentation/">Xen Project</a>
+</p><p><a rel="nofollow" class="external text" href="https://www.qubes-os.org/doc/">Qubes OS</a>
+</p><p><a rel="nofollow" class="external text" href="https://projectacrn.github.io/2.1/tutorials/using_celadon_as_uos.html">Intel Celadon</a>
+</p><p><a rel="nofollow" class="external text" href="VGPU_Unlock.html">vGPU_Unlock</a>
+</p>
+<h3><span class="mw-headline" id="Device_Support">Device Support</span></h3>
+<p><a href="GPU_Support.html" title="GPU Support">GPU Support</a>
+</p><p><a href="CPU_Support.html" title="CPU Support">CPU Support</a>
+</p><p><a href="GPU_Firmware.html" title="GPU Firmware">GPU Firmware</a>
+</p>
+<h3><span class="mw-headline" id="Software_Support">Software Support</span></h3>
+<p><a rel="nofollow" class="external text" href="Hypervisor_Support.html">Hypervisor Support</a>
+</p><p><a href="GPU_Software_Bill_Of_Materials_(SBOM).html" title="GPU Software Bill Of Materials (SBOM)">GPU Software Bill Of Materials (SBOM)</a>
+</p>
+<h3><span class="mw-headline" id="API_Documentation">API Documentation</span></h3>
+<h4><span class="mw-headline" id="Kernel_APIs">Kernel APIs</span></h4>
+<p><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api">Kernel.org Driver Core Documentation</a>
+</p><p><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/display/iommu-based-gpu-isolation">NT Kernel (Windows) IOMMU-based GPU Isolation</a>
+</p><p><a rel="nofollow" class="external text" href="https://elixir.bootlin.com/linux/latest/source/Documentation/driver-api/vfio.rst">VFIO</a> - <a rel="nofollow" class="external text" href="https://github.com/torvalds/linux/blob/master/include/uapi/linux/vfio.h">vfio.h</a> - <a rel="nofollow" class="external text" href="https://elixir.bootlin.com/linux/latest/source/include/linux/mdev.h">mdev.h</a>
+</p><p><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/tree/Documentation/driver-api/vfio-mediated-device.rst?h=driver-core-next&amp;id=7de3697e9cbd4bd3d62bafa249d57990e1b8f294">VFIO Mediated Device</a>
+</p>
+<h4><span class="mw-headline" id="Driver_APIs">Driver APIs</span></h4>
+<p><a rel="nofollow" class="external text" href="https://projectacrn.github.io/2.1/api/GVT-g_api.html">i915 GVT-g API</a>
+</p><p><a rel="nofollow" class="external text" href="https://nouveau.freedesktop.org/Development.html">Nouveau Tools &amp; API</a>
+</p>
+<h4><span class="mw-headline" id="Sample_Code">Sample Code</span></h4>
+<p>GPLv2 sources mirrored from <a rel="nofollow" class="external text" href="https://elixir.bootlin.com/linux/latest/source/samples/vfio-mdev/">elixir.bootlin.com</a> with <a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/Makefile">simple makefile changes</a>.
+</p><p><a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/mtty.c">mtty.c</a> - <a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/mdpy.c">mdpy.c</a> - <a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/mdpy-fb.c">mdpy-fb.c</a> - <a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/mdpy-defs.h">mdpy-defs.h</a> - <a rel="nofollow" class="external text" href="https://github.com/Open-IOV/VFIO-Mdev_Samples/blob/master/mbochs.c">mbochs.c</a>
+</p>
+<h4><span class="mw-headline" id="Virtualization_APIs">Virtualization APIs</span></h4>
+<p><a rel="nofollow" class="external text" href="Mdev-GPU.html#Mdev-CLI">GVM/Mdev-CLI API</a>
+</p><p><a rel="nofollow" class="external text" href="https://qemu-project.gitlab.io/qemu/interop/qemu-qmp-ref.html">QEMU Machine Protocol (QMP) Reference Manual</a>
+</p><p><a rel="nofollow" class="external text" href="https://projectacrn.github.io/2.1/developer-guides/hld/ivshmem-hld.html">Inter-VM Shared Memory (IVSHMEM)</a>
+</p>
+<h3><span class="mw-headline" id="User_Guides">User Guides</span></h3>
+<p> Setup Guide
+</p><p><a rel="nofollow" class="external text" href="https://looking-glass.io/docs/stable/">Looking Glass Quickstart Guide</a>
+</p><p><a rel="nofollow" class="external text" href="https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide">Intel GVT-g Setup Guide</a>
+</p><p><a rel="nofollow" class="external text" href="https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualization/tree/master/docs">AMD GPU-IOV Module Docs</a>
+</p><p><a rel="nofollow" class="external text" href="https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF">PCI passthrough via OVMF</a>
+</p><p><a rel="nofollow" class="external text" href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/index">RedHat Virtualization Guide</a>
+</p>
+<h3><span class="mw-headline" id="Developer_Guides">Developer Guides</span></h3>
+<p><a rel="nofollow" class="external text" href="https://rayanfam.com/tags/hypervisor/">Hypervisor From Scratch</a>
+</p><p><a rel="nofollow" class="external text" href="https://lwn.net/Kernel/LDD3/">Linux Device Drivers (3rd Edition)</a>
+</p><p><a rel="nofollow" class="external text" href="https://dri.freedesktop.org/docs/drm/gpu/">GPU Driver Developer's Guide</a>
+</p><p><a rel="nofollow" class="external text" href="https://dri.freedesktop.org/docs/drm/PCI/pci.html#">How To Write PCI Drivers</a>
+</p><p><a rel="nofollow" class="external text" href="https://doc.dpdk.org/guides-16.04/prog_guide/ivshmem_lib.html">Data Plane Development Kit: IVSHMEM Programming Guide</a>
+</p>
+<h3><span class="mw-headline" id="Specifications">Specifications</span></h3>
+<p><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/tlfs">Hyper-V Hypervisor Top Level Functional Specification (TLFS)</a>
+</p>
+<h3><span id="Communities_.26_Mailing_Lists"></span><span class="mw-headline" id="Communities_&amp;_Mailing_Lists">Communities &amp; Mailing Lists</span></h3>
+<p><a rel="nofollow" class="external text" href="https://discord.gg/Rb9K9DYxKK">Open-IOV Discord</a>
+</p><p><a rel="nofollow" class="external text" href="https://lists.freedesktop.org/mailman/listinfo/intel-gfx">Intel-gfx Mailing List</a>
+</p><p><a rel="nofollow" class="external text" href="https://lists.freedesktop.org/mailman/listinfo/nouveau">Nouveau Mailing List</a>
+</p><p><a rel="nofollow" class="external text" href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">AMD-gfx Mailing List</a>
+</p><p><a rel="nofollow" class="external text" href="https://listman.redhat.com/mailman/listinfo/vfio-users">VFIO-users Mailing List</a>
+</p><p><a rel="nofollow" class="external text" href="https://forum.level1techs.com/c/software/vfio/132">Level1Techs Forum [VFIO Topic]</a>
+</p><p><a rel="nofollow" class="external text" href="https://old.reddit.com/r/VFIO/">VFIO Subreddit</a>
+</p>
+<!--
+NewPP limit report
+Cached time: 20260911154946
+Cache expiry: 86400
+Reduced expiry: false
+Complications: []
+CPU time usage: 0.015 seconds
+Real time usage: 0.016 seconds
+Preprocessor visited node count: 63/1000000
+Post‐expand include size: 0/2097152 bytes
+Template argument size: 0/2097152 bytes
+Highest expansion depth: 2/40
+Expensive parser function count: 0/100
+Unstrip recursion depth: 0/20
+Unstrip post‐expand size: 30/5000000 bytes
+-->
+<!--
+Transclusion expansion time report (%,ms,calls,template)
+100.00% 0.000 1 -total
+-->
+
+<!-- Saved in parser cache with key my_wiki:pcache:idhash:28-0!canonical and timestamp 20260911154946 and revision id 23794. Serialized with JSON.
+ -->
+</div>
+<div class="printfooter">Retrieved from "<a dir="ltr" href="../index.php%3Ftitle=Articles&amp;oldid=23794.html">https://open-iov.org/index.php?title=Articles&amp;oldid=23794</a>"</div></div>
+ <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>
+ </div>
+</div>
+
+<div id="mw-navigation">
+ <h2>Navigation menu</h2>
+ <div id="mw-head">
+ <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" role="navigation"
+ >
+ <h3 id="p-personal-label" class="vector-menu-heading"> <span>Personal tools</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="pt-login" class="mw-list-item"><a href="../index.php%3Ftitle=Special:UserLogin&amp;returnto=Articles.html" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li></ul>
+
+ </div>
+</nav>
+
+ <div id="left-navigation">
+ <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu vector-menu-tabs" aria-labelledby="p-namespaces-label" role="navigation"
+ >
+ <h3 id="p-namespaces-label" class="vector-menu-heading"> <span>Namespaces</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="ca-nstab-main" class="selected mw-list-item"><a href="Articles.html" title="View the content page [c]" accesskey="c">Page</a></li><li id="ca-talk" class="new mw-list-item"><a href="https://open-iov.org/index.php?title=Talk:Articles&amp;action=edit&amp;redlink=1" rel="discussion" title="Discussion about the content page (page does not exist) [t]" accesskey="t">Discussion</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-variants-label" role="navigation"
+ >
+ <input type="checkbox"
+ id="p-variants-checkbox"
+ role="button"
+ aria-haspopup="true"
+ data-event-name="ui.dropdown-p-variants"
+ class=" vector-menu-checkbox" aria-labelledby="p-variants-label" />
+ <h3 id="p-variants-label" class="vector-menu-heading"> <span>Variants</span>
+ <span class="vector-menu-checkbox-expanded">expanded</span>
+ <span class="vector-menu-checkbox-collapsed">collapsed</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"></ul>
+
+ </div>
+</nav>
+
+ </div>
+ <div id="right-navigation">
+ <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu vector-menu-tabs" aria-labelledby="p-views-label" role="navigation"
+ >
+ <h3 id="p-views-label" class="vector-menu-heading"> <span>Views</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="ca-view" class="selected mw-list-item"><a href="Articles.html">Read</a></li><li id="ca-viewsource" class="mw-list-item"><a href="../index.php%3Ftitle=Articles&amp;action=edit.html" title="This page is protected.&#10;You can view its source [e]" accesskey="e">View source</a></li><li id="ca-history" class="mw-list-item"><a href="../index.php%3Ftitle=Articles&amp;action=history.html" title="Past revisions of this page [h]" accesskey="h">View history</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-cactions-label" role="navigation" title="More options"
+ >
+ <input type="checkbox"
+ id="p-cactions-checkbox"
+ role="button"
+ aria-haspopup="true"
+ data-event-name="ui.dropdown-p-cactions"
+ class=" vector-menu-checkbox" aria-labelledby="p-cactions-label" />
+ <h3 id="p-cactions-label" class="vector-menu-heading"> <span>More</span>
+ <span class="vector-menu-checkbox-expanded">expanded</span>
+ <span class="vector-menu-checkbox-collapsed">collapsed</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"></ul>
+
+ </div>
+</nav>
+
+ <div id="p-search" role="search" class="vector-search-box">
+ <div>
+ <h3 >
+ <label for="searchInput">Search</label>
+ </h3>
+ <form action="https://open-iov.org/index.php" id="searchform">
+ <div id="simpleSearch" data-search-loc="header-navigation">
+ <input type="search" name="search" placeholder="Search Open-IOV" autocapitalize="sentences" title="Search Open-IOV [f]" accesskey="f" id="searchInput"/>
+ <input type="hidden" name="title" value="Special:Search"/>
+ <input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/>
+ <input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/>
+ </div>
+ </form>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+<div id="mw-panel">
+ <div id="p-logo" role="banner">
+ <a class="mw-wiki-logo" href="../images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html"
+ title="Visit the main page"></a>
+ </div>
+ <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu vector-menu-portal portal" aria-labelledby="p-navigation-label" role="navigation"
+ >
+ <h3 id="p-navigation-label" class="vector-menu-heading"> <span>Navigation</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="n-mainpage-description" class="mw-list-item"><a href="../images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-recentchanges" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage" class="mw-list-item"><a href="./Special:Random.html" title="Load a random page [x]" accesskey="x">Random page</a></li><li id="n-help-mediawiki" class="mw-list-item"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">Help about MediaWiki</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu vector-menu-portal portal" aria-labelledby="p-tb-label" role="navigation"
+ >
+ <h3 id="p-tb-label" class="vector-menu-heading"> <span>Tools</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="t-whatlinkshere" class="mw-list-item"><a href="./Special:WhatLinksHere/Articles.html" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChangesLinked/Articles" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-specialpages" class="mw-list-item"><a href="./Special:SpecialPages.html" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li><li id="t-permalink" class="mw-list-item"><a href="../index.php%3Ftitle=Articles&amp;oldid=23794.html" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info" class="mw-list-item"><a href="../index.php%3Ftitle=Articles&amp;action=info.html" title="More information about this page">Page information</a></li></ul>
+
+ </div>
+</nav>
+
+
+</div>
+
+</div>
+<footer id="footer" class="mw-footer" role="contentinfo" >
+ <ul id="footer-info" >
+ <li id="footer-info-lastmod"> This page was last edited on 19 April 2024, at 16:27.</li>
+</ul>
+
+ <ul id="footer-places" >
+ <li id="footer-places-privacy"><a href="https://open-iov.org/index.php/Open-IOV:Privacy_policy" title="Open-IOV:Privacy policy">Privacy policy</a></li>
+ <li id="footer-places-about"><a href="./Open-IOV:About.html" title="Open-IOV:About">About Open-IOV</a></li>
+ <li id="footer-places-disclaimer"><a href="https://open-iov.org/index.php/Open-IOV:General_disclaimer" title="Open-IOV:General disclaimer">Disclaimers</a></li>
+</ul>
+
+ <ul id="footer-icons" class="noprint">
+ <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="../resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="../resources/assets/poweredby_mediawiki_132x47.png 1.5x, ../resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31" loading="lazy"/></a></li>
+</ul>
+
+</footer>
+
+
+<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.015","walltime":"0.016","ppvisitednodes":{"value":63,"limit":1000000},"postexpandincludesize":{"value":0,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":2,"limit":40},"expensivefunctioncount":{"value":0,"limit":100},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":30,"limit":5000000},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"timestamp":"20260911154946","ttl":86400,"transientcontent":false}}});mw.config.set({"wgBackendResponseTime":68});});</script>
+<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a39968d1aa9039c9',t:'MTc4OTE1ODQwNw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html> \ No newline at end of file