sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget"/translations/zh_CN/driver-api/vmemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/driver-api/vmemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hVME Device Driversh]hVME Device Drivers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh` must be provided to the registration function. Along with the maximum number of devices your driver is able to support.h](h!A pointer to a structure of type }(hjhhhNhNubh)}(h(:c:type:`struct vme_driver `h]h)}(hj h]hstruct vme_driver}(hj hhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnh vme_driveruh1hhhhK hjubhx must be provided to the registration function. Along with the maximum number of devices your driver is able to support.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hAt the minimum, the '.name', '.match' and '.probe' elements of :c:type:`struct vme_driver ` should be correctly set. The '.name' element is a pointer to a string holding the device driver's name.h](hKAt the minimum, the ‘.name’, ‘.match’ and ‘.probe’ elements of }(hj2hhhNhNubh)}(h(:c:type:`struct vme_driver `h]h)}(hj<h]hstruct vme_driver}(hj>hhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnh vme_driveruh1hhhhKhj2ubhn should be correctly set. The ‘.name’ element is a pointer to a string holding the device driver’s name.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX The '.match' function allows control over which VME devices should be registered with the driver. The match function should return 1 if a device should be probed and 0 otherwise. This example match function (from vme_user.c) limits the number of devices probed to one:h]hXThe ‘.match’ function allows control over which VME devices should be registered with the driver. The match function should return 1 if a device should be probed and 0 otherwise. This example match function (from vme_user.c) limits the number of devices probed to one:}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh literal_block)}(h#define USER_BUS_MAX 1 ... static int vme_user_match(struct vme_dev *vdev) { if (vdev->id.num >= USER_BUS_MAX) return 0; return 1; }h]h#define USER_BUS_MAX 1 ... static int vme_user_match(struct vme_dev *vdev) { if (vdev->id.num >= USER_BUS_MAX) return 0; return 1; }}hjssbah}(h]h ]h"]h$]h&] xml:spacepreserveforcelanguagehhighlight_args}uh1jqhhhKhhhhubh)}(hThe '.probe' element should contain a pointer to the probe routine. The probe routine is passed a :c:type:`struct vme_dev ` pointer as an argument.h](hfThe ‘.probe’ element should contain a pointer to the probe routine. The probe routine is passed a }(hjhhhNhNubh)}(h":c:type:`struct vme_dev `h]h)}(hjh]hstruct vme_dev}(hjhhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnhvme_devuh1hhhhK#hjubh pointer as an argument.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hhhhubh)}(hHere, the 'num' field refers to the sequential device ID for this specific driver. The bridge number (or bus number) can be accessed using dev->bridge->num.h]hHere, the ‘num’ field refers to the sequential device ID for this specific driver. The bridge number (or bus number) can be accessed using dev->bridge->num.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hhhhubh)}(hA function is also provided to unregister the driver from the VME core called :c:func:`vme_unregister_driver` and should usually be called from the device driver's exit routine.h](hNA function is also provided to unregister the driver from the VME core called }(hjhhhNhNubh)}(h:c:func:`vme_unregister_driver`h]h)}(hjh]hvme_unregister_driver()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_unregister_driveruh1hhhhK+hjubhF and should usually be called from the device driver’s exit routine.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hhhhubeh}(h]driver-registrationah ]h"]driver registrationah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hResource managementh]hResource management}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK1ubh)}(hXOnce a driver has registered with the VME core the provided match routine will be called the number of times specified during the registration. If a match succeeds, a non-zero value should be returned. A zero return value indicates failure. For all successful matches, the probe routine of the corresponding driver is called. The probe routine is passed a pointer to the devices device structure. This pointer should be saved, it will be required for requesting VME resources.h]hXOnce a driver has registered with the VME core the provided match routine will be called the number of times specified during the registration. If a match succeeds, a non-zero value should be returned. A zero return value indicates failure. For all successful matches, the probe routine of the corresponding driver is called. The probe routine is passed a pointer to the devices device structure. This pointer should be saved, it will be required for requesting VME resources.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjhhubh)}(hXJThe driver can request ownership of one or more master windows (:c:func:`vme_master_request`), slave windows (:c:func:`vme_slave_request`) and/or dma channels (:c:func:`vme_dma_request`). Rather than allowing the device driver to request a specific window or DMA channel (which may be used by a different driver) the API allows a resource to be assigned based on the required attributes of the driver in question. For slave windows these attributes are split into the VME address spaces that need to be accessed in 'aspace' and VME bus cycle types required in 'cycle'. Master windows add a further set of attributes in 'width' specifying the required data transfer widths. These attributes are defined as bitmasks and as such any combination of the attributes can be requested for a single window, the core will assign a window that meets the requirements, returning a pointer of type vme_resource that should be used to identify the allocated resource when it is used. For DMA controllers, the request function requires the potential direction of any transfers to be provided in the route attributes. This is typically VME-to-MEM and/or MEM-to-VME, though some hardware can support VME-to-VME and MEM-to-MEM transfers as well as test pattern generation. If an unallocated window fitting the requirements can not be found a NULL pointer will be returned.h](h@The driver can request ownership of one or more master windows (}(hjhhhNhNubh)}(h:c:func:`vme_master_request`h]h)}(hj(h]hvme_master_request()}(hj*hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_requestuh1hhhhK;hjubh), slave windows (}(hjhhhNhNubh)}(h:c:func:`vme_slave_request`h]h)}(hjKh]hvme_slave_request()}(hjMhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjIubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_slave_requestuh1hhhhK;hjubh) and/or dma channels (}(hjhhhNhNubh)}(h:c:func:`vme_dma_request`h]h)}(hjnh]hvme_dma_request()}(hjphhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_requestuh1hhhhK;hjubhX). Rather than allowing the device driver to request a specific window or DMA channel (which may be used by a different driver) the API allows a resource to be assigned based on the required attributes of the driver in question. For slave windows these attributes are split into the VME address spaces that need to be accessed in ‘aspace’ and VME bus cycle types required in ‘cycle’. Master windows add a further set of attributes in ‘width’ specifying the required data transfer widths. These attributes are defined as bitmasks and as such any combination of the attributes can be requested for a single window, the core will assign a window that meets the requirements, returning a pointer of type vme_resource that should be used to identify the allocated resource when it is used. For DMA controllers, the request function requires the potential direction of any transfers to be provided in the route attributes. This is typically VME-to-MEM and/or MEM-to-VME, though some hardware can support VME-to-VME and MEM-to-MEM transfers as well as test pattern generation. If an unallocated window fitting the requirements can not be found a NULL pointer will be returned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hjhhubh)}(hX Functions are also provided to free window allocations once they are no longer required. These functions (:c:func:`vme_master_free`, :c:func:`vme_slave_free` and :c:func:`vme_dma_free`) should be passed the pointer to the resource provided during resource allocation.h](hjFunctions are also provided to free window allocations once they are no longer required. These functions (}(hjhhhNhNubh)}(h:c:func:`vme_master_free`h]h)}(hjh]hvme_master_free()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_freeuh1hhhhKNhjubh, }(hjhhhNhNubh)}(h:c:func:`vme_slave_free`h]h)}(hjh]hvme_slave_free()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_slave_freeuh1hhhhKNhjubh and }(hjhhhNhNubh)}(h:c:func:`vme_dma_free`h]h)}(hjh]hvme_dma_free()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_dma_freeuh1hhhhKNhjubhS) should be passed the pointer to the resource provided during resource allocation.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhjhhubeh}(h]resource-managementah ]h"]resource managementah$]h&]uh1hhhhhhhhK1ubh)}(hhh](h)}(hMaster windowsh]hMaster windows}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKUubh)}(hMaster windows provide access from the local processor[s] out onto the VME bus. The number of windows available and the available access modes is dependent on the underlying chipset. A window must be configured before it can be used.h]hMaster windows provide access from the local processor[s] out onto the VME bus. The number of windows available and the available access modes is dependent on the underlying chipset. A window must be configured before it can be used.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjhhubh)}(hhh](h)}(hMaster window configurationh]hMaster window configuration}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhK]ubh)}(hXmOnce a master window has been assigned :c:func:`vme_master_set` can be used to configure it and :c:func:`vme_master_get` to retrieve the current settings. The address spaces, transfer widths and cycle types are the same as described under resource management, however some of the options are mutually exclusive. For example, only one address space may be specified.h](h'Once a master window has been assigned }(hjDhhhNhNubh)}(h:c:func:`vme_master_set`h]h)}(hjNh]hvme_master_set()}(hjPhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjLubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_setuh1hhhhK_hjDubh! can be used to configure it and }(hjDhhhNhNubh)}(h:c:func:`vme_master_get`h]h)}(hjqh]hvme_master_get()}(hjshhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_getuh1hhhhK_hjDubh to retrieve the current settings. The address spaces, transfer widths and cycle types are the same as described under resource management, however some of the options are mutually exclusive. For example, only one address space may be specified.}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hj3hhubeh}(h]master-window-configurationah ]h"]master window configurationah$]h&]uh1hhjhhhhhK]ubh)}(hhh](h)}(hMaster window accessh]hMaster window access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKgubh)}(hThe function :c:func:`vme_master_read` can be used to read from and :c:func:`vme_master_write` used to write to configured master windows.h](h The function }(hjhhhNhNubh)}(h:c:func:`vme_master_read`h]h)}(hjh]hvme_master_read()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_readuh1hhhhKihjubh can be used to read from and }(hjhhhNhNubh)}(h:c:func:`vme_master_write`h]h)}(hjh]hvme_master_write()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_writeuh1hhhhKihjubh, used to write to configured master windows.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKihjhhubh)}(hIn addition to simple reads and writes, :c:func:`vme_master_rmw` is provided to do a read-modify-write transaction. Parts of a VME window can also be mapped into user space memory using :c:func:`vme_master_mmap`.h](h(In addition to simple reads and writes, }(hjhhhNhNubh)}(h:c:func:`vme_master_rmw`h]h)}(hjh]hvme_master_rmw()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_rmwuh1hhhhKlhjubhz is provided to do a read-modify-write transaction. Parts of a VME window can also be mapped into user space memory using }(hjhhhNhNubh)}(h:c:func:`vme_master_mmap`h]h)}(hj2h]hvme_master_mmap()}(hj4hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_mmapuh1hhhhKlhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKlhjhhubeh}(h]master-window-accessah ]h"]master window accessah$]h&]uh1hhjhhhhhKgubeh}(h]master-windowsah ]h"]master windowsah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(h Slave windowsh]h Slave windows}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhKrubh)}(hSlave windows provide devices on the VME bus access into mapped portions of the local memory. The number of windows available and the access modes that can be used is dependent on the underlying chipset. A window must be configured before it can be used.h]hSlave windows provide devices on the VME bus access into mapped portions of the local memory. The number of windows available and the access modes that can be used is dependent on the underlying chipset. A window must be configured before it can be used.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjihhubh)}(hhh](h)}(hSlave window configurationh]hSlave window configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK{ubh)}(hOnce a slave window has been assigned :c:func:`vme_slave_set` can be used to configure it and :c:func:`vme_slave_get` to retrieve the current settings.h](h&Once a slave window has been assigned }(hjhhhNhNubh)}(h:c:func:`vme_slave_set`h]h)}(hjh]hvme_slave_set()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slave_setuh1hhhhK}hjubh! can be used to configure it and }(hjhhhNhNubh)}(h:c:func:`vme_slave_get`h]h)}(hjh]hvme_slave_get()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slave_getuh1hhhhK}hjubh" to retrieve the current settings.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK}hjhhubh)}(hThe address spaces, transfer widths and cycle types are the same as described under resource management, however some of the options are mutually exclusive. For example, only one address space may be specified.h]hThe address spaces, transfer widths and cycle types are the same as described under resource management, however some of the options are mutually exclusive. For example, only one address space may be specified.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]slave-window-configurationah ]h"]slave window configurationah$]h&]uh1hhjihhhhhK{ubh)}(hhh](h)}(hSlave window buffer allocationh]hSlave window buffer allocation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXtFunctions are provided to allow the user to allocate (:c:func:`vme_alloc_consistent`) and free (:c:func:`vme_free_consistent`) contiguous buffers which will be accessible by the VME bridge. These functions do not have to be used, other methods can be used to allocate a buffer, though care must be taken to ensure that they are contiguous and accessible by the VME bridge.h](h6Functions are provided to allow the user to allocate (}(hjhhhNhNubh)}(h:c:func:`vme_alloc_consistent`h]h)}(hjh]hvme_alloc_consistent()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_alloc_consistentuh1hhhhKhjubh ) and free (}(hjhhhNhNubh)}(h:c:func:`vme_free_consistent`h]h)}(hjAh]hvme_free_consistent()}(hjChhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_free_consistentuh1hhhhKhjubh) contiguous buffers which will be accessible by the VME bridge. These functions do not have to be used, other methods can be used to allocate a buffer, though care must be taken to ensure that they are contiguous and accessible by the VME bridge.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]slave-window-buffer-allocationah ]h"]slave window buffer allocationah$]h&]uh1hhjihhhhhKubh)}(hhh](h)}(hSlave window accessh]hSlave window access}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphhhhhKubh)}(hjSlave windows map local memory onto the VME bus, the standard methods for accessing memory should be used.h]hjSlave windows map local memory onto the VME bus, the standard methods for accessing memory should be used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjphhubeh}(h]slave-window-accessah ]h"]slave window accessah$]h&]uh1hhjihhhhhKubeh}(h] slave-windowsah ]h"] slave windowsah$]h&]uh1hhhhhhhhKrubh)}(hhh](h)}(h DMA channelsh]h DMA channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThe VME DMA transfer provides the ability to run link-list DMA transfers. The API introduces the concept of DMA lists. Each DMA list is a link-list which can be passed to a DMA controller. Multiple lists can be created, extended, executed, reused and destroyed.h]hXThe VME DMA transfer provides the ability to run link-list DMA transfers. The API introduces the concept of DMA lists. Each DMA list is a link-list which can be passed to a DMA controller. Multiple lists can be created, extended, executed, reused and destroyed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hList Managementh]hList Management}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe function :c:func:`vme_new_dma_list` is provided to create and :c:func:`vme_dma_list_free` to destroy DMA lists. Execution of a list will not automatically destroy the list, thus enabling a list to be reused for repetitive tasks.h](h The function }(hjhhhNhNubh)}(h:c:func:`vme_new_dma_list`h]h)}(hjh]hvme_new_dma_list()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_new_dma_listuh1hhhhKhjubh is provided to create and }(hjhhhNhNubh)}(h:c:func:`vme_dma_list_free`h]h)}(hjh]hvme_dma_list_free()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_freeuh1hhhhKhjubh to destroy DMA lists. Execution of a list will not automatically destroy the list, thus enabling a list to be reused for repetitive tasks.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]list-managementah ]h"]list managementah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hList Populationh]hList Population}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhhhKubh)}(hAn item can be added to a list using :c:func:`vme_dma_list_add` (the source and destination attributes need to be created before calling this function, this is covered under "Transfer Attributes").h](h%An item can be added to a list using }(hj<hhhNhNubh)}(h:c:func:`vme_dma_list_add`h]h)}(hjFh]hvme_dma_list_add()}(hjHhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_adduh1hhhhKhj<ubh (the source and destination attributes need to be created before calling this function, this is covered under “Transfer Attributes”).}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj+hhubhnote)}(hXuThe detailed attributes of the transfers source and destination are not checked until an entry is added to a DMA list, the request for a DMA channel purely checks the directions in which the controller is expected to transfer data. As a result it is possible for this call to return an error, for example if the source or destination is in an unsupported VME address space.h]h)}(hXuThe detailed attributes of the transfers source and destination are not checked until an entry is added to a DMA list, the request for a DMA channel purely checks the directions in which the controller is expected to transfer data. As a result it is possible for this call to return an error, for example if the source or destination is in an unsupported VME address space.h]hXuThe detailed attributes of the transfers source and destination are not checked until an entry is added to a DMA list, the request for a DMA channel purely checks the directions in which the controller is expected to transfer data. As a result it is possible for this call to return an error, for example if the source or destination is in an unsupported VME address space.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjoubah}(h]h ]h"]h$]h&]uh1jmhj+hhhhhNubeh}(h]list-populationah ]h"]list populationah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTransfer Attributesh]hTransfer Attributes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hX+The attributes for the source and destination are handled separately from adding an item to a list. This is due to the diverse attributes required for each type of source and destination. There are functions to create attributes for PCI, VME and pattern sources and destinations (where appropriate):h]hX+The attributes for the source and destination are handled separately from adding an item to a list. This is due to the diverse attributes required for each type of source and destination. There are functions to create attributes for PCI, VME and pattern sources and destinations (where appropriate):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(h- PCI source or destination: :c:func:`vme_dma_pci_attribute` - VME source or destination: :c:func:`vme_dma_vme_attribute` - Pattern source: :c:func:`vme_dma_pattern_attribute` h]h bullet_list)}(hhh](h list_item)}(h:PCI source or destination: :c:func:`vme_dma_pci_attribute`h]h)}(hjh](hPCI source or destination: }(hjhhhNhNubh)}(h:c:func:`vme_dma_pci_attribute`h]h)}(hjh]hvme_dma_pci_attribute()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_pci_attributeuh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h:VME source or destination: :c:func:`vme_dma_vme_attribute`h]h)}(hjh](hVME source or destination: }(hjhhhNhNubh)}(h:c:func:`vme_dma_vme_attribute`h]h)}(hjh]hvme_dma_vme_attribute()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_vme_attributeuh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h4Pattern source: :c:func:`vme_dma_pattern_attribute` h]h)}(h3Pattern source: :c:func:`vme_dma_pattern_attribute`h](hPattern source: }(hj+hhhNhNubh)}(h#:c:func:`vme_dma_pattern_attribute`h]h)}(hj5h]hvme_dma_pattern_attribute()}(hj7hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj3ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_pattern_attributeuh1hhhhKhj+ubeh}(h]h ]h"]h$]h&]uh1hhhhKhj'ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubh)}(hRThe function :c:func:`vme_dma_free_attribute` should be used to free an attribute.h](h The function }(hjlhhhNhNubh)}(h :c:func:`vme_dma_free_attribute`h]h)}(hjvh]hvme_dma_free_attribute()}(hjxhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjtubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_free_attributeuh1hhhhKhjlubh% should be used to free an attribute.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]transfer-attributesah ]h"]transfer attributesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hList Executionh]hList Execution}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(huThe function :c:func:`vme_dma_list_exec` queues a list for execution and will return once the list has been executed.h](h The function }(hjhhhNhNubh)}(h:c:func:`vme_dma_list_exec`h]h)}(hjh]hvme_dma_list_exec()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_execuh1hhhhKhjubhM queues a list for execution and will return once the list has been executed.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]list-executionah ]h"]list executionah$]h&]uh1hhjhhhhhKubeh}(h] dma-channelsah ]h"] dma channelsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Interruptsh]h Interrupts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe VME API provides functions to attach and detach callbacks to specific VME level and status ID combinations and for the generation of VME interrupts with specific VME level and status IDs.h]hThe VME API provides functions to attach and detach callbacks to specific VME level and status ID combinations and for the generation of VME interrupts with specific VME level and status IDs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hAttaching Interrupt Handlersh]hAttaching Interrupt Handlers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThe function :c:func:`vme_irq_request` can be used to attach and :c:func:`vme_irq_free` to free a specific VME level and status ID combination. Any given combination can only be assigned a single callback function. A void pointer parameter is provided, the value of which is passed to the callback function, the use of this pointer is user undefined. The callback parameters are as follows. Care must be taken in writing a callback function, callback functions run in interrupt context:h](h The function }(hj'hhhNhNubh)}(h:c:func:`vme_irq_request`h]h)}(hj1h]hvme_irq_request()}(hj3hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj/ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_irq_requestuh1hhhhKhj'ubh can be used to attach and }(hj'hhhNhNubh)}(h:c:func:`vme_irq_free`h]h)}(hjTh]hvme_irq_free()}(hjVhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_irq_freeuh1hhhhKhj'ubhX to free a specific VME level and status ID combination. Any given combination can only be assigned a single callback function. A void pointer parameter is provided, the value of which is passed to the callback function, the use of this pointer is user undefined. The callback parameters are as follows. Care must be taken in writing a callback function, callback functions run in interrupt context:}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjr)}(h1void callback(int level, int statid, void *priv);h]h1void callback(int level, int statid, void *priv);}hj{sbah}(h]h ]h"]h$]h&]jjjjhj}uh1jqhhhKhjhhubeh}(h]attaching-interrupt-handlersah ]h"]attaching interrupt handlersah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hInterrupt Generationh]hInterrupt Generation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hwThe function :c:func:`vme_irq_generate` can be used to generate a VME interrupt at a given VME level and VME status ID.h](h The function }(hjhhhNhNubh)}(h:c:func:`vme_irq_generate`h]h)}(hjh]hvme_irq_generate()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_irq_generateuh1hhhhKhjubhP can be used to generate a VME interrupt at a given VME level and VME status ID.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]interrupt-generationah ]h"]interrupt generationah$]h&]uh1hhjhhhhhKubeh}(h] interruptsah ]h"] interruptsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hLocation monitorsh]hLocation monitors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hSThe VME API provides the following functionality to configure the location monitor.h]hSThe VME API provides the following functionality to configure the location monitor.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hLocation Monitor Managementh]hLocation Monitor Management}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hXaThe function :c:func:`vme_lm_request` is provided to request the use of a block of location monitors and :c:func:`vme_lm_free` to free them after they are no longer required. Each block may provide a number of location monitors, monitoring adjacent locations. The function :c:func:`vme_lm_count` can be used to determine how many locations are provided.h](h The function }(hj hhhNhNubh)}(h:c:func:`vme_lm_request`h]h)}(hj h]hvme_lm_request()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_lm_requestuh1hhhhKhj ubhD is provided to request the use of a block of location monitors and }(hj hhhNhNubh)}(h:c:func:`vme_lm_free`h]h)}(hjA h]h vme_lm_free()}(hjC hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj? ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_freeuh1hhhhKhj ubh to free them after they are no longer required. Each block may provide a number of location monitors, monitoring adjacent locations. The function }(hj hhhNhNubh)}(h:c:func:`vme_lm_count`h]h)}(hjd h]hvme_lm_count()}(hjf hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjb ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_countuh1hhhhKhj ubh: can be used to determine how many locations are provided.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]location-monitor-managementah ]h"]location monitor managementah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hLocation Monitor Configurationh]hLocation Monitor Configuration}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hOnce a bank of location monitors has been allocated, the function :c:func:`vme_lm_set` is provided to configure the location and mode of the location monitor. The function :c:func:`vme_lm_get` can be used to retrieve existing settings.h](hBOnce a bank of location monitors has been allocated, the function }(hj hhhNhNubh)}(h:c:func:`vme_lm_set`h]h)}(hj h]h vme_lm_set()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_setuh1hhhhMhj ubhV is provided to configure the location and mode of the location monitor. The function }(hj hhhNhNubh)}(h:c:func:`vme_lm_get`h]h)}(hj h]h vme_lm_get()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_getuh1hhhhMhj ubh+ can be used to retrieve existing settings.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]location-monitor-configurationah ]h"]location monitor configurationah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hLocation Monitor Useh]hLocation Monitor Use}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM ubh)}(hXThe function :c:func:`vme_lm_attach` enables a callback to be attached and :c:func:`vme_lm_detach` allows on to be detached from each location monitor location. Each location monitor can monitor a number of adjacent locations. The callback function is declared as follows.h](h The function }(hj hhhNhNubh)}(h:c:func:`vme_lm_attach`h]h)}(hj h]hvme_lm_attach()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_attachuh1hhhhM hj ubh' enables a callback to be attached and }(hj hhhNhNubh)}(h:c:func:`vme_lm_detach`h]h)}(hj> h]hvme_lm_detach()}(hj@ hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj< ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_detachuh1hhhhM hj ubh allows on to be detached from each location monitor location. Each location monitor can monitor a number of adjacent locations. The callback function is declared as follows.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj hhubjr)}(hvoid callback(void *data);h]hvoid callback(void *data);}hje sbah}(h]h ]h"]h$]h&]jjjjhj}uh1jqhhhMhj hhubeh}(h]location-monitor-useah ]h"]location monitor useah$]h&]uh1hhjhhhhhM ubeh}(h]location-monitorsah ]h"]location monitorsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSlot Detectionh]hSlot Detection}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hOThe function :c:func:`vme_slot_num` returns the slot ID of the provided bridge.h](h The function }(hj hhhNhNubh)}(h:c:func:`vme_slot_num`h]h)}(hj h]hvme_slot_num()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slot_numuh1hhhhMhj ubh, returns the slot ID of the provided bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]slot-detectionah ]h"]slot detectionah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h Bus Detectionh]h Bus Detection}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hMThe function :c:func:`vme_bus_num` returns the bus ID of the provided bridge.h](h The function }(hj hhhNhNubh)}(h:c:func:`vme_bus_num`h]h)}(hj h]h vme_bus_num()}(hj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_bus_numuh1hhhhMhj ubh+ returns the bus ID of the provided bridge.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] bus-detectionah ]h"] bus detectionah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hVME APIh]hVME API}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM#ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlevme_dev (C struct) c.vme_devhNtauh1j) hj hhhNhNubhdesc)}(hhh](hdesc_signature)}(hvme_devh]hdesc_signature_line)}(hstruct vme_devh](hdesc_sig_keyword)}(hstructh]hstruct}(hjM hhhNhNubah}(h]h ]kah"]h$]h&]uh1jK hjG hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKubhdesc_sig_space)}(h h]h }(hj_ hhhNhNubah}(h]h ]wah"]h$]h&]uh1j] hjG hhhj\ hKubh desc_name)}(hvme_devh]h desc_sig_name)}(hjC h]hvme_dev}(hjv hhhNhNubah}(h]h ]nah"]h$]h&]uh1jt hjp ubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1jn hjG hhhj\ hKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jE sphinx_line_type declaratorhjA hhhj\ hKubah}(h]j8 ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j? hj\ hKhj< hhubh desc_content)}(hhh]h)}(h#Structure representing a VME deviceh]h#Structure representing a VME device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKahj hhubah}(h]h ]h"]h$]h&]uh1j hj< hhhj\ hKubeh}(h]h ](hstructeh"]h$]h&]domainhobjtypej desctypej noindex noindexentrynocontentsentryuh1j: hhhj hNhNubh container)}(hX**Definition**:: struct vme_dev { int num; struct vme_bridge *bridge; struct device dev; struct list_head drv_list; struct list_head bridge_list; }; **Members** ``num`` The device number ``bridge`` Pointer to the bridge device this device is on ``dev`` Internal device structure ``drv_list`` List of devices (per driver) ``bridge_list`` List of devices (per bridge)h](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKehj ubjr)}(hstruct vme_dev { int num; struct vme_bridge *bridge; struct device dev; struct list_head drv_list; struct list_head bridge_list; };h]hstruct vme_dev { int num; struct vme_bridge *bridge; struct device dev; struct list_head drv_list; struct list_head bridge_list; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jqh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKghj ubh)}(h **Members**h]j )}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKohj ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``num`` The device number h](hterm)}(h``num``h]h)}(hj" h]hnum}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKchj ubh definition)}(hhh]h)}(hThe device numberh]hThe device number}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 hKchj: ubah}(h]h ]h"]h$]h&]uh1j8 hj ubeh}(h]h ]h"]h$]h&]uh1j hj7 hKchj ubj )}(h:``bridge`` Pointer to the bridge device this device is on h](j )}(h ``bridge``h]h)}(hj] h]hbridge}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKdhjW ubj9 )}(hhh]h)}(h.Pointer to the bridge device this device is onh]h.Pointer to the bridge device this device is on}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr hKdhjs ubah}(h]h ]h"]h$]h&]uh1j8 hjW ubeh}(h]h ]h"]h$]h&]uh1j hjr hKdhj ubj )}(h"``dev`` Internal device structure h](j )}(h``dev``h]h)}(hj h]hdev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKehj ubj9 )}(hhh]h)}(hInternal device structureh]hInternal device structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKehj ubah}(h]h ]h"]h$]h&]uh1j8 hj ubeh}(h]h ]h"]h$]h&]uh1j hj hKehj ubj )}(h*``drv_list`` List of devices (per driver) h](j )}(h ``drv_list``h]h)}(hj h]hdrv_list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj ubj9 )}(hhh]h)}(hList of devices (per driver)h]hList of devices (per driver)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKfhj ubah}(h]h ]h"]h$]h&]uh1j8 hj ubeh}(h]h ]h"]h$]h&]uh1j hj hKfhj ubj )}(h,``bridge_list`` List of devices (per bridge)h](j )}(h``bridge_list``h]h)}(hj h]h bridge_list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj ubj9 )}(hhh]h)}(hList of devices (per bridge)h]hList of devices (per bridge)}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKghj ubah}(h]h ]h"]h$]h&]uh1j8 hj ubeh}(h]h ]h"]h$]h&]uh1j hj hKfhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_driver (C struct) c.vme_driverhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h vme_driverh]jF )}(hstruct vme_driverh](jL )}(hjO h]hstruct}(hjb hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj^ hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKmubj^ )}(h h]h }(hjp hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj^ hhhjo hKmubjo )}(h vme_driverh]ju )}(hj\ h]h vme_driver}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj~ ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj^ hhhjo hKmubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjZ hhhjo hKmubah}(h]jU ah ](j j eh"]h$]h&]j j )j huh1j? hjo hKmhjW hhubj )}(hhh]h)}(h#Structure representing a VME driverh]h#Structure representing a VME driver}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKqhj hhubah}(h]h ]h"]h$]h&]uh1j hjW hhhjo hKmubeh}(h]h ](hstructeh"]h$]h&]j hj j j j j j j uh1j: hhhj hNhNubj )}(hX**Definition**:: struct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; }; **Members** ``name`` Driver name, should be unique among VME drivers and usually the same as the module name. ``match`` Callback used to determine whether probe should be run. ``probe`` Callback for device binding, called when new device is detected. ``remove`` Callback, called on device removal. ``driver`` Underlying generic device driver structure. ``devices`` List of VME devices (struct vme_dev) associated with this driver.h](h)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKuhj ubjr)}(hstruct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; };h]hstruct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jqh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhj ubh)}(h **Members**h]j )}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKhj ubj )}(hhh](j )}(hb``name`` Driver name, should be unique among VME drivers and usually the same as the module name. h](j )}(h``name``h]h)}(hjh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKthj ubj9 )}(hhh]h)}(hXDriver name, should be unique among VME drivers and usually the same as the module name.h]hXDriver name, should be unique among VME drivers and usually the same as the module name.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKshj'ubah}(h]h ]h"]h$]h&]uh1j8 hj ubeh}(h]h ]h"]h$]h&]uh1j hj&hKthjubj )}(hB``match`` Callback used to determine whether probe should be run. h](j )}(h ``match``h]h)}(hjKh]hmatch}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKuhjEubj9 )}(hhh]h)}(h7Callback used to determine whether probe should be run.h]h7Callback used to determine whether probe should be run.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKuhjaubah}(h]h ]h"]h$]h&]uh1j8 hjEubeh}(h]h ]h"]h$]h&]uh1j hj`hKuhjubj )}(hK``probe`` Callback for device binding, called when new device is detected. h](j )}(h ``probe``h]h)}(hjh]hprobe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKvhj~ubj9 )}(hhh]h)}(h@Callback for device binding, called when new device is detected.h]h@Callback for device binding, called when new device is detected.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKvhjubah}(h]h ]h"]h$]h&]uh1j8 hj~ubeh}(h]h ]h"]h$]h&]uh1j hjhKvhjubj )}(h/``remove`` Callback, called on device removal. h](j )}(h ``remove``h]h)}(hjh]hremove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhjubj9 )}(hhh]h)}(h#Callback, called on device removal.h]h#Callback, called on device removal.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKwhjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhKwhjubj )}(h7``driver`` Underlying generic device driver structure. h](j )}(h ``driver``h]h)}(hjh]hdriver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhjubj9 )}(hhh]h)}(h+Underlying generic device driver structure.h]h+Underlying generic device driver structure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKxhj ubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hj hKxhjubj )}(hM``devices`` List of VME devices (struct vme_dev) associated with this driver.h](j )}(h ``devices``h]h)}(hj/h]hdevices}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhj)ubj9 )}(hhh]h)}(hAList of VME devices (struct vme_dev) associated with this driver.h]hAList of VME devices (struct vme_dev) associated with this driver.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKyhjEubah}(h]h ]h"]h$]h&]uh1j8 hj)ubeh}(h]h ]h"]h$]h&]uh1j hjDhKxhjubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 !vme_alloc_consistent (C function)c.vme_alloc_consistenthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hYvoid * vme_alloc_consistent (struct vme_resource *resource, size_t size, dma_addr_t *dma)h]jF )}(hWvoid *vme_alloc_consistent(struct vme_resource *resource, size_t size, dma_addr_t *dma)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKFubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhjhKFubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKFubjo )}(hvme_alloc_consistenth]ju )}(hvme_alloc_consistenth]hvme_alloc_consistent}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjhhhjhKFubhdesc_parameterlist)}(h=(struct vme_resource *resource, size_t size, dma_addr_t *dma)h](hdesc_parameter)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.vme_alloc_consistentasbuh1hhjubj^ )}(h h]h }(hj$hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hresourceh]hresource}(hj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h size_t sizeh](h)}(hhh]ju )}(hsize_th]hsize_t}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjXubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj]modnameN classnameNjj)}j]j c.vme_alloc_consistentasbuh1hhjTubj^ )}(h h]h }(hjyhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjTubju )}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjTubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t *dmah](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]j c.vme_alloc_consistentasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hdmah]hdma}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKFubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhjhKFubah}(h]j|ah ](j j eh"]h$]h&]j j )j huh1j? hjhKFhj~hhubj )}(hhh]h)}(hAllocate contiguous memory.h]hAllocate contiguous memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKFhjhhubah}(h]h ]h"]h$]h&]uh1j hj~hhhjhKFubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME resource. ``size_t size`` Size of allocation required. ``dma_addr_t *dma`` Pointer to variable to store physical address of allocation. **Description** Allocate a contiguous block of memory for use by the driver. This is used to create the buffers for the slave windows. **Return** Virtual address of allocation on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hj(h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKJhj"ubj )}(hhh](j )}(h;``struct vme_resource *resource`` Pointer to VME resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjGh]hstruct vme_resource *resource}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKGhjAubj9 )}(hhh]h)}(hPointer to VME resource.h]hPointer to VME resource.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKGhj]ubah}(h]h ]h"]h$]h&]uh1j8 hjAubeh}(h]h ]h"]h$]h&]uh1j hj\hKGhj>ubj )}(h-``size_t size`` Size of allocation required. h](j )}(h``size_t size``h]h)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKHhjzubj9 )}(hhh]h)}(hSize of allocation required.h]hSize of allocation required.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKHhjubah}(h]h ]h"]h$]h&]uh1j8 hjzubeh}(h]h ]h"]h$]h&]uh1j hjhKHhj>ubj )}(hQ``dma_addr_t *dma`` Pointer to variable to store physical address of allocation. h](j )}(h``dma_addr_t *dma``h]h)}(hjh]hdma_addr_t *dma}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKIhjubj9 )}(hhh]h)}(hubeh}(h]h ]h"]h$]h&]uh1j hj"ubh)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKKhj"ubh)}(hvAllocate a contiguous block of memory for use by the driver. This is used to create the buffers for the slave windows.h]hvAllocate a contiguous block of memory for use by the driver. This is used to create the buffers for the slave windows.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKJhj"ubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKMhj"ubh)}(h:Virtual address of allocation on success, NULL on failure.h]h:Virtual address of allocation on success, NULL on failure.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKNhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_free_consistent (C function)c.vme_free_consistenthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hbvoid vme_free_consistent (struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h]jF )}(havoid vme_free_consistent(struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h](j)}(hvoidh]hvoid}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKaubj^ )}(h h]h }(hjohhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj\hhhjnhKaubjo )}(hvme_free_consistenth]ju )}(hvme_free_consistenth]hvme_free_consistent}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj}ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj\hhhjnhKaubj)}(hI(struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.vme_free_consistentasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h size_t sizeh](h)}(hhh]ju )}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]jc.vme_free_consistentasbuh1hhj ubj^ )}(h h]h }(hj0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj ubju )}(hsizeh]hsize}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h void *vaddrh](j)}(hvoidh]hvoid}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj^ )}(h h]h }(hjehhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjSubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubju )}(hvaddrh]hvaddr}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t dmah](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]jc.vme_free_consistentasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(hdmah]hdma}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhj\hhhjnhKaubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjXhhhjnhKaubah}(h]jSah ](j j eh"]h$]h&]j j )j huh1j? hjnhKahjUhhubj )}(hhh]h)}(h!Free previously allocated memory.h]h!Free previously allocated memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKahjhhubah}(h]h ]h"]h$]h&]uh1j hjUhhhjnhKaubeh}(h]h ](hfunctioneh"]h$]h&]j hj j j j j j j uh1j: hhhj hNhNubj )}(hX+**Parameters** ``struct vme_resource *resource`` Pointer to VME resource. ``size_t size`` Size of allocation to free. ``void *vaddr`` Virtual address of allocation. ``dma_addr_t dma`` Physical address of allocation. **Description** Free previously allocated block of contiguous memory.h](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKehjubj )}(hhh](j )}(h;``struct vme_resource *resource`` Pointer to VME resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj3h]hstruct vme_resource *resource}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKbhj-ubj9 )}(hhh]h)}(hPointer to VME resource.h]hPointer to VME resource.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKbhjIubah}(h]h ]h"]h$]h&]uh1j8 hj-ubeh}(h]h ]h"]h$]h&]uh1j hjHhKbhj*ubj )}(h,``size_t size`` Size of allocation to free. h](j )}(h``size_t size``h]h)}(hjlh]h size_t size}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKchjfubj9 )}(hhh]h)}(hSize of allocation to free.h]hSize of allocation to free.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKchjubah}(h]h ]h"]h$]h&]uh1j8 hjfubeh}(h]h ]h"]h$]h&]uh1j hjhKchj*ubj )}(h/``void *vaddr`` Virtual address of allocation. h](j )}(h``void *vaddr``h]h)}(hjh]h void *vaddr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKdhjubj9 )}(hhh]h)}(hVirtual address of allocation.h]hVirtual address of allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKdhjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhKdhj*ubj )}(h3``dma_addr_t dma`` Physical address of allocation. h](j )}(h``dma_addr_t dma``h]h)}(hjh]hdma_addr_t dma}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKehjubj9 )}(hhh]h)}(hPhysical address of allocation.h]hPhysical address of allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKehjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhKehj*ubeh}(h]h ]h"]h$]h&]uh1j hjubh)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKghjubh)}(h5Free previously allocated block of contiguous memory.h]h5Free previously allocated block of contiguous memory.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKfhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_get_size (C function)c.vme_get_sizehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h3size_t vme_get_size (struct vme_resource *resource)h]jF )}(h2size_t vme_get_size(struct vme_resource *resource)h](h)}(hhh]ju )}(hsize_th]hsize_t}(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj^ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjcmodnameN classnameNjj)}j]j)}j vme_get_sizesbc.vme_get_sizeasbuh1hhjZhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKzubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjZhhhjhKzubjo )}(h vme_get_sizeh]ju )}(hjh]h vme_get_size}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjZhhhjhKzubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]j}c.vme_get_sizeasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjZhhhjhKzubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjVhhhjhKzubah}(h]jQah ](j j eh"]h$]h&]j j )j huh1j? hjhKzhjShhubj )}(hhh]h)}(h.Helper function returning size of a VME windowh]h.Helper function returning size of a VME window}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKzhj.hhubah}(h]h ]h"]h$]h&]uh1j hjShhhjhKzubeh}(h]h ](hfunctioneh"]h$]h&]j hj jIj jIj j j uh1j: hhhj hNhNubj )}(hXc**Parameters** ``struct vme_resource *resource`` Pointer to VME slave or master resource. **Description** Determine the size of the VME window provided. This is a helper function, wrappering the call to vme_master_get or vme_slave_get depending on the type of window resource handed to it. **Return** Size of the window on success, zero on failure.h](h)}(h**Parameters**h]j )}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chK~hjMubj )}(hhh]j )}(hK``struct vme_resource *resource`` Pointer to VME slave or master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjrh]hstruct vme_resource *resource}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chK{hjlubj9 )}(hhh]h)}(h(Pointer to VME slave or master resource.h]h(Pointer to VME slave or master resource.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK{hjubah}(h]h ]h"]h$]h&]uh1j8 hjlubeh}(h]h ]h"]h$]h&]uh1j hjhK{hjiubah}(h]h ]h"]h$]h&]uh1j hjMubh)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chK}hjMubh)}(hDetermine the size of the VME window provided. This is a helper function, wrappering the call to vme_master_get or vme_slave_get depending on the type of window resource handed to it.h]hDetermine the size of the VME window provided. This is a helper function, wrappering the call to vme_master_get or vme_slave_get depending on the type of window resource handed to it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chK|hjMubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjMubh)}(h/Size of the window on success, zero on failure.h]h/Size of the window on success, zero on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_slave_request (C function)c.vme_slave_requesthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hVstruct vme_resource * vme_slave_request (struct vme_dev *vdev, u32 address, u32 cycle)h]jF )}(hTstruct vme_resource *vme_slave_request(struct vme_dev *vdev, u32 address, u32 cycle)h](jL )}(hjO h]hstruct}(hjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKubj^ )}(h h]h }(hj'hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhj&hKubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj5ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj:modnameN classnameNjj)}j]j)}jvme_slave_requestsbc.vme_slave_requestasbuh1hhjhhhj&hKubj^ )}(h h]h }(hjYhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhj&hKubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj&hKubjo )}(hvme_slave_requesth]ju )}(hjVh]hvme_slave_request}(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjtubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjhhhj&hKubj)}(h.(struct vme_dev *vdev, u32 address, u32 cycle)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]jTc.vme_slave_requestasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hvdevh]hvdev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 addressh](h)}(hhh]ju )}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]jTc.vme_slave_requestasbuh1hhjubj^ )}(h h]h }(hj$hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(haddressh]haddress}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjKubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjPmodnameN classnameNjj)}j]jTc.vme_slave_requestasbuh1hhjGubj^ )}(h h]h }(hjlhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGubju )}(hcycleh]hcycle}(hjzhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhj&hKubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhj&hKubah}(h]j ah ](j j eh"]h$]h&]j j )j huh1j? hj&hKhjhhubj )}(hhh]h)}(h$Request a VME slave window resource.h]h$Request a VME slave window resource.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhj&hKubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``u32 address`` Required VME address space. ``u32 cycle`` Required VME data transfer cycle type. **Description** Request use of a VME window resource capable of being set for the requested address space and data transfer cycle. **Return** Pointer to VME resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjh]hstruct vme_dev *vdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(h,``u32 address`` Required VME address space. h](j )}(h``u32 address``h]h)}(hjh]h u32 address}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubj9 )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hKhj4ubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hj3hKhjubj )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j )}(h ``u32 cycle``h]h)}(hjWh]h u32 cycle}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjQubj9 )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKhjmubah}(h]h ]h"]h$]h&]uh1j8 hjQubeh}(h]h ]h"]h$]h&]uh1j hjlhKhjubeh}(h]h ]h"]h$]h&]uh1j hjubh)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubh)}(hrRequest use of a VME window resource capable of being set for the requested address space and data transfer cycle.h]hrRequest use of a VME window resource capable of being set for the requested address space and data transfer cycle.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubh)}(h4Pointer to VME resource on success, NULL on failure.h]h4Pointer to VME resource on success, NULL on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_slave_set (C function)c.vme_slave_sethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hint vme_slave_set (struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, dma_addr_t buf_base, u32 aspace, u32 cycle)h]jF )}(hint vme_slave_set(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, dma_addr_t buf_base, u32 aspace, u32 cycle)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhj hM7ubjo )}(h vme_slave_seth]ju )}(h vme_slave_seth]h vme_slave_set}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjhhhj hM7ubj)}(h(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, dma_addr_t buf_base, u32 aspace, u32 cycle)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj;hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj7ubj^ )}(h h]h }(hjHhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj7ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjVubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.vme_slave_setasbuh1hhj7ubj^ )}(h h]h }(hjyhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubju )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(h int enabledh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(henabledh]henabled}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(hunsigned long long vme_baseh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hj(hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(hvme_baseh]hvme_base}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(hunsigned long long sizeh](j)}(hunsignedh]hunsigned}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj^ )}(h h]h }(hj]hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjKubj)}(hlongh]hlong}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj^ )}(h h]h }(hjyhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjKubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjKubju )}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjKubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(hdma_addr_t buf_baseh](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmodnameN classnameNjj)}j]juc.vme_slave_setasbuh1hhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(hbuf_baseh]hbuf_base}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(h u32 aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj modnameN classnameNjj)}j]juc.vme_slave_setasbuh1hhjubj^ )}(h h]h }(hj%hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubju )}(haspaceh]haspace}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hjOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjLubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjQmodnameN classnameNjj)}j]juc.vme_slave_setasbuh1hhjHubj^ )}(h h]h }(hjmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjHubju )}(hcycleh]hcycle}(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjHubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhj hM7ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhj hM7ubah}(h]jah ](j j eh"]h$]h&]j j )j huh1j? hj hM7hjhhubj )}(hhh]h)}(h#Set VME slave window configuration.h]h#Set VME slave window configuration.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhj hM7ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME slave resource. ``int enabled`` State to which the window should be configured. ``unsigned long long vme_base`` Base address for the window. ``unsigned long long size`` Size of the VME window. ``dma_addr_t buf_base`` Based address of buffer used to provide VME slave window storage. ``u32 aspace`` VME address space for the VME window. ``u32 cycle`` VME data transfer cycle type for the VME window. **Description** Set configuration for provided VME slave window. **Return** Zero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjubj )}(hhh](j )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjh]hstruct vme_resource *resource}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hjubj9 )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM8hjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhM8hjubj )}(h@``int enabled`` State to which the window should be configured. h](j )}(h``int enabled``h]h)}(hjh]h int enabled}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hjubj9 )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hM9hj5ubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hj4hM9hjubj )}(h=``unsigned long long vme_base`` Base address for the window. h](j )}(h``unsigned long long vme_base``h]h)}(hjXh]hunsigned long long vme_base}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hjRubj9 )}(hhh]h)}(hBase address for the window.h]hBase address for the window.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhM:hjnubah}(h]h ]h"]h$]h&]uh1j8 hjRubeh}(h]h ]h"]h$]h&]uh1j hjmhM:hjubj )}(h4``unsigned long long size`` Size of the VME window. h](j )}(h``unsigned long long size``h]h)}(hjh]hunsigned long long size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjubj9 )}(hhh]h)}(hSize of the VME window.h]hSize of the VME window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM;hjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhM;hjubj )}(hZ``dma_addr_t buf_base`` Based address of buffer used to provide VME slave window storage. h](j )}(h``dma_addr_t buf_base``h]h)}(hjh]hdma_addr_t buf_base}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjubj9 )}(hhh]h)}(hABased address of buffer used to provide VME slave window storage.h]hABased address of buffer used to provide VME slave window storage.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM<hjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhM<hjubj )}(h5``u32 aspace`` VME address space for the VME window. h](j )}(h``u32 aspace``h]h)}(hjh]h u32 aspace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM=hjubj9 )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM=hjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhM=hjubj )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j )}(h ``u32 cycle``h]h)}(hj<h]h u32 cycle}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>hj6ubj9 )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhM>hjRubah}(h]h ]h"]h$]h&]uh1j8 hj6ubeh}(h]h ]h"]h$]h&]uh1j hjQhM>hjubeh}(h]h ]h"]h$]h&]uh1j hjubh)}(h**Description**h]j )}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjuubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM@hjubh)}(h0Set configuration for provided VME slave window.h]h0Set configuration for provided VME slave window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM?hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMAhjubh)}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_slave_get (C function)c.vme_slave_gethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hint vme_slave_get (struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h]jF )}(hint vme_slave_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhjhMkubjo )}(h vme_slave_geth]ju )}(h vme_slave_geth]h vme_slave_get}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjhhhjhMkubj)}(h(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjubj^ )}(h h]h }(hj-hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj;ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.vme_slave_getasbuh1hhjubj^ )}(h h]h }(hj^hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hresourceh]hresource}(hjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h int *enabledh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(henabledh]henabled}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hj( hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hvme_baseh]hvme_base}(hj5 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hjN hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ ubj^ )}(h h]h }(hj\ hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ ubj)}(hlongh]hlong}(hjj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ ubj^ )}(h h]h }(hjx hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ ubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ ubju )}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjJ ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t *buf_baseh](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj modnameN classnameNjj)}j]jZc.vme_slave_getasbuh1hhj ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubju )}(hbuf_baseh]hbuf_base}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hj !hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj!ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj"!modnameN classnameNjj)}j]jZc.vme_slave_getasbuh1hhj!ubj^ )}(h h]h }(hj>!hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj!ubj)}(hjh]h*}(hjL!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubju )}(haspaceh]haspace}(hjY!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 *cycleh](h)}(hhh]ju )}(hu32h]hu32}(hju!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjr!ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjw!modnameN classnameNjj)}j]jZc.vme_slave_getasbuh1hhjn!ubj^ )}(h h]h }(hj!hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjn!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn!ubju )}(hcycleh]hcycle}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjn!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhMkubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhjhMkubah}(h]jah ](j j eh"]h$]h&]j j )j huh1j? hjhMkhjhhubj )}(hhh]h)}(h(Retrieve VME slave window configuration.h]h(Retrieve VME slave window configuration.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj!hhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMkubeh}(h]h ](hfunctioneh"]h$]h&]j hj j!j j!j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME slave resource. ``int *enabled`` Pointer to variable for storing state. ``unsigned long long *vme_base`` Pointer to variable for storing window base address. ``unsigned long long *size`` Pointer to variable for storing window size. ``dma_addr_t *buf_base`` Pointer to variable for storing slave buffer base address. ``u32 *aspace`` Pointer to variable for storing VME address space. ``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. **Description** Return configuration for provided VME slave window. **Return** Zero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](h)}(h**Parameters**h]j )}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj!ubj )}(hhh](j )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj"h]hstruct vme_resource *resource}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhj"ubj9 )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hj2"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj."hMlhj/"ubah}(h]h ]h"]h$]h&]uh1j8 hj"ubeh}(h]h ]h"]h$]h&]uh1j hj."hMlhj"ubj )}(h8``int *enabled`` Pointer to variable for storing state. h](j )}(h``int *enabled``h]h)}(hjR"h]h int *enabled}(hjT"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP"ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMmhjL"ubj9 )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hjk"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg"hMmhjh"ubah}(h]h ]h"]h$]h&]uh1j8 hjL"ubeh}(h]h ]h"]h$]h&]uh1j hjg"hMmhj"ubj )}(hV``unsigned long long *vme_base`` Pointer to variable for storing window base address. h](j )}(h ``unsigned long long *vme_base``h]h)}(hj"h]hunsigned long long *vme_base}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhj"ubj9 )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMnhj"ubah}(h]h ]h"]h$]h&]uh1j8 hj"ubeh}(h]h ]h"]h$]h&]uh1j hj"hMnhj"ubj )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j )}(h``unsigned long long *size``h]h)}(hj"h]hunsigned long long *size}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj"ubj9 )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMohj"ubah}(h]h ]h"]h$]h&]uh1j8 hj"ubeh}(h]h ]h"]h$]h&]uh1j hj"hMohj"ubj )}(hT``dma_addr_t *buf_base`` Pointer to variable for storing slave buffer base address. h](j )}(h``dma_addr_t *buf_base``h]h)}(hj"h]hdma_addr_t *buf_base}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphj"ubj9 )}(hhh]h)}(h:Pointer to variable for storing slave buffer base address.h]h:Pointer to variable for storing slave buffer base address.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMphj#ubah}(h]h ]h"]h$]h&]uh1j8 hj"ubeh}(h]h ]h"]h$]h&]uh1j hj#hMphj"ubj )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j )}(h``u32 *aspace``h]h)}(hj6#h]h u32 *aspace}(hj8#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4#ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhj0#ubj9 )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hjO#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK#hMqhjL#ubah}(h]h ]h"]h$]h&]uh1j8 hj0#ubeh}(h]h ]h"]h$]h&]uh1j hjK#hMqhj"ubj )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j )}(h``u32 *cycle``h]h)}(hjo#h]h u32 *cycle}(hjq#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm#ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhji#ubj9 )}(hhh]h)}(h=Pointer to variable for storing VME data transfer cycle type.h]h=Pointer to variable for storing VME data transfer cycle type.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMrhj#ubah}(h]h ]h"]h$]h&]uh1j8 hji#ubeh}(h]h ]h"]h$]h&]uh1j hj#hMrhj"ubeh}(h]h ]h"]h$]h&]uh1j hj!ubh)}(h**Description**h]j )}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthj!ubh)}(h3Return configuration for provided VME slave window.h]h3Return configuration for provided VME slave window.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshj!ubh)}(h **Return**h]j )}(hj#h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMuhj!ubh)}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h]hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_slave_free (C function)c.vme_slave_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h3void vme_slave_free (struct vme_resource *resource)h]jF )}(h2void vme_slave_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj%$hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj$hhhj$$hMubjo )}(hvme_slave_freeh]ju )}(hvme_slave_freeh]hvme_slave_free}(hj7$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3$ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj$hhhj$$hMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjS$hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjO$ubj^ )}(h h]h }(hj`$hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjO$ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjq$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjn$ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjs$modnameN classnameNjj)}j]j)}jj9$sbc.vme_slave_freeasbuh1hhjO$ubj^ )}(h h]h }(hj$hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjO$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO$ubju )}(hresourceh]hresource}(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjO$ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjK$ubah}(h]h ]h"]h$]h&]jjuh1jhj$hhhj$$hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj$hhhj$$hMubah}(h]j $ah ](j j eh"]h$]h&]j j )j huh1j? hj$$hMhj $hhubj )}(hhh]h)}(hFree VME slave windowh]hFree VME slave window}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$hhubah}(h]h ]h"]h$]h&]uh1j hj $hhhj$$hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j$j j$j j j uh1j: hhhj hNhNubj )}(h**Parameters** ``struct vme_resource *resource`` Pointer to VME slave resource. **Description** Free the provided slave resource so that it may be reallocated.h](h)}(h**Parameters**h]j )}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj$ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$ubj )}(hhh]j )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj%h]hstruct vme_resource *resource}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%ubj9 )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hj0%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,%hMhj-%ubah}(h]h ]h"]h$]h&]uh1j8 hj%ubeh}(h]h ]h"]h$]h&]uh1j hj,%hMhj%ubah}(h]h ]h"]h$]h&]uh1j hj$ubh)}(h**Description**h]j )}(hjR%h]h Description}(hjT%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjP%ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$ubh)}(h?Free the provided slave resource so that it may be reallocated.h]h?Free the provided slave resource so that it may be reallocated.}(hjh%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_request (C function)c.vme_master_requesthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hcstruct vme_resource * vme_master_request (struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h]jF )}(hastruct vme_resource *vme_master_request(struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h](jL )}(hjO h]hstruct}(hj%hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj%hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj%hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj%hhhj%hMubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj%ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj%modnameN classnameNjj)}j]j)}jvme_master_requestsbc.vme_master_requestasbuh1hhj%hhhj%hMubj^ )}(h h]h }(hj%hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj%hhhj%hMubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMubjo )}(hvme_master_requesth]ju )}(hj%h]hvme_master_request}(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj%ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj%hhhj%hMubj)}(h:(struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hj&hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj &ubj^ )}(h h]h }(hj&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj &ubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj/&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj,&ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj1&modnameN classnameNjj)}j]j%c.vme_master_requestasbuh1hhj &ubj^ )}(h h]h }(hjM&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj &ubj)}(hjh]h*}(hj[&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj &ubju )}(hvdevh]hvdev}(hjh&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj &ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj &ubj)}(h u32 addressh](h)}(hhh]ju )}(hu32h]hu32}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj&ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj&modnameN classnameNjj)}j]j%c.vme_master_requestasbuh1hhj}&ubj^ )}(h h]h }(hj&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj}&ubju )}(haddressh]haddress}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj}&ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj &ubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj&ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj&modnameN classnameNjj)}j]j%c.vme_master_requestasbuh1hhj&ubj^ )}(h h]h }(hj&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj&ubju )}(hcycleh]hcycle}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj&ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj &ubj)}(h u32 dwidthh](h)}(hhh]ju )}(hu32h]hu32}(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj'ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj'modnameN classnameNjj)}j]j%c.vme_master_requestasbuh1hhj 'ubj^ )}(h h]h }(hj2'hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj 'ubju )}(hdwidthh]hdwidth}(hj@'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj 'ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj &ubeh}(h]h ]h"]h$]h&]jjuh1jhj%hhhj%hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj%hhhj%hMubah}(h]j%ah ](j j eh"]h$]h&]j j )j huh1j? hj%hMhj%hhubj )}(hhh]h)}(h%Request a VME master window resource.h]h%Request a VME master window resource.}(hjj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjg'hhubah}(h]h ]h"]h$]h&]uh1j hj%hhhj%hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j'j j'j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``u32 address`` Required VME address space. ``u32 cycle`` Required VME data transfer cycle type. ``u32 dwidth`` Required VME data transfer width. **Description** Request use of a VME window resource capable of being set for the requested address space, data transfer cycle and width. **Return** Pointer to VME resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hj'h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj'ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hj'h]hstruct vme_dev *vdev}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1j8 hj'ubeh}(h]h ]h"]h$]h&]uh1j hj'hMhj'ubj )}(h,``u32 address`` Required VME address space. h](j )}(h``u32 address``h]h)}(hj'h]h u32 address}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubj9 )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1j8 hj'ubeh}(h]h ]h"]h$]h&]uh1j hj'hMhj'ubj )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j )}(h ``u32 cycle``h]h)}(hj(h]h u32 cycle}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj(ubj9 )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hj6(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2(hMhj3(ubah}(h]h ]h"]h$]h&]uh1j8 hj(ubeh}(h]h ]h"]h$]h&]uh1j hj2(hMhj'ubj )}(h1``u32 dwidth`` Required VME data transfer width. h](j )}(h``u32 dwidth``h]h)}(hjV(h]h u32 dwidth}(hjX(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT(ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjP(ubj9 )}(hhh]h)}(h!Required VME data transfer width.h]h!Required VME data transfer width.}(hjo(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk(hMhjl(ubah}(h]h ]h"]h$]h&]uh1j8 hjP(ubeh}(h]h ]h"]h$]h&]uh1j hjk(hMhj'ubeh}(h]h ]h"]h$]h&]uh1j hj'ubh)}(h**Description**h]j )}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubh)}(hyRequest use of a VME window resource capable of being set for the requested address space, data transfer cycle and width.h]hyRequest use of a VME window resource capable of being set for the requested address space, data transfer cycle and width.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubh)}(h **Return**h]j )}(hj(h]hReturn}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubh)}(h4Pointer to VME resource on success, NULL on failure.h]h4Pointer to VME resource on success, NULL on failure.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_set (C function)c.vme_master_sethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hint vme_master_set (struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h]jF )}(hint vme_master_set(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj )hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj(hhhj )hMubjo )}(hvme_master_seth]ju )}(hvme_master_seth]hvme_master_set}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj)ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj(hhhj )hMubj)}(h(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj:)hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj6)ubj^ )}(h h]h }(hjG)hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6)ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjX)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjU)ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjZ)modnameN classnameNjj)}j]j)}jj )sbc.vme_master_setasbuh1hhj6)ubj^ )}(h h]h }(hjx)hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6)ubju )}(hresourceh]hresource}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(h int enabledh](j)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj^ )}(h h]h }(hj)hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj)ubju )}(henabledh]henabled}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(hunsigned long long vme_baseh](j)}(hunsignedh]hunsigned}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj^ )}(h h]h }(hj)hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj)ubj)}(hlongh]hlong}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj^ )}(h h]h }(hj *hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj)ubj)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj^ )}(h h]h }(hj'*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj)ubju )}(hvme_baseh]hvme_base}(hj5*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(hunsigned long long sizeh](j)}(hunsignedh]hunsigned}(hjN*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ*ubj^ )}(h h]h }(hj\*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ*ubj)}(hlongh]hlong}(hjj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ*ubj^ )}(h h]h }(hjx*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ*ubj)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ*ubj^ )}(h h]h }(hj*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJ*ubju )}(hsizeh]hsize}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjJ*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(h u32 aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj*ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj*modnameN classnameNjj)}j]jt)c.vme_master_setasbuh1hhj*ubj^ )}(h h]h }(hj*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj*ubju )}(haspaceh]haspace}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj+ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj+modnameN classnameNjj)}j]jt)c.vme_master_setasbuh1hhj*ubj^ )}(h h]h }(hj$+hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj*ubju )}(hcycleh]hcycle}(hj2+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubj)}(h u32 dwidthh](h)}(hhh]ju )}(hu32h]hu32}(hjN+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjK+ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjP+modnameN classnameNjj)}j]jt)c.vme_master_setasbuh1hhjG+ubj^ )}(h h]h }(hjl+hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjG+ubju )}(hdwidthh]hdwidth}(hjz+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjG+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2)ubeh}(h]h ]h"]h$]h&]jjuh1jhj(hhhj )hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj(hhhj )hMubah}(h]j(ah ](j j eh"]h$]h&]j j )j huh1j? hj )hMhj(hhubj )}(hhh]h)}(h$Set VME master window configuration.h]h$Set VME master window configuration.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+hhubah}(h]h ]h"]h$]h&]uh1j hj(hhhj )hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j+j j+j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``int enabled`` State to which the window should be configured. ``unsigned long long vme_base`` Base address for the window. ``unsigned long long size`` Size of the VME window. ``u32 aspace`` VME address space for the VME window. ``u32 cycle`` VME data transfer cycle type for the VME window. ``u32 dwidth`` VME data transfer width for the VME window. **Description** Set configuration for provided VME master window. **Return** Zero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj+h]hstruct vme_resource *resource}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMhj+ubah}(h]h ]h"]h$]h&]uh1j8 hj+ubeh}(h]h ]h"]h$]h&]uh1j hj+hMhj+ubj )}(h@``int enabled`` State to which the window should be configured. h](j )}(h``int enabled``h]h)}(hj,h]h int enabled}(hj ,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubj9 )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hj7,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3,hMhj4,ubah}(h]h ]h"]h$]h&]uh1j8 hj,ubeh}(h]h ]h"]h$]h&]uh1j hj3,hMhj+ubj )}(h=``unsigned long long vme_base`` Base address for the window. h](j )}(h``unsigned long long vme_base``h]h)}(hjW,h]hunsigned long long vme_base}(hjY,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU,ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjQ,ubj9 )}(hhh]h)}(hBase address for the window.h]hBase address for the window.}(hjp,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl,hMhjm,ubah}(h]h ]h"]h$]h&]uh1j8 hjQ,ubeh}(h]h ]h"]h$]h&]uh1j hjl,hMhj+ubj )}(h4``unsigned long long size`` Size of the VME window. h](j )}(h``unsigned long long size``h]h)}(hj,h]hunsigned long long size}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubj9 )}(hhh]h)}(hSize of the VME window.h]hSize of the VME window.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1j8 hj,ubeh}(h]h ]h"]h$]h&]uh1j hj,hMhj+ubj )}(h5``u32 aspace`` VME address space for the VME window. h](j )}(h``u32 aspace``h]h)}(hj,h]h u32 aspace}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubj9 )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1j8 hj,ubeh}(h]h ]h"]h$]h&]uh1j hj,hMhj+ubj )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j )}(h ``u32 cycle``h]h)}(hj-h]h u32 cycle}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubj9 )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1j8 hj,ubeh}(h]h ]h"]h$]h&]uh1j hj-hMhj+ubj )}(h;``u32 dwidth`` VME data transfer width for the VME window. h](j )}(h``u32 dwidth``h]h)}(hj;-h]h u32 dwidth}(hj=-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9-ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj5-ubj9 )}(hhh]h)}(h+VME data transfer width for the VME window.h]h+VME data transfer width for the VME window.}(hjT-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP-hMhjQ-ubah}(h]h ]h"]h$]h&]uh1j8 hj5-ubeh}(h]h ]h"]h$]h&]uh1j hjP-hMhj+ubeh}(h]h ]h"]h$]h&]uh1j hj+ubh)}(h**Description**h]j )}(hjv-h]h Description}(hjx-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjt-ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubh)}(h1Set configuration for provided VME master window.h]h1Set configuration for provided VME master window.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubh)}(h **Return**h]j )}(hj-h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubh)}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_get (C function)c.vme_master_gethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hint vme_master_get (struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h]jF )}(hint vme_master_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h](j)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1ubj^ )}(h h]h }(hj-hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj-hhhj-hM1ubjo )}(hvme_master_geth]ju )}(hvme_master_geth]hvme_master_get}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj-ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj-hhhj-hM1ubj)}(h(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj.hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj.ubj^ )}(h h]h }(hj,.hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj=.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:.ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj?.modnameN classnameNjj)}j]j)}jj.sbc.vme_master_getasbuh1hhj.ubj^ )}(h h]h }(hj].hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubj)}(hjh]h*}(hjk.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubju )}(hresourceh]hresource}(hjx.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h int *enabledh](j)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj^ )}(h h]h }(hj.hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubju )}(henabledh]henabled}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj^ )}(h h]h }(hj.hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubj)}(hlongh]hlong}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj^ )}(h h]h }(hj.hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubj)}(hlongh]hlong}(hj /hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj^ )}(h h]h }(hj/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.ubj)}(hjh]h*}(hj'/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubju )}(hvme_baseh]hvme_base}(hj4/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hjM/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI/ubj^ )}(h h]h }(hj[/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjI/ubj)}(hlongh]hlong}(hji/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI/ubj^ )}(h h]h }(hjw/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjI/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI/ubj^ )}(h h]h }(hj/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjI/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI/ubju )}(hsizeh]hsize}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjI/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj/ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj/modnameN classnameNjj)}j]jY.c.vme_master_getasbuh1hhj/ubj^ )}(h h]h }(hj/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubju )}(haspaceh]haspace}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj0ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj!0modnameN classnameNjj)}j]jY.c.vme_master_getasbuh1hhj0ubj^ )}(h h]h }(hj=0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj0ubj)}(hjh]h*}(hjK0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubju )}(hcycleh]hcycle}(hjX0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *dwidthh](h)}(hhh]ju )}(hu32h]hu32}(hjt0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjq0ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjv0modnameN classnameNjj)}j]jY.c.vme_master_getasbuh1hhjm0ubj^ )}(h h]h }(hj0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjm0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm0ubju )}(hdwidthh]hdwidth}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjm0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubeh}(h]h ]h"]h$]h&]jjuh1jhj-hhhj-hM1ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj-hhhj-hM1ubah}(h]j-ah ](j j eh"]h$]h&]j j )j huh1j? hj-hM1hj-hhubj )}(hhh]h)}(h)Retrieve VME master window configuration.h]h)Retrieve VME master window configuration.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hj0hhubah}(h]h ]h"]h$]h&]uh1j hj-hhhj-hM1ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j0j j0j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``int *enabled`` Pointer to variable for storing state. ``unsigned long long *vme_base`` Pointer to variable for storing window base address. ``unsigned long long *size`` Pointer to variable for storing window size. ``u32 *aspace`` Pointer to variable for storing VME address space. ``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. ``u32 *dwidth`` Pointer to variable for storing VME data transfer width. **Description** Return configuration for provided VME master window. **Return** Zero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](h)}(h**Parameters**h]j )}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj0ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj1h]hstruct vme_resource *resource}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM2hj1ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj11hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-1hM2hj.1ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj-1hM2hj1ubj )}(h8``int *enabled`` Pointer to variable for storing state. h](j )}(h``int *enabled``h]h)}(hjQ1h]h int *enabled}(hjS1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM3hjK1ubj9 )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hjj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf1hM3hjg1ubah}(h]h ]h"]h$]h&]uh1j8 hjK1ubeh}(h]h ]h"]h$]h&]uh1j hjf1hM3hj1ubj )}(hV``unsigned long long *vme_base`` Pointer to variable for storing window base address. h](j )}(h ``unsigned long long *vme_base``h]h)}(hj1h]hunsigned long long *vme_base}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM4hj1ubj9 )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM4hj1ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj1hM4hj1ubj )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j )}(h``unsigned long long *size``h]h)}(hj1h]hunsigned long long *size}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj1ubj9 )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM5hj1ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj1hM5hj1ubj )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j )}(h``u32 *aspace``h]h)}(hj1h]h u32 *aspace}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6hj1ubj9 )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM6hj2ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj2hM6hj1ubj )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j )}(h``u32 *cycle``h]h)}(hj52h]h u32 *cycle}(hj72hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj32ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hj/2ubj9 )}(hhh]h)}(h=Pointer to variable for storing VME data transfer cycle type.h]h=Pointer to variable for storing VME data transfer cycle type.}(hjN2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ2hM7hjK2ubah}(h]h ]h"]h$]h&]uh1j8 hj/2ubeh}(h]h ]h"]h$]h&]uh1j hjJ2hM7hj1ubj )}(hI``u32 *dwidth`` Pointer to variable for storing VME data transfer width. h](j )}(h``u32 *dwidth``h]h)}(hjn2h]h u32 *dwidth}(hjp2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hjh2ubj9 )}(hhh]h)}(h8Pointer to variable for storing VME data transfer width.h]h8Pointer to variable for storing VME data transfer width.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM8hj2ubah}(h]h ]h"]h$]h&]uh1j8 hjh2ubeh}(h]h ]h"]h$]h&]uh1j hj2hM8hj1ubeh}(h]h ]h"]h$]h&]uh1j hj0ubh)}(h**Description**h]j )}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hj0ubh)}(h4Return configuration for provided VME master window.h]h4Return configuration for provided VME master window.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj0ubh)}(h **Return**h]j )}(hj2h]hReturn}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hj0ubh)}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h]hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_read (C function)c.vme_master_readhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h_ssize_t vme_master_read (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]jF )}(h^ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](h)}(hhh]ju )}(hssize_th]hssize_t}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj3modnameN classnameNjj)}j]j)}jvme_master_readsbc.vme_master_readasbuh1hhj3hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXubj^ )}(h h]h }(hj:3hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3hhhj93hMXubjo )}(hvme_master_readh]ju )}(hj63h]hvme_master_read}(hjL3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjH3ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj3hhhj93hMXubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjg3hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjc3ubj^ )}(h h]h }(hjt3hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjc3ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj3modnameN classnameNjj)}j]j43c.vme_master_readasbuh1hhjc3ubj^ )}(h h]h }(hj3hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjc3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc3ubju )}(hresourceh]hresource}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjc3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_3ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj^ )}(h h]h }(hj3hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubju )}(hbufh]hbuf}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_3ubj)}(h size_t counth](h)}(hhh]ju )}(hsize_th]hsize_t}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj4ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj4modnameN classnameNjj)}j]j43c.vme_master_readasbuh1hhj4ubj^ )}(h h]h }(hj:4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj4ubju )}(hcounth]hcount}(hjH4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_3ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hjd4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hja4ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjf4modnameN classnameNjj)}j]j43c.vme_master_readasbuh1hhj]4ubj^ )}(h h]h }(hj4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj]4ubju )}(hoffseth]hoffset}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj]4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_3ubeh}(h]h ]h"]h$]h&]jjuh1jhj3hhhj93hMXubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj 3hhhj93hMXubah}(h]j3ah ](j j eh"]h$]h&]j j )j huh1j? hj93hMXhj 3hhubj )}(hhh]h)}(h'Read data from VME space into a buffer.h]h'Read data from VME space into a buffer.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhj4hhubah}(h]h ]h"]h$]h&]uh1j hj 3hhhj93hMXubeh}(h]h ](hfunctioneh"]h$]h&]j hj j4j j4j j j uh1j: hhhj hNhNubj )}(hXv**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer where data should be transferred. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf. **Return** Number of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj4ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj4h]hstruct vme_resource *resource}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMYhj4ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMYhj5ubah}(h]h ]h"]h$]h&]uh1j8 hj4ubeh}(h]h ]h"]h$]h&]uh1j hj5hMYhj4ubj )}(hB``void *buf`` Pointer to buffer where data should be transferred. h](j )}(h ``void *buf``h]h)}(hj45h]h void *buf}(hj65hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj25ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZhj.5ubj9 )}(hhh]h)}(h3Pointer to buffer where data should be transferred.h]h3Pointer to buffer where data should be transferred.}(hjM5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI5hMZhjJ5ubah}(h]h ]h"]h$]h&]uh1j8 hj.5ubeh}(h]h ]h"]h$]h&]uh1j hjI5hMZhj4ubj )}(h.``size_t count`` Number of bytes to transfer. h](j )}(h``size_t count``h]h)}(hjm5h]h size_t count}(hjo5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk5ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[hjg5ubj9 )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hM[hj5ubah}(h]h ]h"]h$]h&]uh1j8 hjg5ubeh}(h]h ]h"]h$]h&]uh1j hj5hM[hj4ubj )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j )}(h``loff_t offset``h]h)}(hj5h]h loff_t offset}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj5ubj9 )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hM\hj5ubah}(h]h ]h"]h$]h&]uh1j8 hj5ubeh}(h]h ]h"]h$]h&]uh1j hj5hM\hj4ubeh}(h]h ]h"]h$]h&]uh1j hj4ubh)}(h**Description**h]j )}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj4ubh)}(htPerform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf.h]htPerform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM]hj4ubh)}(h **Return**h]j )}(hj6h]hReturn}(hj 6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM`hj4ubh)}(hNumber of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hNumber of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMahj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_write (C function)c.vme_master_writehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h`ssize_t vme_master_write (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]jF )}(h_ssize_t vme_master_write(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](h)}(hhh]ju )}(hssize_th]hssize_t}(hjP6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjM6ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjR6modnameN classnameNjj)}j]j)}jvme_master_writesbc.vme_master_writeasbuh1hhjI6hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjr6hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjI6hhhjq6hMubjo )}(hvme_master_writeh]ju )}(hjn6h]hvme_master_write}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjI6hhhjq6hMubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj6hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj6ubj^ )}(h h]h }(hj6hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj6modnameN classnameNjj)}j]jl6c.vme_master_writeasbuh1hhj6ubj^ )}(h h]h }(hj6hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubju )}(hresourceh]hresource}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 7ubj^ )}(h h]h }(hj7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj 7ubj)}(hjh]h*}(hj+7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 7ubju )}(hbufh]hbuf}(hj87hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj 7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h size_t counth](h)}(hhh]ju )}(hsize_th]hsize_t}(hjT7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjQ7ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjV7modnameN classnameNjj)}j]jl6c.vme_master_writeasbuh1hhjM7ubj^ )}(h h]h }(hjr7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjM7ubju )}(hcounth]hcount}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjM7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj7modnameN classnameNjj)}j]jl6c.vme_master_writeasbuh1hhj7ubj^ )}(h h]h }(hj7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj7ubju )}(hoffseth]hoffset}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubeh}(h]h ]h"]h$]h&]jjuh1jhjI6hhhjq6hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjE6hhhjq6hMubah}(h]j@6ah ](j j eh"]h$]h&]j j )j huh1j? hjq6hMhjB6hhubj )}(hhh]h)}(h*Write data out to VME space from a buffer.h]h*Write data out to VME space from a buffer.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj7hhubah}(h]h ]h"]h$]h&]uh1j hjB6hhhjq6hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j 8j j 8j j j uh1j: hhhj hNhNubj )}(hXs**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer holding data to transfer. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform write of count bytes of data from buf to location on VME bus which maps into the VME master window at offset. **Return** Number of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj8h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj8ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj38h]hstruct vme_resource *resource}(hj58hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj18ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-8ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjL8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH8hMhjI8ubah}(h]h ]h"]h$]h&]uh1j8 hj-8ubeh}(h]h ]h"]h$]h&]uh1j hjH8hMhj*8ubj )}(h:``void *buf`` Pointer to buffer holding data to transfer. h](j )}(h ``void *buf``h]h)}(hjl8h]h void *buf}(hjn8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj8ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjf8ubj9 )}(hhh]h)}(h+Pointer to buffer holding data to transfer.h]h+Pointer to buffer holding data to transfer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j8 hjf8ubeh}(h]h ]h"]h$]h&]uh1j hj8hMhj*8ubj )}(h.``size_t count`` Number of bytes to transfer. h](j )}(h``size_t count``h]h)}(hj8h]h size_t count}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubj9 )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j8 hj8ubeh}(h]h ]h"]h$]h&]uh1j hj8hMhj*8ubj )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j )}(h``loff_t offset``h]h)}(hj8h]h loff_t offset}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubj9 )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j8 hj8ubeh}(h]h ]h"]h$]h&]uh1j hj8hMhj*8ubeh}(h]h ]h"]h$]h&]uh1j hj8ubh)}(h**Description**h]j )}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubh)}(huPerform write of count bytes of data from buf to location on VME bus which maps into the VME master window at offset.h]huPerform write of count bytes of data from buf to location on VME bus which maps into the VME master window at offset.}(hj/9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubh)}(h **Return**h]j )}(hj@9h]hReturn}(hjB9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj>9ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubh)}(hNumber of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hNumber of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hjV9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_rmw (C function)c.vme_master_rmwhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hunsigned int vme_master_rmw (struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h]jF )}(hunsigned int vme_master_rmw(struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h](j)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj9hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj9hhhj9hMubj)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhhj9hMubj^ )}(h h]h }(hj9hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj9hhhj9hMubjo )}(hvme_master_rmwh]ju )}(hvme_master_rmwh]hvme_master_rmw}(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj9ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj9hhhj9hMubj)}(hj(struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj9hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj9ubj^ )}(h h]h }(hj9hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj9ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj9ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj9modnameN classnameNjj)}j]j)}jj9sbc.vme_master_rmwasbuh1hhj9ubj^ )}(h h]h }(hj:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj9ubj)}(hjh]h*}(hj*:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubju )}(hresourceh]hresource}(hj7:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjP:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL:ubj^ )}(h h]h }(hj^:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjL:ubj)}(hinth]hint}(hjl:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL:ubj^ )}(h h]h }(hjz:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjL:ubju )}(hmaskh]hmask}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjL:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int compareh](j)}(hunsignedh]hunsigned}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^ )}(h h]h }(hj:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:ubj)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^ )}(h h]h }(hj:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:ubju )}(hcompareh]hcompare}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int swaph](j)}(hunsignedh]hunsigned}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^ )}(h h]h }(hj;hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:ubj)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj^ )}(h h]h }(hj;hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:ubju )}(hswaph]hswap}(hj*;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hjF;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjC;ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjH;modnameN classnameNjj)}j]j:c.vme_master_rmwasbuh1hhj?;ubj^ )}(h h]h }(hjd;hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj?;ubju )}(hoffseth]hoffset}(hjr;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj?;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubeh}(h]h ]h"]h$]h&]jjuh1jhj9hhhj9hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj}9hhhj9hMubah}(h]jx9ah ](j j eh"]h$]h&]j j )j huh1j? hj9hMhjz9hhubj )}(hhh]h)}(h Perform read-modify-write cycle.h]h Perform read-modify-write cycle.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;hhubah}(h]h ]h"]h$]h&]uh1j hjz9hhhj9hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j;j j;j j j uh1j: hhhj hNhNubj )}(hXM**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``unsigned int mask`` Bits to be compared and swapped in operation. ``unsigned int compare`` Bits to be compared with data read from offset. ``unsigned int swap`` Bits to be swapped in data read from offset. ``loff_t offset`` Offset into VME master window at which to perform operation. **Description** Perform read-modify-write cycle on provided location: - Location on VME bus is read. - Bits selected by mask are compared with compare. - Where a selected bit matches that in compare and are selected in swap, the bit is swapped. - Result written back to location on VME bus. **Return** Bytes written on success, -EINVAL if resource is not a VME master resource or RMW operation is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj;h]hstruct vme_resource *resource}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1j8 hj;ubeh}(h]h ]h"]h$]h&]uh1j hj;hMhj;ubj )}(hD``unsigned int mask`` Bits to be compared and swapped in operation. h](j )}(h``unsigned int mask``h]h)}(hj<h]hunsigned int mask}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj<ubj9 )}(hhh]h)}(h-Bits to be compared and swapped in operation.h]h-Bits to be compared and swapped in operation.}(hj/<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+<hMhj,<ubah}(h]h ]h"]h$]h&]uh1j8 hj<ubeh}(h]h ]h"]h$]h&]uh1j hj+<hMhj;ubj )}(hI``unsigned int compare`` Bits to be compared with data read from offset. h](j )}(h``unsigned int compare``h]h)}(hjO<h]hunsigned int compare}(hjQ<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM<ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjI<ubj9 )}(hhh]h)}(h/Bits to be compared with data read from offset.h]h/Bits to be compared with data read from offset.}(hjh<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd<hMhje<ubah}(h]h ]h"]h$]h&]uh1j8 hjI<ubeh}(h]h ]h"]h$]h&]uh1j hjd<hMhj;ubj )}(hC``unsigned int swap`` Bits to be swapped in data read from offset. h](j )}(h``unsigned int swap``h]h)}(hj<h]hunsigned int swap}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj<ubj9 )}(hhh]h)}(h,Bits to be swapped in data read from offset.h]h,Bits to be swapped in data read from offset.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1j8 hj<ubeh}(h]h ]h"]h$]h&]uh1j hj<hMhj;ubj )}(hO``loff_t offset`` Offset into VME master window at which to perform operation. h](j )}(h``loff_t offset``h]h)}(hj<h]h loff_t offset}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj<ubj9 )}(hhh]h)}(hhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj>ubj^ )}(h h]h }(hj$>hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj>ubh)}(hhh]ju )}(hvm_area_structh]hvm_area_struct}(hj5>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj2>ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj7>modnameN classnameNjj)}j]j=c.vme_master_mmapasbuh1hhj>ubj^ )}(h h]h }(hjS>hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj>ubj)}(hjh]h*}(hja>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubju )}(hvmah]hvma}(hjn>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubeh}(h]h ]h"]h$]h&]jjuh1jhjd=hhhjv=hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj`=hhhjv=hMubah}(h]j[=ah ](j j eh"]h$]h&]j j )j huh1j? hjv=hMhj]=hhubj )}(hhh]h)}(h!Mmap region of VME master window.h]h!Mmap region of VME master window.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>hhubah}(h]h ]h"]h$]h&]uh1j hj]=hhhjv=hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j>j j>j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``struct vm_area_struct *vma`` Pointer to definition of user mapping. **Description** Memory map a region of the VME master window into user space. **Return** Zero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h](h)}(h**Parameters**h]j )}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj>ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj>h]hstruct vme_resource *resource}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1j8 hj>ubeh}(h]h ]h"]h$]h&]uh1j hj>hMhj>ubj )}(hF``struct vm_area_struct *vma`` Pointer to definition of user mapping. h](j )}(h``struct vm_area_struct *vma``h]h)}(hj?h]hstruct vm_area_struct *vma}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj ?ubj9 )}(hhh]h)}(h&Pointer to definition of user mapping.h]h&Pointer to definition of user mapping.}(hj+?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'?hMhj(?ubah}(h]h ]h"]h$]h&]uh1j8 hj ?ubeh}(h]h ]h"]h$]h&]uh1j hj'?hMhj>ubeh}(h]h ]h"]h$]h&]uh1j hj>ubh)}(h**Description**h]j )}(hjM?h]h Description}(hjO?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjK?ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubh)}(h=Memory map a region of the VME master window into user space.h]h=Memory map a region of the VME master window into user space.}(hjc?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubh)}(h **Return**h]j )}(hjt?h]hReturn}(hjv?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjr?ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubh)}(hZero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h]hZero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_master_free (C function)c.vme_master_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h4void vme_master_free (struct vme_resource *resource)h]jF )}(h3void vme_master_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj?hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj?hhhj?hMubjo )}(hvme_master_freeh]ju )}(hvme_master_freeh]hvme_master_free}(hj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj?ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj?hhhj?hMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj?hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj?ubj^ )}(h h]h }(hj@hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj?ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj@ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj@modnameN classnameNjj)}j]j)}jj?sbc.vme_master_freeasbuh1hhj?ubj^ )}(h h]h }(hj4@hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj?ubj)}(hjh]h*}(hjB@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubju )}(hresourceh]hresource}(hjO@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj?ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj?ubah}(h]h ]h"]h$]h&]jjuh1jhj?hhhj?hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj?hhhj?hMubah}(h]j?ah ](j j eh"]h$]h&]j j )j huh1j? hj?hMhj?hhubj )}(hhh]h)}(hFree VME master windowh]hFree VME master window}(hjy@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjv@hhubah}(h]h ]h"]h$]h&]uh1j hj?hhhj?hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j@j j@j j j uh1j: hhhj hNhNubj )}(h**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. **Description** Free the provided master resource so that it may be reallocated.h](h)}(h**Parameters**h]j )}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubj )}(hhh]j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj@h]hstruct vme_resource *resource}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hM hj@ubah}(h]h ]h"]h$]h&]uh1j8 hj@ubeh}(h]h ]h"]h$]h&]uh1j hj@hM hj@ubah}(h]h ]h"]h$]h&]uh1j hj@ubh)}(h**Description**h]j )}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubh)}(h@Free the provided master resource so that it may be reallocated.h]h@Free the provided master resource so that it may be reallocated.}(hj AhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_dma_request (C function)c.vme_dma_requesthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hGstruct vme_resource * vme_dma_request (struct vme_dev *vdev, u32 route)h]jF )}(hEstruct vme_resource *vme_dma_request(struct vme_dev *vdev, u32 route)h](jL )}(hjO h]hstruct}(hj:AhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj6Ahhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM(ubj^ )}(h h]h }(hjHAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6AhhhjGAhM(ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjYAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjVAubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj[AmodnameN classnameNjj)}j]j)}jvme_dma_requestsbc.vme_dma_requestasbuh1hhj6AhhhjGAhM(ubj^ )}(h h]h }(hjzAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6AhhhjGAhM(ubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6AhhhjGAhM(ubjo )}(hvme_dma_requesth]ju )}(hjwAh]hvme_dma_request}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjAubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj6AhhhjGAhM(ubj)}(h!(struct vme_dev *vdev, u32 route)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjAhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjAubj^ )}(h h]h }(hjAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjAubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjAubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjAmodnameN classnameNjj)}j]juAc.vme_dma_requestasbuh1hhjAubj^ )}(h h]h }(hjAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubju )}(hvdevh]hvdev}(hj BhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjAubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubj)}(h u32 routeh](h)}(hhh]ju )}(hu32h]hu32}(hj'BhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$Bubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj)BmodnameN classnameNjj)}j]juAc.vme_dma_requestasbuh1hhj Bubj^ )}(h h]h }(hjEBhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj Bubju )}(hrouteh]hroute}(hjSBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj Bubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubeh}(h]h ]h"]h$]h&]jjuh1jhj6AhhhjGAhM(ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj2AhhhjGAhM(ubah}(h]j-Aah ](j j eh"]h$]h&]j j )j huh1j? hjGAhM(hj/Ahhubj )}(hhh]h)}(hRequest a DMA controller.h]hRequest a DMA controller.}(hj}BhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM(hjzBhhubah}(h]h ]h"]h$]h&]uh1j hj/AhhhjGAhM(ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jBj jBj j j uh1j: hhhj hNhNubj )}(hXo**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``u32 route`` Required src/destination combination. **Description** Request a VME DMA controller with capability to perform transfers between requested source/destination combination. **Return** Pointer to VME DMA resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjBubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjBubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjBh]hstruct vme_dev *vdev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM)hjBubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhM)hjBubah}(h]h ]h"]h$]h&]uh1j8 hjBubeh}(h]h ]h"]h$]h&]uh1j hjBhM)hjBubj )}(h4``u32 route`` Required src/destination combination. h](j )}(h ``u32 route``h]h)}(hjBh]h u32 route}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM*hjBubj9 )}(hhh]h)}(h%Required src/destination combination.h]h%Required src/destination combination.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ChM*hj Cubah}(h]h ]h"]h$]h&]uh1j8 hjBubeh}(h]h ]h"]h$]h&]uh1j hj ChM*hjBubeh}(h]h ]h"]h$]h&]uh1j hjBubh)}(h**Description**h]j )}(hj2Ch]h Description}(hj4ChhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0Cubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjBubh)}(hsRequest a VME DMA controller with capability to perform transfers between requested source/destination combination.h]hsRequest a VME DMA controller with capability to perform transfers between requested source/destination combination.}(hjHChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM+hjBubh)}(h **Return**h]j )}(hjYCh]hReturn}(hj[ChhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWCubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM.hjBubh)}(h8Pointer to VME DMA resource on success, NULL on failure.h]h8Pointer to VME DMA resource on success, NULL on failure.}(hjoChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjBubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_new_dma_list (C function)c.vme_new_dma_listhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hFstruct vme_dma_list * vme_new_dma_list (struct vme_resource *resource)h]jF )}(hDstruct vme_dma_list *vme_new_dma_list(struct vme_resource *resource)h](jL )}(hjO h]hstruct}(hjChhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjChhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnubj^ )}(h h]h }(hjChhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjChhhjChMnubh)}(hhh]ju )}(h vme_dma_listh]h vme_dma_list}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjCubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjCmodnameN classnameNjj)}j]j)}jvme_new_dma_listsbc.vme_new_dma_listasbuh1hhjChhhjChMnubj^ )}(h h]h }(hjChhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjChhhjChMnubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjChMnubjo )}(hvme_new_dma_listh]ju )}(hjCh]hvme_new_dma_list}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjCubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjChhhjChMnubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjDhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjDubj^ )}(h h]h }(hj%DhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjDubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj6DhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3Dubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj8DmodnameN classnameNjj)}j]jCc.vme_new_dma_listasbuh1hhjDubj^ )}(h h]h }(hjTDhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjDubj)}(hjh]h*}(hjbDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubju )}(hresourceh]hresource}(hjoDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjDubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjDubah}(h]h ]h"]h$]h&]jjuh1jhjChhhjChMnubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjChhhjChMnubah}(h]jCah ](j j eh"]h$]h&]j j )j huh1j? hjChMnhjChhubj )}(hhh]h)}(hCreate new VME DMA list.h]hCreate new VME DMA list.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhjDhhubah}(h]h ]h"]h$]h&]uh1j hjChhhjChMnubeh}(h]h ](hfunctioneh"]h$]h&]j hj jDj jDj j j uh1j: hhhj hNhNubj )}(hXM**Parameters** ``struct vme_resource *resource`` Pointer to VME DMA resource. **Description** Create a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free(). **Return** Pointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.h](h)}(h**Parameters**h]j )}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhjDubj )}(hhh]j )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjDh]hstruct vme_resource *resource}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjDubj9 )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhMohjDubah}(h]h ]h"]h$]h&]uh1j8 hjDubeh}(h]h ]h"]h$]h&]uh1j hjDhMohjDubah}(h]h ]h"]h$]h&]uh1j hjDubh)}(h**Description**h]j )}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjEubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhjDubh)}(hCreate a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free().h]hCreate a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free().}(hj+EhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphjDubh)}(h **Return**h]j )}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:Eubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjDubh)}(hTPointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.h]hTPointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.}(hjREhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjDubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 &vme_dma_pattern_attribute (C function)c.vme_dma_pattern_attributehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hGstruct vme_dma_attr * vme_dma_pattern_attribute (u32 pattern, u32 type)h]jF )}(hEstruct vme_dma_attr *vme_dma_pattern_attribute(u32 pattern, u32 type)h](jL )}(hjO h]hstruct}(hjEhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj}Ehhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjEhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj}EhhhjEhMubh)}(hhh]ju )}(h vme_dma_attrh]h vme_dma_attr}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjEmodnameN classnameNjj)}j]j)}jvme_dma_pattern_attributesbc.vme_dma_pattern_attributeasbuh1hhj}EhhhjEhMubj^ )}(h h]h }(hjEhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj}EhhhjEhMubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}EhhhjEhMubjo )}(hvme_dma_pattern_attributeh]ju )}(hjEh]hvme_dma_pattern_attribute}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj}EhhhjEhMubj)}(h(u32 pattern, u32 type)h](j)}(h u32 patternh](h)}(hhh]ju )}(hu32h]hu32}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjFmodnameN classnameNjj)}j]jEc.vme_dma_pattern_attributeasbuh1hhjEubj^ )}(h h]h }(hjFhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjEubju )}(hpatternh]hpattern}(hj*FhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjEubj)}(hu32 typeh](h)}(hhh]ju )}(hu32h]hu32}(hjFFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjCFubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjHFmodnameN classnameNjj)}j]jEc.vme_dma_pattern_attributeasbuh1hhj?Fubj^ )}(h h]h }(hjdFhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj?Fubju )}(htypeh]htype}(hjrFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj?Fubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjEubeh}(h]h ]h"]h$]h&]jjuh1jhj}EhhhjEhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjyEhhhjEhMubah}(h]jtEah ](j j eh"]h$]h&]j j )j huh1j? hjEhMhjvEhhubj )}(hhh]h)}(h-Create "Pattern" type VME DMA list attribute.h]h1Create “Pattern” type VME DMA list attribute.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFhhubah}(h]h ]h"]h$]h&]uh1j hjvEhhhjEhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jFj jFj j j uh1j: hhhj hNhNubj )}(hXN**Parameters** ``u32 pattern`` Value to use used as pattern ``u32 type`` Type of pattern to be written. **Description** Create VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute(). **Return** Pointer to VME DMA attribute, NULL on failure.h](h)}(h**Parameters**h]j )}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubj )}(hhh](j )}(h-``u32 pattern`` Value to use used as pattern h](j )}(h``u32 pattern``h]h)}(hjFh]h u32 pattern}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubj9 )}(hhh]h)}(hValue to use used as patternh]hValue to use used as pattern}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1j8 hjFubeh}(h]h ]h"]h$]h&]uh1j hjFhMhjFubj )}(h,``u32 type`` Type of pattern to be written. h](j )}(h ``u32 type``h]h)}(hjGh]hu32 type}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjGubj9 )}(hhh]h)}(hType of pattern to be written.h]hType of pattern to be written.}(hj/GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+GhMhj,Gubah}(h]h ]h"]h$]h&]uh1j8 hjGubeh}(h]h ]h"]h$]h&]uh1j hj+GhMhjFubeh}(h]h ]h"]h$]h&]uh1j hjFubh)}(h**Description**h]j )}(hjQGh]h Description}(hjSGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjOGubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubh)}(hCreate VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().h]hCreate VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().}(hjgGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubh)}(h **Return**h]j )}(hjxGh]hReturn}(hjzGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvGubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 "vme_dma_pci_attribute (C function)c.vme_dma_pci_attributehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h@struct vme_dma_attr * vme_dma_pci_attribute (dma_addr_t address)h]jF )}(h>struct vme_dma_attr *vme_dma_pci_attribute(dma_addr_t address)h](jL )}(hjO h]hstruct}(hjGhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjGhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjGhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGhhhjGhMubh)}(hhh]ju )}(h vme_dma_attrh]h vme_dma_attr}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjGmodnameN classnameNjj)}j]j)}jvme_dma_pci_attributesbc.vme_dma_pci_attributeasbuh1hhjGhhhjGhMubj^ )}(h h]h }(hjGhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGhhhjGhMubj)}(hjh]h*}(hj HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjGhMubjo )}(hvme_dma_pci_attributeh]ju )}(hjGh]hvme_dma_pci_attribute}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjHubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjGhhhjGhMubj)}(h(dma_addr_t address)h]j)}(hdma_addr_t addressh](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hj:HhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7Hubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjRubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjCRmodnameN classnameNjj)}j]j)}jj Rsbc.vme_dma_list_execasbuh1hhjRubj^ )}(h h]h }(hjaRhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjRubj)}(hjh]h*}(hjoRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubju )}(hlisth]hlist}(hj|RhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjRubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjRubah}(h]h ]h"]h$]h&]jjuh1jhjQhhhjQhMBubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjQhhhjQhMBubah}(h]jQah ](j j eh"]h$]h&]j j )j huh1j? hjQhMBhjQhhubj )}(hhh]h)}(h#Queue a VME DMA list for execution.h]h#Queue a VME DMA list for execution.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhjRhhubah}(h]h ]h"]h$]h&]uh1j hjQhhhjQhMBubeh}(h]h ](hfunctioneh"]h$]h&]j hj jRj jRj j j uh1j: hhhj hNhNubj )}(hX7**Parameters** ``struct vme_dma_list *list`` Pointer to VME list. **Description** Queue the provided VME DMA list for execution. The call will return once the list has been executed. **Return** Zero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjRubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMFhjRubj )}(hhh]j )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j )}(h``struct vme_dma_list *list``h]h)}(hjRh]hstruct vme_dma_list *list}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMChjRubj9 )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMChjRubah}(h]h ]h"]h$]h&]uh1j8 hjRubeh}(h]h ]h"]h$]h&]uh1j hjRhMChjRubah}(h]h ]h"]h$]h&]uh1j hjRubh)}(h**Description**h]j )}(hj"Sh]h Description}(hj$ShhhNhNubah}(h]h ]h"]h$]h&]uh1j hj Subah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMEhjRubh)}(hdQueue the provided VME DMA list for execution. The call will return once the list has been executed.h]hdQueue the provided VME DMA list for execution. The call will return once the list has been executed.}(hj8ShhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMDhjRubh)}(h **Return**h]j )}(hjISh]hReturn}(hjKShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGSubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMGhjRubh)}(hnZero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.h]hnZero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.}(hj_ShhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMHhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_dma_list_free (C function)c.vme_dma_list_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h1int vme_dma_list_free (struct vme_dma_list *list)h]jF )}(h0int vme_dma_list_free(struct vme_dma_list *list)h](j)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMaubj^ )}(h h]h }(hjShhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjShhhjShMaubjo )}(hvme_dma_list_freeh]ju )}(hvme_dma_list_freeh]hvme_dma_list_free}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjShhhjShMaubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](jL )}(hjO h]hstruct}(hjShhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjSubj^ )}(h h]h }(hjShhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjSubh)}(hhh]ju )}(h vme_dma_listh]h vme_dma_list}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjSsbc.vme_dma_list_freeasbuh1hhjSubj^ )}(h h]h }(hj ThhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjSubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubju )}(hlisth]hlist}(hj$ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjSubah}(h]h ]h"]h$]h&]jjuh1jhjShhhjShMaubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjShhhjShMaubah}(h]jSah ](j j eh"]h$]h&]j j )j huh1j? hjShMahjShhubj )}(hhh]h)}(hFree a VME DMA list.h]hFree a VME DMA list.}(hjNThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMahjKThhubah}(h]h ]h"]h$]h&]uh1j hjShhhjShMaubeh}(h]h ](hfunctioneh"]h$]h&]j hj jfTj jfTj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dma_list *list`` Pointer to VME list. **Description** Free the provided DMA list and all its entries. **Return** Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjpTh]h Parameters}(hjrThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjnTubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehjjTubj )}(hhh]j )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j )}(h``struct vme_dma_list *list``h]h)}(hjTh]hstruct vme_dma_list *list}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMbhjTubj9 )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMbhjTubah}(h]h ]h"]h$]h&]uh1j8 hjTubeh}(h]h ]h"]h$]h&]uh1j hjThMbhjTubah}(h]h ]h"]h$]h&]uh1j hjjTubh)}(h**Description**h]j )}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMdhjjTubh)}(h/Free the provided DMA list and all its entries.h]h/Free the provided DMA list and all its entries.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMchjjTubh)}(h **Return**h]j )}(hjTh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehjjTubh)}(h}Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.h]h}Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMfhjjTubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_dma_free (C function)c.vme_dma_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h0int vme_dma_free (struct vme_resource *resource)h]jF )}(h/int vme_dma_free(struct vme_resource *resource)h](j)}(hinth]hint}(hj6UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Uhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjEUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj2UhhhjDUhMubjo )}(h vme_dma_freeh]ju )}(h vme_dma_freeh]h vme_dma_free}(hjWUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSUubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj2UhhhjDUhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjsUhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjoUubj^ )}(h h]h }(hjUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoUubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjUubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjYUsbc.vme_dma_freeasbuh1hhjoUubj^ )}(h h]h }(hjUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoUubju )}(hresourceh]hresource}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjoUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkUubah}(h]h ]h"]h$]h&]jjuh1jhj2UhhhjDUhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj.UhhhjDUhMubah}(h]j)Uah ](j j eh"]h$]h&]j j )j huh1j? hjDUhMhj+Uhhubj )}(hhh]h)}(hFree a VME DMA resource.h]hFree a VME DMA resource.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjUhhubah}(h]h ]h"]h$]h&]uh1j hj+UhhhjDUhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jVj jVj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME DMA resource. **Description** Free the provided DMA resource so that it may be reallocated. **Return** Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.h](h)}(h**Parameters**h]j )}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVubj )}(hhh]j )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj7Vh]hstruct vme_resource *resource}(hj9VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5Vubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj1Vubj9 )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjPVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLVhMhjMVubah}(h]h ]h"]h$]h&]uh1j8 hj1Vubeh}(h]h ]h"]h$]h&]uh1j hjLVhMhj.Vubah}(h]h ]h"]h$]h&]uh1j hjVubh)}(h**Description**h]j )}(hjrVh]h Description}(hjtVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjpVubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVubh)}(h=Free the provided DMA resource so that it may be reallocated.h]h=Free the provided DMA resource so that it may be reallocated.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVubh)}(h **Return**h]j )}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVubh)}(hUZero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.h]hUZero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_irq_request (C function)c.vme_irq_requesthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hvint vme_irq_request (struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void *), void *priv_data)h]jF )}(htint vme_irq_request(struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void*), void *priv_data)h](j)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjVhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjVhhhjVhMubjo )}(hvme_irq_requesth]ju )}(hvme_irq_requesth]hvme_irq_request}(hjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjVubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjVhhhjVhMubj)}(ha(struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void*), void *priv_data)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjWhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjWubj^ )}(h h]h }(hj(WhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjWubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj9WhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6Wubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj;WmodnameN classnameNjj)}j]j)}jjWsbc.vme_irq_requestasbuh1hhjWubj^ )}(h h]h }(hjYWhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjWubj)}(hjh]h*}(hjgWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubju )}(hvdevh]hvdev}(hjtWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubj)}(h int levelh](j)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj^ )}(h h]h }(hjWhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjWubju )}(hlevelh]hlevel}(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubj)}(h int statidh](j)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj^ )}(h h]h }(hjWhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjWubju )}(hstatidh]hstatid}(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubj)}(h!void (*callback)(int, int, void*)h](j)}(hvoidh]hvoid}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj^ )}(h h]h }(hjXhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjWubj)}(h(h]h(}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hjh]h*}(hj!XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubju )}(hcallbackh]hcallback}(hj.XhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjWubj)}(h)h]h)}(hjXh]h)}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubj)}(hvoid *priv_datah](j)}(hvoidh]hvoid}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj^ )}(h h]h }(hjXhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubju )}(h priv_datah]h priv_data}(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjXubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubeh}(h]h ]h"]h$]h&]jjuh1jhjVhhhjVhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjVhhhjVhMubah}(h]jVah ](j j eh"]h$]h&]j j )j huh1j? hjVhMhjVhhubj )}(hhh]h)}(h!Request a specific VME interrupt.h]h!Request a specific VME interrupt.}(hj0YhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Yhhubah}(h]h ]h"]h$]h&]uh1j hjVhhhjVhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jHYj jHYj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``int level`` Interrupt priority being requested. ``int statid`` Interrupt vector being requested. ``void (*callback)(int, int, void *)`` Pointer to callback function called when VME interrupt/vector received. ``void *priv_data`` Generic pointer that will be passed to the callback function. **Description** Request callback to be attached as a handler for VME interrupts with provided level and statid. **Return** Zero on success, -EINVAL on invalid vme device, level or if the function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjRYh]h Parameters}(hjTYhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPYubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLYubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjqYh]hstruct vme_dev *vdev}(hjsYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoYubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjkYubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1j8 hjkYubeh}(h]h ]h"]h$]h&]uh1j hjYhMhjhYubj )}(h2``int level`` Interrupt priority being requested. h](j )}(h ``int level``h]h)}(hjYh]h int level}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjYubj9 )}(hhh]h)}(h#Interrupt priority being requested.h]h#Interrupt priority being requested.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1j8 hjYubeh}(h]h ]h"]h$]h&]uh1j hjYhMhjhYubj )}(h1``int statid`` Interrupt vector being requested. h](j )}(h``int statid``h]h)}(hjYh]h int statid}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjYubj9 )}(hhh]h)}(h!Interrupt vector being requested.h]h!Interrupt vector being requested.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1j8 hjYubeh}(h]h ]h"]h$]h&]uh1j hjYhMhjhYubj )}(ho``void (*callback)(int, int, void *)`` Pointer to callback function called when VME interrupt/vector received. h](j )}(h&``void (*callback)(int, int, void *)``h]h)}(hjZh]h"void (*callback)(int, int, void *)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjZubj9 )}(hhh]h)}(hGPointer to callback function called when VME interrupt/vector received.h]hGPointer to callback function called when VME interrupt/vector received.}(hj5ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj2Zubah}(h]h ]h"]h$]h&]uh1j8 hjZubeh}(h]h ]h"]h$]h&]uh1j hj1ZhMhjhYubj )}(hR``void *priv_data`` Generic pointer that will be passed to the callback function. h](j )}(h``void *priv_data``h]h)}(hjVZh]hvoid *priv_data}(hjXZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTZubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjPZubj9 )}(hhh]h)}(h=Generic pointer that will be passed to the callback function.h]h=Generic pointer that will be passed to the callback function.}(hjoZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkZhMhjlZubah}(h]h ]h"]h$]h&]uh1j8 hjPZubeh}(h]h ]h"]h$]h&]uh1j hjkZhMhjhYubeh}(h]h ]h"]h$]h&]uh1j hjLYubh)}(h**Description**h]j )}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLYubh)}(h_Request callback to be attached as a handler for VME interrupts with provided level and statid.h]h_Request callback to be attached as a handler for VME interrupts with provided level and statid.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLYubh)}(h **Return**h]j )}(hjZh]hReturn}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLYubh)}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.h]hZero on success, -EINVAL on invalid vme device, level or if the function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLYubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_irq_free (C function)c.vme_irq_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h?void vme_irq_free (struct vme_dev *vdev, int level, int statid)h]jF )}(h>void vme_irq_free(struct vme_dev *vdev, int level, int statid)h](j)}(hvoidh]hvoid}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7ubj^ )}(h h]h }(hj [hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjZhhhj [hM7ubjo )}(h vme_irq_freeh]ju )}(h vme_irq_freeh]h vme_irq_free}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj[ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjZhhhj [hM7ubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hj:[hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj6[ubj^ )}(h h]h }(hjG[hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6[ubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjX[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjU[ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjZ[modnameN classnameNjj)}j]j)}jj [sbc.vme_irq_freeasbuh1hhj6[ubj^ )}(h h]h }(hjx[hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6[ubju )}(hvdevh]hvdev}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2[ubj)}(h int levelh](j)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj^ )}(h h]h }(hj[hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj[ubju )}(hlevelh]hlevel}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2[ubj)}(h int statidh](j)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj^ )}(h h]h }(hj[hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj[ubju )}(hstatidh]hstatid}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2[ubeh}(h]h ]h"]h$]h&]jjuh1jhjZhhhj [hM7ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjZhhhj [hM7ubah}(h]jZah ](j j eh"]h$]h&]j j )j huh1j? hj [hM7hjZhhubj )}(hhh]h)}(hFree a VME interrupt.h]hFree a VME interrupt.}(hj'\hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hj$\hhubah}(h]h ]h"]h$]h&]uh1j hjZhhhj [hM7ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j?\j j?\j j j uh1j: hhhj hNhNubj )}(hXA**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``int level`` Interrupt priority of interrupt being freed. ``int statid`` Interrupt vector of interrupt being freed. **Description** Remove previously attached callback from VME interrupt priority/vector.h](h)}(h**Parameters**h]j )}(hjI\h]h Parameters}(hjK\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjG\ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjC\ubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjh\h]hstruct vme_dev *vdev}(hjj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf\ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hjb\ubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}\hM8hj~\ubah}(h]h ]h"]h$]h&]uh1j8 hjb\ubeh}(h]h ]h"]h$]h&]uh1j hj}\hM8hj_\ubj )}(h;``int level`` Interrupt priority of interrupt being freed. h](j )}(h ``int level``h]h)}(hj\h]h int level}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj\ubj9 )}(hhh]h)}(h,Interrupt priority of interrupt being freed.h]h,Interrupt priority of interrupt being freed.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hM9hj\ubah}(h]h ]h"]h$]h&]uh1j8 hj\ubeh}(h]h ]h"]h$]h&]uh1j hj\hM9hj_\ubj )}(h:``int statid`` Interrupt vector of interrupt being freed. h](j )}(h``int statid``h]h)}(hj\h]h int statid}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hj\ubj9 )}(hhh]h)}(h*Interrupt vector of interrupt being freed.h]h*Interrupt vector of interrupt being freed.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hM:hj\ubah}(h]h ]h"]h$]h&]uh1j8 hj\ubeh}(h]h ]h"]h$]h&]uh1j hj\hM:hj_\ubeh}(h]h ]h"]h$]h&]uh1j hjC\ubh)}(h**Description**h]j )}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj]ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjC\ubh)}(hGRemove previously attached callback from VME interrupt priority/vector.h]hGRemove previously attached callback from VME interrupt priority/vector.}(hj+]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjC\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_irq_generate (C function)c.vme_irq_generatehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hBint vme_irq_generate (struct vme_dev *vdev, int level, int statid)h]jF )}(hAint vme_irq_generate(struct vme_dev *vdev, int level, int statid)h](j)}(hinth]hint}(hjZ]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV]hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMcubj^ )}(h h]h }(hji]hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjV]hhhjh]hMcubjo )}(hvme_irq_generateh]ju )}(hvme_irq_generateh]hvme_irq_generate}(hj{]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjw]ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjV]hhhjh]hMcubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hj]hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj]ubj^ )}(h h]h }(hj]hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj]ubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj]ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj]modnameN classnameNjj)}j]j)}jj}]sbc.vme_irq_generateasbuh1hhj]ubj^ )}(h h]h }(hj]hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj]ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubju )}(hvdevh]hvdev}(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int levelh](j)}(hinth]hint}(hj ^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj^ )}(h h]h }(hj^hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj^ubju )}(hlevelh]hlevel}(hj%^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int statidh](j)}(hinth]hint}(hj>^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:^ubj^ )}(h h]h }(hjL^hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:^ubju )}(hstatidh]hstatid}(hjZ^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubeh}(h]h ]h"]h$]h&]jjuh1jhjV]hhhjh]hMcubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjR]hhhjh]hMcubah}(h]jM]ah ](j j eh"]h$]h&]j j )j huh1j? hjh]hMchjO]hhubj )}(hhh]h)}(hGenerate VME interrupt.h]hGenerate VME interrupt.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMchj^hhubah}(h]h ]h"]h$]h&]uh1j hjO]hhhjh]hMcubeh}(h]h ](hfunctioneh"]h$]h&]j hj j^j j^j j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``int level`` Interrupt priority at which to assert the interrupt. ``int statid`` Interrupt vector to associate with the interrupt. **Description** Generate a VME interrupt of the provided level and with the provided statid. **Return** Zero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMghj^ubj )}(hhh](j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hj^h]hstruct vme_dev *vdev}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMdhj^ubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMdhj^ubah}(h]h ]h"]h$]h&]uh1j8 hj^ubeh}(h]h ]h"]h$]h&]uh1j hj^hMdhj^ubj )}(hC``int level`` Interrupt priority at which to assert the interrupt. h](j )}(h ``int level``h]h)}(hj^h]h int level}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehj^ubj9 )}(hhh]h)}(h4Interrupt priority at which to assert the interrupt.h]h4Interrupt priority at which to assert the interrupt.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMehj_ubah}(h]h ]h"]h$]h&]uh1j8 hj^ubeh}(h]h ]h"]h$]h&]uh1j hj_hMehj^ubj )}(hA``int statid`` Interrupt vector to associate with the interrupt. h](j )}(h``int statid``h]h)}(hj7_h]h int statid}(hj9_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5_ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMfhj1_ubj9 )}(hhh]h)}(h1Interrupt vector to associate with the interrupt.h]h1Interrupt vector to associate with the interrupt.}(hjP_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjL_hMfhjM_ubah}(h]h ]h"]h$]h&]uh1j8 hj1_ubeh}(h]h ]h"]h$]h&]uh1j hjL_hMfhj^ubeh}(h]h ]h"]h$]h&]uh1j hj^ubh)}(h**Description**h]j )}(hjr_h]h Description}(hjt_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp_ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhhj^ubh)}(hLGenerate a VME interrupt of the provided level and with the provided statid.h]hLGenerate a VME interrupt of the provided level and with the provided statid.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMghj^ubh)}(h **Return**h]j )}(hj_h]hReturn}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMjhj^ubh)}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.h]hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_request (C function)c.vme_lm_requesthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h;struct vme_resource * vme_lm_request (struct vme_dev *vdev)h]jF )}(h9struct vme_resource *vme_lm_request(struct vme_dev *vdev)h](jL )}(hjO h]hstruct}(hj_hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj_hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj_hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj_hhhj_hMubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj_ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj_modnameN classnameNjj)}j]j)}jvme_lm_requestsbc.vme_lm_requestasbuh1hhj_hhhj_hMubj^ )}(h h]h }(hj`hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj_hhhj_hMubj)}(hjh]h*}(hj,`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhhj_hMubjo )}(hvme_lm_requesth]ju )}(hj`h]hvme_lm_request}(hj=`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj9`ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj_hhhj_hMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjX`hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjT`ubj^ )}(h h]h }(hje`hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjT`ubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjv`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjs`ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjx`modnameN classnameNjj)}j]j`c.vme_lm_requestasbuh1hhjT`ubj^ )}(h h]h }(hj`hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjT`ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT`ubju )}(hvdevh]hvdev}(hj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjT`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjP`ubah}(h]h ]h"]h$]h&]jjuh1jhj_hhhj_hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj_hhhj_hMubah}(h]j_ah ](j j eh"]h$]h&]j j )j huh1j? hj_hMhj_hhubj )}(hhh]h)}(hRequest a VME location monitorh]hRequest a VME location monitor}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`hhubah}(h]h ]h"]h$]h&]uh1j hj_hhhj_hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j`j j`j j j uh1j: hhhj hNhNubj )}(hXe**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. **Description** Allocate a location monitor resource to the driver. A location monitor allows the driver to monitor accesses to a contiguous number of addresses on the VME bus. **Return** Pointer to a VME resource on success or NULL on failure.h](h)}(h**Parameters**h]j )}(hj`h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`ubj )}(hhh]j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjah]hstruct vme_dev *vdev}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjaubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hj3ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ahMhj0aubah}(h]h ]h"]h$]h&]uh1j8 hjaubeh}(h]h ]h"]h$]h&]uh1j hj/ahMhjaubah}(h]h ]h"]h$]h&]uh1j hj`ubh)}(h**Description**h]j )}(hjUah]h Description}(hjWahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSaubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`ubh)}(hAllocate a location monitor resource to the driver. A location monitor allows the driver to monitor accesses to a contiguous number of addresses on the VME bus.h]hAllocate a location monitor resource to the driver. A location monitor allows the driver to monitor accesses to a contiguous number of addresses on the VME bus.}(hjkahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`ubh)}(h **Return**h]j )}(hj|ah]hReturn}(hj~ahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjzaubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`ubh)}(h8Pointer to a VME resource on success or NULL on failure.h]h8Pointer to a VME resource on success or NULL on failure.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_count (C function)c.vme_lm_counthNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h0int vme_lm_count (struct vme_resource *resource)h]jF )}(h/int vme_lm_count(struct vme_resource *resource)h](j)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjahhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjahhhjahMubjo )}(h vme_lm_counth]ju )}(h vme_lm_counth]h vme_lm_count}(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjaubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjahhhjahMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjahhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjaubj^ )}(h h]h }(hj bhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjaubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjbubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjasbc.vme_lm_countasbuh1hhjaubj^ )}(h h]h }(hjej j>ej j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. ``unsigned long long lm_base`` Base address to monitor. ``u32 aspace`` VME address space to monitor. ``u32 cycle`` VME bus cycle type to monitor. **Description** Set the base address, address space and cycle type of accesses to be monitored by the location monitor. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjHeh]h Parameters}(hjJehhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFeubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBeubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjgeh]hstruct vme_resource *resource}(hjiehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeeubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjaeubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ehMhj}eubah}(h]h ]h"]h$]h&]uh1j8 hjaeubeh}(h]h ]h"]h$]h&]uh1j hj|ehMhj^eubj )}(h8``unsigned long long lm_base`` Base address to monitor. h](j )}(h``unsigned long long lm_base``h]h)}(hjeh]hunsigned long long lm_base}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubj9 )}(hhh]h)}(hBase address to monitor.h]hBase address to monitor.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1j8 hjeubeh}(h]h ]h"]h$]h&]uh1j hjehMhj^eubj )}(h-``u32 aspace`` VME address space to monitor. h](j )}(h``u32 aspace``h]h)}(hjeh]h u32 aspace}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubj9 )}(hhh]h)}(hVME address space to monitor.h]hVME address space to monitor.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1j8 hjeubeh}(h]h ]h"]h$]h&]uh1j hjehMhj^eubj )}(h-``u32 cycle`` VME bus cycle type to monitor. h](j )}(h ``u32 cycle``h]h)}(hjfh]h u32 cycle}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj fubj9 )}(hhh]h)}(hVME bus cycle type to monitor.h]hVME bus cycle type to monitor.}(hj+fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'fhMhj(fubah}(h]h ]h"]h$]h&]uh1j8 hj fubeh}(h]h ]h"]h$]h&]uh1j hj'fhMhj^eubeh}(h]h ]h"]h$]h&]uh1j hjBeubh)}(h**Description**h]j )}(hjMfh]h Description}(hjOfhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjKfubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBeubh)}(hgSet the base address, address space and cycle type of accesses to be monitored by the location monitor.h]hgSet the base address, address space and cycle type of accesses to be monitored by the location monitor.}(hjcfhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBeubh)}(h **Return**h]j )}(hjtfh]hReturn}(hjvfhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrfubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBeubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBeubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_get (C function) c.vme_lm_gethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hdint vme_lm_get (struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h]jF )}(hcint vme_lm_get(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM ubj^ )}(h h]h }(hjfhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfhhhjfhM ubjo )}(h vme_lm_geth]ju )}(h vme_lm_geth]h vme_lm_get}(hjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjfubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjfhhhjfhM ubj)}(hU(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjfhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjfubj^ )}(h h]h }(hjghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjgubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjgmodnameN classnameNjj)}j]j)}jjfsb c.vme_lm_getasbuh1hhjfubj^ )}(h h]h }(hj4ghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfubj)}(hjh]h*}(hjBghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubju )}(hresourceh]hresource}(hjOghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(hunsigned long long *lm_baseh](j)}(hunsignedh]hunsigned}(hjhghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdgubj^ )}(h h]h }(hjvghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjdgubj)}(hlongh]hlong}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdgubj^ )}(h h]h }(hjghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjdgubj)}(hlongh]hlong}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdgubj^ )}(h h]h }(hjghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjdgubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdgubju )}(hlm_baseh]hlm_base}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjdgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjgubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjgmodnameN classnameNjj)}j]j0g c.vme_lm_getasbuh1hhjgubj^ )}(h h]h }(hjhhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjgubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubju )}(haspaceh]haspace}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(h u32 *cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj:hhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7hubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjjhM-ubjo )}(h vme_lm_attachh]ju )}(h vme_lm_attachh]h vme_lm_attach}(hjQjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjMjubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj,jhhhj>jhM-ubj)}(hQ(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjmjhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjijubj^ )}(h h]h }(hjzjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjijubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjjmodnameN classnameNjj)}j]j)}jjSjsbc.vme_lm_attachasbuh1hhjijubj^ )}(h h]h }(hjjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjijubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjijubju )}(hresourceh]hresource}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjijubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjejubj)}(h int monitorh](j)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj^ )}(h h]h }(hjjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjjubju )}(hmonitorh]hmonitor}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjejubj)}(hvoid (*callback)(void*)h](j)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj^ )}(h h]h }(hj"khhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjkubj)}(hjXh]h(}(hj0khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hjh]h*}(hj=khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubju )}(hcallbackh]hcallback}(hjJkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjkubj)}(hj>Xh]h)}(hjXkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hjXh]h(}(hjekhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hvoidh]hvoid}(hjrkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hj>Xh]h)}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjejubj)}(h void *datah](j)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj^ )}(h h]h }(hjkhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubju )}(hdatah]hdata}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjkubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjejubeh}(h]h ]h"]h$]h&]jjuh1jhj,jhhhj>jhM-ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj(jhhhj>jhM-ubah}(h]j#jah ](j j eh"]h$]h&]j j )j huh1j? hj>jhM-hj%jhhubj )}(hhh]h)}(h-Provide callback for location monitor addressh]h-Provide callback for location monitor address}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM-hjkhhubah}(h]h ]h"]h$]h&]uh1j hj%jhhhj>jhM-ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jlj jlj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. ``int monitor`` Offset to which callback should be attached. ``void (*callback)(void *)`` Pointer to callback function called when triggered. ``void *data`` Generic pointer that will be passed to the callback function. **Description** Attach a callback to the specified offset into the location monitors monitored addresses. A generic pointer is provided to allow data to be passed to the callback when called. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjlubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj9lh]hstruct vme_resource *resource}(hj;lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7lubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM.hj3lubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjRlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNlhM.hjOlubah}(h]h ]h"]h$]h&]uh1j8 hj3lubeh}(h]h ]h"]h$]h&]uh1j hjNlhM.hj0lubj )}(h=``int monitor`` Offset to which callback should be attached. h](j )}(h``int monitor``h]h)}(hjrlh]h int monitor}(hjtlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjplubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjllubj9 )}(hhh]h)}(h,Offset to which callback should be attached.h]h,Offset to which callback should be attached.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhM/hjlubah}(h]h ]h"]h$]h&]uh1j8 hjllubeh}(h]h ]h"]h$]h&]uh1j hjlhM/hj0lubj )}(hQ``void (*callback)(void *)`` Pointer to callback function called when triggered. h](j )}(h``void (*callback)(void *)``h]h)}(hjlh]hvoid (*callback)(void *)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM0hjlubj9 )}(hhh]h)}(h3Pointer to callback function called when triggered.h]h3Pointer to callback function called when triggered.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhM0hjlubah}(h]h ]h"]h$]h&]uh1j8 hjlubeh}(h]h ]h"]h$]h&]uh1j hjlhM0hj0lubj )}(hM``void *data`` Generic pointer that will be passed to the callback function. h](j )}(h``void *data``h]h)}(hjlh]h void *data}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjlubj9 )}(hhh]h)}(h=Generic pointer that will be passed to the callback function.h]h=Generic pointer that will be passed to the callback function.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhM1hjlubah}(h]h ]h"]h$]h&]uh1j8 hjlubeh}(h]h ]h"]h$]h&]uh1j hjlhM1hj0lubeh}(h]h ]h"]h$]h&]uh1j hjlubh)}(h**Description**h]j )}(hjmh]h Description}(hj!mhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM3hjlubh)}(hAttach a callback to the specified offset into the location monitors monitored addresses. A generic pointer is provided to allow data to be passed to the callback when called.h]hAttach a callback to the specified offset into the location monitors monitored addresses. A generic pointer is provided to allow data to be passed to the callback when called.}(hj5mhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM2hjlubh)}(h **Return**h]j )}(hjFmh]hReturn}(hjHmhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDmubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6hjlubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hj\mhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_detach (C function)c.vme_lm_detachhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h>int vme_lm_detach (struct vme_resource *resource, int monitor)h]jF )}(h=int vme_lm_detach(struct vme_resource *resource, int monitor)h](j)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRubj^ )}(h h]h }(hjmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjmhhhjmhMRubjo )}(h vme_lm_detachh]ju )}(h vme_lm_detachh]h vme_lm_detach}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjmubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjmhhhjmhMRubj)}(h,(struct vme_resource *resource, int monitor)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjmhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjmubj^ )}(h h]h }(hjmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjmubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjmubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjmsbc.vme_lm_detachasbuh1hhjmubj^ )}(h h]h }(hjnhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjmubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubju )}(hresourceh]hresource}(hj!nhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjmubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjmubj)}(h int monitorh](j)}(hinth]hint}(hj:nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6nubj^ )}(h h]h }(hjHnhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj6nubju )}(hmonitorh]hmonitor}(hjVnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj6nubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjmubeh}(h]h ]h"]h$]h&]jjuh1jhjmhhhjmhMRubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjmhhhjmhMRubah}(h]j~mah ](j j eh"]h$]h&]j j )j huh1j? hjmhMRhjmhhubj )}(hhh]h)}(h,Remove callback for location monitor addressh]h,Remove callback for location monitor address}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRhj}nhhubah}(h]h ]h"]h$]h&]uh1j hjmhhhjmhMRubeh}(h]h ](hfunctioneh"]h$]h&]j hj jnj jnj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. ``int monitor`` Offset to which callback should be removed. **Description** Remove the callback associated with the specified offset into the location monitors monitored addresses. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjnh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjnubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjnubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjnh]hstruct vme_resource *resource}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMShjnubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhMShjnubah}(h]h ]h"]h$]h&]uh1j8 hjnubeh}(h]h ]h"]h$]h&]uh1j hjnhMShjnubj )}(h<``int monitor`` Offset to which callback should be removed. h](j )}(h``int monitor``h]h)}(hjnh]h int monitor}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMThjnubj9 )}(hhh]h)}(h+Offset to which callback should be removed.h]h+Offset to which callback should be removed.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohMThjoubah}(h]h ]h"]h$]h&]uh1j8 hjnubeh}(h]h ]h"]h$]h&]uh1j hjohMThjnubeh}(h]h ]h"]h$]h&]uh1j hjnubh)}(h**Description**h]j )}(hj5oh]h Description}(hj7ohhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3oubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjnubh)}(hhRemove the callback associated with the specified offset into the location monitors monitored addresses.h]hhRemove the callback associated with the specified offset into the location monitors monitored addresses.}(hjKohhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMUhjnubh)}(h **Return**h]j )}(hj\oh]hReturn}(hj^ohhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZoubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhjnubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjrohhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMYhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_free (C function) c.vme_lm_freehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h0void vme_lm_free (struct vme_resource *resource)h]jF )}(h/void vme_lm_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjohhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMsubj^ )}(h h]h }(hjohhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjohhhjohMsubjo )}(h vme_lm_freeh]ju )}(h vme_lm_freeh]h vme_lm_free}(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjoubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjohhhjohMsubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjohhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjoubj^ )}(h h]h }(hjohhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjoubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjomodnameN classnameNjj)}j]j)}jjosb c.vme_lm_freeasbuh1hhjoubj^ )}(h h]h }(hjphhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoubj)}(hjh]h*}(hj*phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubju )}(hresourceh]hresource}(hj7phhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjoubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjoubah}(h]h ]h"]h$]h&]jjuh1jhjohhhjohMsubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjohhhjohMsubah}(h]joah ](j j eh"]h$]h&]j j )j huh1j? hjohMshjohhubj )}(hhh]h)}(h#Free allocated VME location monitorh]h#Free allocated VME location monitor}(hjaphhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshj^phhubah}(h]h ]h"]h$]h&]uh1j hjohhhjohMsubeh}(h]h ](hfunctioneh"]h$]h&]j hj jypj jypj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. **Description** Free allocation of a VME location monitor. WARNING: This function currently expects that any callbacks that have been attached to the location monitor have been removed. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource.h](h)}(h**Parameters**h]j )}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjpubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwhj}pubj )}(hhh]j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjph]hstruct vme_resource *resource}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjpubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphMthjpubah}(h]h ]h"]h$]h&]uh1j8 hjpubeh}(h]h ]h"]h$]h&]uh1j hjphMthjpubah}(h]h ]h"]h$]h&]uh1j hj}pubh)}(h**Description**h]j )}(hjph]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjpubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhj}pubh)}(h*Free allocation of a VME location monitor.h]h*Free allocation of a VME location monitor.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMuhj}pubj )}(hhh]j )}(hWARNING: This function currently expects that any callbacks that have been attached to the location monitor have been removed. h](j )}(hEWARNING: This function currently expects that any callbacks that haveh]hEWARNING: This function currently expects that any callbacks that have}(hj qhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMxhjqubj9 )}(hhh]h)}(h8been attached to the location monitor have been removed.h]h8been attached to the location monitor have been removed.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMxhjqubah}(h]h ]h"]h$]h&]uh1j8 hjqubeh}(h]h ]h"]h$]h&]uh1j hjqhMxhjqubah}(h]h ]h"]h$]h&]uh1j hj}pubh)}(h **Return**h]j )}(hj=qh]hReturn}(hj?qhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;qubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMzhj}pubh)}(hQZero on success, -EINVAL when provided with an invalid location monitor resource.h]hQZero on success, -EINVAL when provided with an invalid location monitor resource.}(hjSqhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM{hj}pubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_slot_num (C function)c.vme_slot_numhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h'int vme_slot_num (struct vme_dev *vdev)h]jF )}(h&int vme_slot_num(struct vme_dev *vdev)h](j)}(hinth]hint}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~qhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjqhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj~qhhhjqhMubjo )}(h vme_slot_numh]ju )}(h vme_slot_numh]h vme_slot_num}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjqubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj~qhhhjqhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjqhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjqubj^ )}(h h]h }(hjqhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjqubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjqubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjqsbc.vme_slot_numasbuh1hhjqubj^ )}(h h]h }(hjqhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjqubj)}(hjh]h*}(hj rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubju )}(hvdevh]hvdev}(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjqubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjqubah}(h]h ]h"]h$]h&]jjuh1jhj~qhhhjqhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjzqhhhjqhMubah}(h]juqah ](j j eh"]h$]h&]j j )j huh1j? hjqhMhjwqhhubj )}(hhh]h)}(hRetrieve slot IDh]hRetrieve slot ID}(hjBrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj?rhhubah}(h]h ]h"]h$]h&]uh1j hjwqhhhjqhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jZrj jZrj j j uh1j: hhhj hNhNubj )}(hX]**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. **Description** Retrieve the slot ID associated with the provided VME device. **Return** The slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjdrh]h Parameters}(hjfrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjbrubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^rubj )}(hhh]j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hjrh]hstruct vme_dev *vdev}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}rubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjrubah}(h]h ]h"]h$]h&]uh1j8 hj}rubeh}(h]h ]h"]h$]h&]uh1j hjrhMhjzrubah}(h]h ]h"]h$]h&]uh1j hj^rubh)}(h**Description**h]j )}(hjrh]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^rubh)}(h=Retrieve the slot ID associated with the provided VME device.h]h=Retrieve the slot ID associated with the provided VME device.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^rubh)}(h **Return**h]j )}(hjrh]hReturn}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^rubh)}(hThe slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.h]hThe slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^rubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_bus_num (C function) c.vme_bus_numhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h&int vme_bus_num (struct vme_dev *vdev)h]jF )}(h%int vme_bus_num(struct vme_dev *vdev)h](j)}(hinth]hint}(hj*shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&shhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hj9shhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj&shhhj8shMubjo )}(h vme_bus_numh]ju )}(h vme_bus_numh]h vme_bus_num}(hjKshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGsubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj&shhhj8shMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjgshhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjcsubj^ )}(h h]h }(hjtshhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjcsubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjsubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjsmodnameN classnameNjj)}j]j)}jjMssb c.vme_bus_numasbuh1hhjcsubj^ )}(h h]h }(hjshhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjcsubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcsubju )}(hvdevh]hvdev}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjcsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_subah}(h]h ]h"]h$]h&]jjuh1jhj&shhhj8shMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj"shhhj8shMubah}(h]jsah ](j j eh"]h$]h&]j j )j huh1j? hj8shMhjshhubj )}(hhh]h)}(hRetrieve bus numberh]hRetrieve bus number}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjshhubah}(h]h ]h"]h$]h&]uh1j hjshhhj8shMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jtj jtj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. **Description** Retrieve the bus enumeration associated with the provided VME device. **Return** The bus number on success, -EINVAL if VME bridge cannot be determined.h](h)}(h**Parameters**h]j )}(hj th]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hj tubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubj )}(hhh]j )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j )}(h``struct vme_dev *vdev``h]h)}(hj+th]hstruct vme_dev *vdev}(hj-thhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)tubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%tubj9 )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjDthhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@thMhjAtubah}(h]h ]h"]h$]h&]uh1j8 hj%tubeh}(h]h ]h"]h$]h&]uh1j hj@thMhj"tubah}(h]h ]h"]h$]h&]uh1j hjtubh)}(h**Description**h]j )}(hjfth]h Description}(hjhthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdtubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubh)}(hERetrieve the bus enumeration associated with the provided VME device.h]hERetrieve the bus enumeration associated with the provided VME device.}(hj|thhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubh)}(h **Return**h]j )}(hjth]hReturn}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubh)}(hFThe bus number on success, -EINVAL if VME bridge cannot be determined.h]hFThe bus number on success, -EINVAL if VME bridge cannot be determined.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_register_driver (C function)c.vme_register_driverhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hDint vme_register_driver (struct vme_driver *drv, unsigned int ndevs)h]jF )}(hCint vme_register_driver(struct vme_driver *drv, unsigned int ndevs)h](j)}(hinth]hint}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRubj^ )}(h h]h }(hjthhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjthhhjthMRubjo )}(hvme_register_driverh]ju )}(hvme_register_driverh]hvme_register_driver}(hjthhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjtubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjthhhjthMRubj)}(h,(struct vme_driver *drv, unsigned int ndevs)h](j)}(hstruct vme_driver *drvh](jL )}(hjO h]hstruct}(hjuhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj uubj^ )}(h h]h }(hjuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj uubh)}(hhh]ju )}(h vme_driverh]h vme_driver}(hj-uhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj*uubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj/umodnameN classnameNjj)}j]j)}jjtsbc.vme_register_driverasbuh1hhj uubj^ )}(h h]h }(hjMuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj uubj)}(hjh]h*}(hj[uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj uubju )}(hdrvh]hdrv}(hjhuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj uubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjuubj)}(hunsigned int ndevsh](j)}(hunsignedh]hunsigned}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}uubj^ )}(h h]h }(hjuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj}uubj)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}uubj^ )}(h h]h }(hjuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj}uubju )}(hndevsh]hndevs}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj}uubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjuubeh}(h]h ]h"]h$]h&]jjuh1jhjthhhjthMRubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjthhhjthMRubah}(h]jtah ](j j eh"]h$]h&]j j )j huh1j? hjthMRhjthhubj )}(hhh]h)}(hRegister a VME driverh]hRegister a VME driver}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRhjuhhubah}(h]h ]h"]h$]h&]uh1j hjthhhjthMRubeh}(h]h ](hfunctioneh"]h$]h&]j hj juj juj j j uh1j: hhhj hNhNubj )}(hX2**Parameters** ``struct vme_driver *drv`` Pointer to VME driver structure to register. ``unsigned int ndevs`` Maximum number of devices to allow to be enumerated. **Description** Register a VME device driver with the VME subsystem. **Return** Zero on success, error value on registration failure.h](h)}(h**Parameters**h]j )}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjuubj )}(hhh](j )}(hH``struct vme_driver *drv`` Pointer to VME driver structure to register. h](j )}(h``struct vme_driver *drv``h]h)}(hj$vh]hstruct vme_driver *drv}(hj&vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"vubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMShjvubj9 )}(hhh]h)}(h,Pointer to VME driver structure to register.h]h,Pointer to VME driver structure to register.}(hj=vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9vhMShj:vubah}(h]h ]h"]h$]h&]uh1j8 hjvubeh}(h]h ]h"]h$]h&]uh1j hj9vhMShjvubj )}(hL``unsigned int ndevs`` Maximum number of devices to allow to be enumerated. h](j )}(h``unsigned int ndevs``h]h)}(hj]vh]hunsigned int ndevs}(hj_vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[vubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMThjWvubj9 )}(hhh]h)}(h4Maximum number of devices to allow to be enumerated.h]h4Maximum number of devices to allow to be enumerated.}(hjvvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrvhMThjsvubah}(h]h ]h"]h$]h&]uh1j8 hjWvubeh}(h]h ]h"]h$]h&]uh1j hjrvhMThjvubeh}(h]h ]h"]h$]h&]uh1j hjuubh)}(h**Description**h]j )}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjuubh)}(h4Register a VME device driver with the VME subsystem.h]h4Register a VME device driver with the VME subsystem.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMUhjuubh)}(h **Return**h]j )}(hjvh]hReturn}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMWhjuubh)}(h5Zero on success, error value on registration failure.h]h5Zero on success, error value on registration failure.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 "vme_unregister_driver (C function)c.vme_unregister_driverhNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h3void vme_unregister_driver (struct vme_driver *drv)h]jF )}(h2void vme_unregister_driver(struct vme_driver *drv)h](j)}(hvoidh]hvoid}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMoubj^ )}(h h]h }(hjwhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjwhhhjwhMoubjo )}(hvme_unregister_driverh]ju )}(hvme_unregister_driverh]hvme_unregister_driver}(hj%whhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj!wubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjwhhhjwhMoubj)}(h(struct vme_driver *drv)h]j)}(hstruct vme_driver *drvh](jL )}(hjO h]hstruct}(hjAwhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj=wubj^ )}(h h]h }(hjNwhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj=wubh)}(hhh]ju )}(h vme_driverh]h vme_driver}(hj_whhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj\wubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjawmodnameN classnameNjj)}j]j)}jj'wsbc.vme_unregister_driverasbuh1hhj=wubj^ )}(h h]h }(hjwhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj=wubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=wubju )}(hdrvh]hdrv}(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj=wubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9wubah}(h]h ]h"]h$]h&]jjuh1jhjwhhhjwhMoubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjvhhhjwhMoubah}(h]jvah ](j j eh"]h$]h&]j j )j huh1j? hjwhMohjvhhubj )}(hhh]h)}(hUnregister a VME driverh]hUnregister a VME driver}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjwhhubah}(h]h ]h"]h$]h&]uh1j hjvhhhjwhMoubeh}(h]h ](hfunctioneh"]h$]h&]j hj jwj jwj j j uh1j: hhhj hNhNubj )}(h**Parameters** ``struct vme_driver *drv`` Pointer to VME driver structure to unregister. **Description** Unregister a VME device driver from the VME subsystem.h](h)}(h**Parameters**h]j )}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjwubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjwubj )}(hhh]j )}(hJ``struct vme_driver *drv`` Pointer to VME driver structure to unregister. h](j )}(h``struct vme_driver *drv``h]h)}(hjxh]hstruct vme_driver *drv}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphjwubj9 )}(hhh]h)}(h.Pointer to VME driver structure to unregister.h]h.Pointer to VME driver structure to unregister.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMphjxubah}(h]h ]h"]h$]h&]uh1j8 hjwubeh}(h]h ]h"]h$]h&]uh1j hjxhMphjwubah}(h]h ]h"]h$]h&]uh1j hjwubh)}(h**Description**h]j )}(hj@xh]h Description}(hjBxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj>xubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhjwubh)}(h6Unregister a VME device driver from the VME subsystem.h]h6Unregister a VME device driver from the VME subsystem.}(hjVxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubeh}(h]vme-apiah ]h"]vme apiah$]h&]uh1hhhhhhhhM#ubeh}(h]vme-device-driversah ]h"]vme device driversah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjxerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jyxjvxjjjjjfjcjjj^j[jjjjjmjjjjjjj(j%jjjjjjjjjjjjj j~ j j j j jy jv j j j j jqxjnxu nametypes}(jyxjjjfjj^jjjmjjj(jjjjjjj j j jy j j jqxuh}(jvxhjhjjjcjjj3j[jjjijjjjjjjpjjj%jjj+jjjjjjjjjjj~ jj j j j jv j j j j j jnxj j8 jA jU jZ j|jjSjXjQjVj jjjjjj $j$j%j%j(j(j-j-j3j 3j@6jE6jx9j}9j[=j`=j?j?j-Aj2AjCjCjtEjyEjGjGjkIjpIjLjLjONjTNjQjQjSjSj)Uj.UjVjVjZjZjM]jR]j_j_jajaj\cjacjfjfj#jj(jj~mjmjojojuqjzqjsj"sjtjtjvjvu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.