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.chKPubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhjhKPubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKPubjo )}(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 hjhhhjhKPubhdesc_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&]jjuh1jhjhhhjhKPubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhjhKPubah}(h]j|ah ](j j eh"]h$]h&]j j )j huh1j? hjhKPhj~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~hhhjhKPubeh}(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.chKKhj"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.chKNhj"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.chKiubj^ )}(h h]h }(hjohhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj\hhhjnhKiubjo )}(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\hhhjnhKiubj)}(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\hhhjnhKiubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjXhhhjnhKiubah}(h]jSah ](j j eh"]h$]h&]j j )j huh1j? hjnhKihjUhhubj )}(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 hjUhhhjnhKiubeh}(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.chKghjubeh}(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.chKubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjZhhhjhKubjo )}(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 hjZhhhjhKubj)}(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&]jjuh1jhjZhhhjhKubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjVhhhjhKubah}(h]jQah ](j j eh"]h$]h&]j j )j huh1j? hjhKhjShhubj )}(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 hjShhhjhKubeh}(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.chMGubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjhhhj hMGubjo )}(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 hMGubj)}(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 hMGubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhj hMGubah}(h]jah ](j j eh"]h$]h&]j j )j huh1j? hj hMGhjhhubj )}(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 hMGubeh}(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.chMBhjubj )}(hhh]j )}(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](j )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMDhjubj9 )}(hhh]h)}(hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hdevice, 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.chMChjubah}(h]h ]h"]h$]h&]uh1j8 hjubeh}(h]h ]h"]h$]h&]uh1j hjhMDhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(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&]uh1jhj hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMyubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj hhhjhMyubjo )}(h vme_slave_geth]ju )}(h vme_slave_geth]h vme_slave_get}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj+ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj hhhjhMyubj)}(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}(hjKhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjGubj^ )}(h h]h }(hjXhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjihhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjfubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.vme_slave_getasbuh1hhjGubj^ )}(h h]h }(hjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubju )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubj)}(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&]noemphjjuh1jhjCubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hj hhhNhNubah}(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)}(hlongh]hlong}(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^ )}(h h]h }(hjE hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjubj)}(hjh]h*}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju )}(hvme_baseh]hvme_base}(hj` hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hju ubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hju ubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju ubj^ )}(h h]h }(hj hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hju ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju ubju )}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hju ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubj)}(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]jc.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&]noemphjjuh1jhjCubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjK!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjH!ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjM!modnameN classnameNjj)}j]jc.vme_slave_getasbuh1hhjD!ubj^ )}(h h]h }(hji!hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjD!ubj)}(hjh]h*}(hjw!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD!ubju )}(haspaceh]haspace}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjD!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubj)}(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]jc.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 )}(hcycleh]hcycle}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubeh}(h]h ]h"]h$]h&]jjuh1jhj hhhjhMyubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjhhhjhMyubah}(h]jah ](j j eh"]h$]h&]j j )j huh1j? hjhMyhjhhubj )}(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 hjhhhjhMyubeh}(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)}(hjD"h]hstruct vme_resource *resource}(hjF"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB"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.}(hj]"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY"hMlhjZ"ubah}(h]h ]h"]h$]h&]uh1j8 hj>"ubeh}(h]h ]h"]h$]h&]uh1j hjY"hMlhj;"ubj )}(h8``int *enabled`` Pointer to variable for storing state. 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.chMmhjw"ubj9 )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMmhj"ubah}(h]h ]h"]h$]h&]uh1j8 hjw"ubeh}(h]h ]h"]h$]h&]uh1j hj"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.}(hjA#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)}(hja#h]h u32 *aspace}(hjc#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.chMqhj[#ubj9 )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hjz#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv#hMqhjw#ubah}(h]h ]h"]h$]h&]uh1j8 hj[#ubeh}(h]h ]h"]h$]h&]uh1j hjv#hMqhj;"ubj )}(hM``u32 *cycle`` Pointer to variable for storing 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.chMrhj#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 hj#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.chMthj"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.chMvhj"ubj )}(hhh]j )}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](j )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhj$ubj9 )}(hhh]h)}(h3device or if an invalid resource has been provided.h]h3device 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.chMwhj($ubah}(h]h ]h"]h$]h&]uh1j8 hj$ubeh}(h]h ]h"]h$]h&]uh1j hj'$hMvhj$ubah}(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_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}(hjl$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh$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] hjh$hhhjz$hMubjo )}(hvme_slave_freeh]ju )}(hvme_slave_freeh]hvme_slave_free}(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjh$hhhjz$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_slave_freeasbuh1hhj$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 )}(hresourceh]hresource}(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj$ubah}(h]h ]h"]h$]h&]jjuh1jhjh$hhhjz$hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjd$hhhjz$hMubah}(h]j_$ah ](j j eh"]h$]h&]j j )j huh1j? hjz$hMhja$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 hja$hhhjz$hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jD%j jD%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 )}(hjN%h]h Parameters}(hjP%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjL%ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjH%ubj )}(hhh]j )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjm%h]hstruct vme_resource *resource}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjk%ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjg%ubj9 )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1j8 hjg%ubeh}(h]h ]h"]h$]h&]uh1j hj%hMhjd%ubah}(h]h ]h"]h$]h&]uh1j hjH%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.chMhjH%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.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjH%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}(hjL&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjH&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}(hjg&hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjc&ubj^ )}(h h]h }(hjt&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjc&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(&c.vme_master_requestasbuh1hhjc&ubj^ )}(h h]h }(hj&hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjc&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc&ubju )}(hvdevh]hvdev}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjc&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}(hjN'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}(hjj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjg'ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjl'modnameN classnameNjj)}j]j(&c.vme_master_requestasbuh1hhjc'ubj^ )}(h h]h }(hj'hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjc'ubju )}(hdwidthh]hdwidth}(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjc'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.}(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_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 )}(hq``u32 address``h]h)}(hj:(h]h u32 address}(hj<(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8(ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj4(ubj9 )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hjS(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO(hMhjP(ubah}(h]h ]h"]h$]h&]uh1j8 hj4(ubeh}(h]h ]h"]h$]h&]uh1j hjO(hMhj'ubj )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j )}(h ``u32 cycle``h]h)}(hjs(h]h u32 cycle}(hju(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq(ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjm(ubj9 )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1j8 hjm(ubeh}(h]h ]h"]h$]h&]uh1j hj(hMhj'ubj )}(h1``u32 dwidth`` Required VME data transfer width. h](j )}(h``u32 dwidth``h]h)}(hj(h]h u32 dwidth}(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 width.h]h!Required VME data transfer width.}(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 )}(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}(hjS)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO)hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM ubj^ )}(h h]h }(hjb)hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjO)hhhja)hM ubjo )}(hvme_master_seth]ju )}(hvme_master_seth]hvme_master_set}(hjt)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjp)ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjO)hhhja)hM ubj)}(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)}jjv)sbc.vme_master_setasbuh1hhj)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 )}(hresourceh]hresource}(hj)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)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}(hj7*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3*ubj^ )}(h h]h }(hjE*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3*ubj)}(hlongh]hlong}(hjS*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3*ubj^ )}(h h]h }(hja*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3*ubj)}(hlongh]hlong}(hjo*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3*ubj^ )}(h h]h }(hj}*hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3*ubju )}(hvme_baseh]hvme_base}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(hunsigned long long sizeh](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 )}(hsizeh]hsize}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj*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]j)c.vme_master_setasbuh1hhj +ubj^ )}(h h]h }(hj2+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&]noemphjjuh1jhj)ubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj\+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjY+ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj^+modnameN classnameNjj)}j]j)c.vme_master_setasbuh1hhjU+ubj^ )}(h h]h }(hjz+hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjU+ubju )}(hcycleh]hcycle}(hj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjU+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_setasbuh1hhj+ubj^ )}(h h]h }(hj+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&]jjuh1jhjO)hhhja)hM ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjK)hhhja)hM ubah}(h]jF)ah ](j j eh"]h$]h&]j j )j huh1j? hja)hM hjH)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 hjH)hhhja)hM ubeh}(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&]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)}(hPointer to VME master resource.h]hPointer to VME master resource.}(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,hMhj2,ubj )}(h@``int enabled`` State to which the window should be configured. h](j )}(h``int enabled``h]h)}(hjt,h]h int enabled}(hjv,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr,ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjn,ubj9 )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1j8 hjn,ubeh}(h]h ]h"]h$]h&]uh1j hj,hMhj2,ubj )}(h=``unsigned long long vme_base`` Base address for the window. 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.chMhj,ubj9 )}(hhh]h)}(hBase address for the window.h]hBase address for the 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,hMhj2,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,hMhj2,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.}(hj8-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4-hMhj5-ubah}(h]h ]h"]h$]h&]uh1j8 hj-ubeh}(h]h ]h"]h$]h&]uh1j hj4-hMhj2,ubj )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j )}(h ``u32 cycle``h]h)}(hjX-h]h u32 cycle}(hjZ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV-ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjR-ubj9 )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hjq-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm-hMhjn-ubah}(h]h ]h"]h$]h&]uh1j8 hjR-ubeh}(h]h ]h"]h$]h&]uh1j hjm-hMhj2,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&]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 data transfer width for the VME window.h]h+VME data transfer width 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-hMhj2,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)}(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,ubj )}(hhh]j )}(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](j )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hj.hhhNhNubah}(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)}(hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hdevice, 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.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,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}(hjc.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_.hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM?ubj^ )}(h h]h }(hjr.hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj_.hhhjq.hM?ubjo )}(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_.hhhjq.hM?ubj)}(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*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubju )}(hresourceh]hresource}(hj.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}(hjT/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP/ubj^ )}(h h]h }(hjb/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjP/ubj)}(hlongh]hlong}(hjp/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP/ubj^ )}(h h]h }(hj~/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjP/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP/ubj^ )}(h h]h }(hj/hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjP/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP/ubju )}(hvme_baseh]hvme_base}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjP/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(hunsigned long long *sizeh](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}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj^ )}(h h]h }(hj0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj/ubj)}(hjh]h*}(hj"0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubju )}(hsizeh]hsize}(hj/0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjK0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjH0ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjM0modnameN classnameNjj)}j]j.c.vme_master_getasbuh1hhjD0ubj^ )}(h h]h }(hji0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjD0ubj)}(hjh]h*}(hjw0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD0ubju )}(haspaceh]haspace}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjD0ubeh}(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 reftargetj0modnameN classnameNjj)}j]j.c.vme_master_getasbuh1hhj0ubj^ )}(h h]h }(hj0hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubju )}(hcycleh]hcycle}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *dwidthh](h)}(hhh]ju )}(hu32h]hu32}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj0ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj0modnameN classnameNjj)}j]j.c.vme_master_getasbuh1hhj0ubj^ )}(h h]h }(hj1hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj0ubj)}(hjh]h*}(hj!1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubju )}(hdwidthh]hdwidth}(hj.1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubeh}(h]h ]h"]h$]h&]jjuh1jhj_.hhhjq.hM?ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj[.hhhjq.hM?ubah}(h]jV.ah ](j j eh"]h$]h&]j j )j huh1j? hjq.hM?hjX.hhubj )}(hhh]h)}(h)Retrieve VME master window configuration.h]h)Retrieve VME master window configuration.}(hjX1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjU1hhubah}(h]h ]h"]h$]h&]uh1j hjX.hhhjq.hM?ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jp1j jp1j 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 )}(hjz1h]h Parameters}(hj|1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjx1ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hjt1ubj )}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM2hj1ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj1hM2hj1ubj )}(h8``int *enabled`` Pointer to variable for storing state. h](j )}(h``int *enabled``h]h)}(hj1h]h int *enabled}(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.chM3hj1ubj9 )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM3hj1ubah}(h]h ]h"]h$]h&]uh1j8 hj1ubeh}(h]h ]h"]h$]h&]uh1j hj1hM3hj1ubj )}(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 2h]hunsigned long long *vme_base}(hj 2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM4hj2ubj9 )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hj$2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 2hM4hj!2ubah}(h]h ]h"]h$]h&]uh1j8 hj2ubeh}(h]h ]h"]h$]h&]uh1j hj 2hM4hj1ubj )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j )}(h``unsigned long long *size``h]h)}(hjD2h]hunsigned long long *size}(hjF2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj>2ubj9 )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hj]2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY2hM5hjZ2ubah}(h]h ]h"]h$]h&]uh1j8 hj>2ubeh}(h]h ]h"]h$]h&]uh1j hjY2hM5hj1ubj )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j )}(h``u32 *aspace``h]h)}(hj}2h]h u32 *aspace}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6hjw2ubj9 )}(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 hjw2ubeh}(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)}(hj2h]h u32 *cycle}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hj2ubj9 )}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM7hj2ubah}(h]h ]h"]h$]h&]uh1j8 hj2ubeh}(h]h ]h"]h$]h&]uh1j hj2hM7hj1ubj )}(hI``u32 *dwidth`` Pointer to variable for storing VME data transfer width. h](j )}(h``u32 *dwidth``h]h)}(hj2h]h u32 *dwidth}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hj2ubj9 )}(hhh]h)}(h8Pointer to variable for storing VME data transfer width.h]h8Pointer to variable for storing VME data transfer width.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hM8hj3ubah}(h]h ]h"]h$]h&]uh1j8 hj2ubeh}(h]h ]h"]h$]h&]uh1j hj3hM8hj1ubeh}(h]h ]h"]h$]h&]uh1j hjt1ubh)}(h**Description**h]j )}(hj*3h]h Description}(hj,3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(3ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hjt1ubh)}(h4Return configuration for provided VME master window.h]h4Return configuration for provided VME master window.}(hj@3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hjt1ubh)}(h **Return**h]j )}(hjQ3h]hReturn}(hjS3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjO3ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjt1ubj )}(hhh]j )}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](j )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjn3hhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjj3ubj9 )}(hhh]h)}(h3device or if an invalid resource has been provided.h]h3device or if an invalid resource has been provided.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM=hj}3ubah}(h]h ]h"]h$]h&]uh1j8 hjj3ubeh}(h]h ]h"]h$]h&]uh1j hj|3hM<hjg3ubah}(h]h ]h"]h$]h&]uh1j hjt1ubeh}(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.chMfubj^ )}(h h]h }(hj3hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3hhhj3hMfubjo )}(hvme_master_readh]ju )}(hj3h]hvme_master_read}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj3hhhj3hMfubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj4hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj4ubj^ )}(h h]h }(hj 4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj4ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj14hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj.4ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj34modnameN classnameNjj)}j]j3c.vme_master_readasbuh1hhj4ubj^ )}(h h]h }(hjO4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj4ubj)}(hjh]h*}(hj]4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubju )}(hresourceh]hresource}(hjj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj 4ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj^ )}(h h]h }(hj4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubju )}(hbufh]hbuf}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj 4ubj)}(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]j3c.vme_master_readasbuh1hhj4ubj^ )}(h h]h }(hj4hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj4ubju )}(hcounth]hcount}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj 4ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj 5ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj5modnameN classnameNjj)}j]j3c.vme_master_readasbuh1hhj 5ubj^ )}(h h]h }(hj.5hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj 5ubju )}(hoffseth]hoffset}(hj<5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj 5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj 4ubeh}(h]h ]h"]h$]h&]jjuh1jhj3hhhj3hMfubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj3hhhj3hMfubah}(h]j3ah ](j j eh"]h$]h&]j j )j huh1j? hj3hMfhj3hhubj )}(hhh]h)}(h'Read data from VME space into a buffer.h]h'Read data from VME space into a buffer.}(hjf5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhjc5hhubah}(h]h ]h"]h$]h&]uh1j hj3hhhj3hMfubeh}(h]h ](hfunctioneh"]h$]h&]j hj j~5j j~5j j j uh1j: hhhj hNhNubj )}(hX**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 )}(hj5h]h Parameters}(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\hj5ubj )}(hhh](j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj5h]hstruct vme_resource *resource}(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.chMYhj5ubj9 )}(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 hj5ubeh}(h]h ]h"]h$]h&]uh1j hj5hMYhj5ubj )}(hB``void *buf`` Pointer to buffer where data should be transferred. h](j )}(h ``void *buf``h]h)}(hj5h]h void *buf}(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.chMZhj5ubj9 )}(hhh]h)}(h3Pointer to buffer where data should be transferred.h]h3Pointer to buffer where data should be transferred.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMZhj5ubah}(h]h ]h"]h$]h&]uh1j8 hj5ubeh}(h]h ]h"]h$]h&]uh1j hj5hMZhj5ubj )}(h.``size_t count`` Number of bytes to transfer. h](j )}(h``size_t count``h]h)}(hj6h]h size_t count}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(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)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj26hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.6hM[hj/6ubah}(h]h ]h"]h$]h&]uh1j8 hj6ubeh}(h]h ]h"]h$]h&]uh1j hj.6hM[hj5ubj )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j )}(h``loff_t offset``h]h)}(hjR6h]h loff_t offset}(hjT6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP6ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hjL6ubj9 )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hjk6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg6hM\hjh6ubah}(h]h ]h"]h$]h&]uh1j8 hjL6ubeh}(h]h ]h"]h$]h&]uh1j hjg6hM\hj5ubeh}(h]h ]h"]h$]h&]uh1j hj5ubh)}(h**Description**h]j )}(hj6h]h Description}(hj6hhhNhNubah}(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^hj5ubh)}(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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj5ubh)}(h **Return**h]j )}(hj6h]hReturn}(hj6hhhNhNubah}(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.chMahj5ubj )}(hhh]j )}(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](j )}(h=Number of bytes read, -EINVAL if resource is not a VME masterh]h=Number of bytes read, -EINVAL if resource is not a VME master}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMchj6ubj9 )}(hhh]h)}(hresource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hresource 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.chMbhj6ubah}(h]h ]h"]h$]h&]uh1j8 hj6ubeh}(h]h ]h"]h$]h&]uh1j hj6hMchj6ubah}(h]h ]h"]h$]h&]uh1j hj5ubeh}(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}(hj'7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$7ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj)7modnameN classnameNjj)}j]j)}jvme_master_writesbc.vme_master_writeasbuh1hhj 7hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjI7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj 7hhhjH7hMubjo )}(hvme_master_writeh]ju )}(hjE7h]hvme_master_write}(hj[7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjW7ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj 7hhhjH7hMubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjv7hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjr7ubj^ )}(h h]h }(hj7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjr7ubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj7modnameN classnameNjj)}j]jC7c.vme_master_writeasbuh1hhjr7ubj^ )}(h h]h }(hj7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjr7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr7ubju )}(hresourceh]hresource}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjr7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjn7ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj^ )}(h h]h }(hj7hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj7ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubju )}(hbufh]hbuf}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjn7ubj)}(h size_t counth](h)}(hhh]ju )}(hsize_th]hsize_t}(hj+8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj(8ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj-8modnameN classnameNjj)}j]jC7c.vme_master_writeasbuh1hhj$8ubj^ )}(h h]h }(hjI8hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj$8ubju )}(hcounth]hcount}(hjW8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjn7ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hjs8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjp8ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetju8modnameN classnameNjj)}j]jC7c.vme_master_writeasbuh1hhjl8ubj^ )}(h h]h }(hj8hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjl8ubju )}(hoffseth]hoffset}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjl8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjn7ubeh}(h]h ]h"]h$]h&]jjuh1jhj 7hhhjH7hMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj7hhhjH7hMubah}(h]j7ah ](j j eh"]h$]h&]j j )j huh1j? hjH7hMhj7hhubj )}(hhh]h)}(h*Write data out to VME space from a buffer.h]h*Write data out to VME space from a buffer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8hhubah}(h]h ]h"]h$]h&]uh1j hj7hhhjH7hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j8j j8j j j uh1j: hhhj hNhNubj )}(hX**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)}(hj 9h]hstruct vme_resource *resource}(hj 9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9ubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj#9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj 9ubah}(h]h ]h"]h$]h&]uh1j8 hj9ubeh}(h]h ]h"]h$]h&]uh1j hj9hMhj9ubj )}(h:``void *buf`` Pointer to buffer holding data to transfer. h](j )}(h ``void *buf``h]h)}(hjC9h]h void *buf}(hjE9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA9ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=9ubj9 )}(hhh]h)}(h+Pointer to buffer holding data to transfer.h]h+Pointer to buffer holding data to transfer.}(hj\9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX9hMhjY9ubah}(h]h ]h"]h$]h&]uh1j8 hj=9ubeh}(h]h ]h"]h$]h&]uh1j hjX9hMhj9ubj )}(h.``size_t count`` Number of bytes to transfer. h](j )}(h``size_t count``h]h)}(hj|9h]h size_t count}(hj~9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz9ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjv9ubj9 )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1j8 hjv9ubeh}(h]h ]h"]h$]h&]uh1j hj9hMhj9ubj )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j )}(h``loff_t offset``h]h)}(hj9h]h loff_t offset}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9ubj9 )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1j8 hj9ubeh}(h]h ]h"]h$]h&]uh1j hj9hMhj9ubeh}(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:hhhNhNubah}(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: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.chMhj8ubj )}(hhh]j )}(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](j )}(h@Number of bytes written, -EINVAL if resource is not a VME masterh]h@Number of bytes written, -EINVAL if resource is not a VME master}(hj4:hhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj0:ubj9 )}(hhh]h)}(hresource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hresource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hjF:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjC:ubah}(h]h ]h"]h$]h&]uh1j8 hj0:ubeh}(h]h ]h"]h$]h&]uh1j hjB:hMhj-:ubah}(h]h ]h"]h$]h&]uh1j hj8ubeh}(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}(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:hMubj)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhj:hMubj^ )}(h h]h }(hj:hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:hhhj:hMubjo )}(hvme_master_rmwh]ju )}(hvme_master_rmwh]hvme_master_rmw}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj:hhhj:hMubj)}(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}(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_rmwasbuh1hhj: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 )}(hresourceh]hresource}(hj9;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj:ubj)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjR;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN;ubj^ )}(h h]h }(hj`;hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjN;ubj)}(hinth]hint}(hjn;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN;ubj^ )}(h h]h }(hj|;hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjN;ubju )}(hmaskh]hmask}(hj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjN;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj:ubj)}(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&]noemphjjuh1jhj:ubj)}(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&]noemphjjuh1jhj:ubj)}(h loff_t offseth](h)}(hhh]ju )}(hloff_th]hloff_t}(hjH<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjE<ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjJ<modnameN classnameNjj)}j]j;c.vme_master_rmwasbuh1hhjA<ubj^ )}(h h]h }(hjf<hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjA<ubju )}(hoffseth]hoffset}(hjt<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjA<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]jz:ah ](j j eh"]h$]h&]j j )j huh1j? hj:hMhj|:hhubj )}(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 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. ``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.}(hj1=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)}(hjQ=h]hunsigned int compare}(hjS=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO=ubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjK=ubj9 )}(hhh]h)}(h/Bits to be compared with data read from offset.h]h/Bits to be compared with data read from offset.}(hjj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf=hMhjg=ubah}(h]h ]h"]h$]h&]uh1j8 hjK=ubeh}(h]h ]h"]h$]h&]uh1j hjf=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 ]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)}(hXPerform 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.h]hXPerform 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.}(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<ubj )}(hhh]j )}(hBytes 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](j )}(hABytes written on success, -EINVAL if resource is not a VME masterh]hABytes written on success, -EINVAL if resource is not a VME master}(hjB>hhhNhNubah}(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)}(hZresource or RMW operation is not supported. Hardware specific errors may also be returned.h]hZresource or RMW operation is not supported. Hardware specific errors may also be returned.}(hjT>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP>hMhjQ>ubah}(h]h ]h"]h$]h&]uh1j8 hj>>ubeh}(h]h ]h"]h$]h&]uh1j hjP>hMhj;>ubah}(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_master_mmap (C function)c.vme_master_mmaphNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hOint vme_master_mmap (struct vme_resource *resource, struct vm_area_struct *vma)h]jF )}(hNint vme_master_mmap(struct vme_resource *resource, struct vm_area_struct *vma)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_mmaph]ju )}(hvme_master_mmaph]hvme_master_mmap}(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, struct vm_area_struct *vma)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_mmapasbuh1hhj>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 )}(hresourceh]hresource}(hj*?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj>ubj)}(hstruct vm_area_struct *vmah](jL )}(hjO h]hstruct}(hjC?hhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj??ubj^ )}(h h]h }(hjP?hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj??ubh)}(hhh]ju )}(hvm_area_structh]hvm_area_struct}(hja?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj^?ubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjc?modnameN classnameNjj)}j]j ?c.vme_master_mmapasbuh1hhj??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 )}(hvmah]hvma}(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!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>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. ``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.chMhj8@ubj9 )}(hhh]h)}(h&Pointer to definition of user mapping.h]h&Pointer to definition of user mapping.}(hjW@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS@hMhjT@ubah}(h]h ]h"]h$]h&]uh1j8 hj8@ubeh}(h]h ]h"]h$]h&]uh1j hjS@hMhj?ubeh}(h]h ]h"]h$]h&]uh1j hj?ubh)}(h**Description**h]j )}(hjy@h]h Description}(hj{@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjw@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.}(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?ubj )}(hhh]j )}(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](j )}(h8Zero on success, -EINVAL if resource is not a VME masterh]h8Zero on success, -EINVAL if resource is not a VME master}(hj@hhhNhNubah}(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_resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h]h_resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.}(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@ubah}(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_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}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Ahhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM ubj^ )}(h h]h }(hjAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj AhhhjAhM ubjo )}(hvme_master_freeh]ju )}(hvme_master_freeh]hvme_master_free}(hj0AhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj,Aubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj AhhhjAhM ubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjLAhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjHAubj^ )}(h h]h }(hjYAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjHAubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjgAubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjlAmodnameN classnameNjj)}j]j)}jj2Asbc.vme_master_freeasbuh1hhjHAubj^ )}(h h]h }(hjAhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjHAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHAubju )}(hresourceh]hresource}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjHAubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjDAubah}(h]h ]h"]h$]h&]jjuh1jhj AhhhjAhM ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjAhhhjAhM ubah}(h]jAah ](j j eh"]h$]h&]j j )j huh1j? hjAhM hjAhhubj )}(hhh]h)}(hFree VME master windowh]hFree VME master window}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjAhhubah}(h]h ]h"]h$]h&]uh1j hjAhhhjAhM ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jAj jAj 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 )}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjAubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjAubj )}(hhh]j )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjBh]hstruct vme_resource *resource}(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 hj Bubj9 )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj)BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%BhM hj&Bubah}(h]h ]h"]h$]h&]uh1j8 hj Bubeh}(h]h ]h"]h$]h&]uh1j hj%BhM hjBubah}(h]h ]h"]h$]h&]uh1j hjAubh)}(h**Description**h]j )}(hjKBh]h Description}(hjMBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjIBubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjAubh)}(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.}(hjaBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjAubeh}(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}(hjBhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjBhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1ubj^ )}(h h]h }(hjBhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjBhhhjBhM1ubh)}(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)}jvme_dma_requestsbc.vme_dma_requestasbuh1hhjBhhhjBhM1ubj^ )}(h h]h }(hjBhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjBhhhjBhM1ubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhM1ubjo )}(hvme_dma_requesth]ju )}(hjBh]hvme_dma_request}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjBubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjBhhhjBhM1ubj)}(h!(struct vme_dev *vdev, u32 route)h](j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hj ChhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjCubj^ )}(h h]h }(hjChhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjCubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj(ChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj%Cubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj*CmodnameN classnameNjj)}j]jBc.vme_dma_requestasbuh1hhjCubj^ )}(h h]h }(hjFChhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjCubj)}(hjh]h*}(hjTChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubju )}(hvdevh]hvdev}(hjaChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjCubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubj)}(h u32 routeh](h)}(hhh]ju )}(hu32h]hu32}(hj}ChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjzCubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjCmodnameN classnameNjj)}j]jBc.vme_dma_requestasbuh1hhjvCubj^ )}(h h]h }(hjChhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjvCubju )}(hrouteh]hroute}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjvCubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubeh}(h]h ]h"]h$]h&]jjuh1jhjBhhhjBhM1ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjBhhhjBhM1ubah}(h]jBah ](j j eh"]h$]h&]j j )j huh1j? hjBhM1hjBhhubj )}(hhh]h)}(hRequest a DMA controller.h]hRequest a DMA controller.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM(hjChhubah}(h]h ]h"]h$]h&]uh1j hjBhhhjBhM1ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jCj jCj 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 bewteen requested source/destination combination. **Return** Pointer to VME DMA resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j hjCubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjCubj )}(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)}(hjDh]hstruct vme_dev *vdev}(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.chM)hjDubj9 )}(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-DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)DhM)hj*Dubah}(h]h ]h"]h$]h&]uh1j8 hjDubeh}(h]h ]h"]h$]h&]uh1j hj)DhM)hj Dubj )}(h4``u32 route`` Required src/destination combination. h](j )}(h ``u32 route``h]h)}(hjMDh]h u32 route}(hjODhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKDubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM*hjGDubj9 )}(hhh]h)}(h%Required src/destination combination.h]h%Required src/destination combination.}(hjfDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbDhM*hjcDubah}(h]h ]h"]h$]h&]uh1j8 hjGDubeh}(h]h ]h"]h$]h&]uh1j hjbDhM*hj Dubeh}(h]h ]h"]h$]h&]uh1j hjCubh)}(h**Description**h]j )}(hjDh]h Description}(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.chM,hjCubh)}(hsRequest a VME DMA controller with capability to perform transfers bewteen requested source/destination combination.h]hsRequest a VME DMA controller with capability to perform transfers bewteen requested source/destination combination.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjCubh)}(h **Return**h]j )}(hjDh]hReturn}(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.chM/hjCubh)}(h8Pointer to VME DMA resource on success, NULL on failure.h]h8Pointer to VME DMA resource on success, NULL on failure.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjCubeh}(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}(hjDhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjDhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwubj^ )}(h h]h }(hjEhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjDhhhjEhMwubh)}(hhh]ju )}(h vme_dma_listh]h vme_dma_list}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjEmodnameN classnameNjj)}j]j)}jvme_new_dma_listsbc.vme_new_dma_listasbuh1hhjDhhhjEhMwubj^ )}(h h]h }(hj4EhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjDhhhjEhMwubj)}(hjh]h*}(hjBEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjEhMwubjo )}(hvme_new_dma_listh]ju )}(hj1Eh]hvme_new_dma_list}(hjSEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjOEubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjDhhhjEhMwubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjnEhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjjEubj^ )}(h h]h }(hj{EhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjjEubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjEubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjEmodnameN classnameNjj)}j]j/Ec.vme_new_dma_listasbuh1hhjjEubj^ )}(h h]h }(hjEhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjjEubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjEubju )}(hresourceh]hresource}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjjEubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfEubah}(h]h ]h"]h$]h&]jjuh1jhjDhhhjEhMwubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjDhhhjEhMwubah}(h]jDah ](j j eh"]h$]h&]j j )j huh1j? hjEhMwhjDhhubj )}(hhh]h)}(hCreate new VME DMA list.h]hCreate new VME DMA list.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhjEhhubah}(h]h ]h"]h$]h&]uh1j hjDhhhjEhMwubeh}(h]h ](hfunctioneh"]h$]h&]j hj jFj jFj j j uh1j: hhhj hNhNubj )}(hXU**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 )}(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.chMrhj Fubj )}(hhh]j )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj0Fh]hstruct vme_resource *resource}(hj2FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.Fubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj*Fubj9 )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjIFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEFhMohjFFubah}(h]h ]h"]h$]h&]uh1j8 hj*Fubeh}(h]h ]h"]h$]h&]uh1j hjEFhMohj'Fubah}(h]h ]h"]h$]h&]uh1j hj Fubh)}(h**Description**h]j )}(hjkFh]h Description}(hjmFhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiFubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhj Fubh)}(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().}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhj Fubh)}(h **Return**h]j )}(hjFh]hReturn}(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.chMthj Fubj )}(hhh]j )}(hTPointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.h](j )}(hBPointer to new VME DMA list, NULL on allocation failure or invalidh]hBPointer to new VME DMA list, NULL on allocation failure or invalid}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjFubj9 )}(hhh]h)}(hVME DMA resource.h]hVME DMA resource.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMuhjFubah}(h]h ]h"]h$]h&]uh1j8 hjFubeh}(h]h ]h"]h$]h&]uh1j hjFhMthjFubah}(h]h ]h"]h$]h&]uh1j hj Fubeh}(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}(hjGhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjFhhh^/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] hjFhhhjGhMubh)}(hhh]ju )}(h vme_dma_attrh]h vme_dma_attr}(hj!GhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj#GmodnameN classnameNjj)}j]j)}jvme_dma_pattern_attributesbc.vme_dma_pattern_attributeasbuh1hhjFhhhjGhMubj^ )}(h h]h }(hjBGhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjFhhhjGhMubj)}(hjh]h*}(hjPGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjGhMubjo )}(hvme_dma_pattern_attributeh]ju )}(hj?Gh]hvme_dma_pattern_attribute}(hjaGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj]Gubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjFhhhjGhMubj)}(h(u32 pattern, u32 type)h](j)}(h u32 patternh](h)}(hhh]ju )}(hu32h]hu32}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj|Gubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjGmodnameN classnameNjj)}j]j=Gc.vme_dma_pattern_attributeasbuh1hhjxGubj^ )}(h h]h }(hjGhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjxGubju )}(hpatternh]hpattern}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjxGubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjtGubj)}(hu32 typeh](h)}(hhh]ju )}(hu32h]hu32}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjGmodnameN classnameNjj)}j]j=Gc.vme_dma_pattern_attributeasbuh1hhjGubj^ )}(h h]h }(hjGhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjGubju )}(htypeh]htype}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjtGubeh}(h]h ]h"]h$]h&]jjuh1jhjFhhhjGhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjFhhhjGhMubah}(h]jFah ](j j eh"]h$]h&]j j )j huh1j? hjGhMhjFhhubj )}(hhh]h)}(h-Create "Pattern" type VME DMA list attribute.h]h1Create “Pattern” type VME DMA list attribute.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHhhubah}(h]h ]h"]h$]h&]uh1j hjFhhhjGhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j5Hj j5Hj 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 )}(hj?Hh]h Parameters}(hjAHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=Hubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9Hubj )}(hhh](j )}(h-``u32 pattern`` Value to use used as pattern h](j )}(h``u32 pattern``h]h)}(hj^Hh]h u32 pattern}(hj`HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\Hubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjXHubj9 )}(hhh]h)}(hValue to use used as patternh]hValue to use used as pattern}(hjwHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsHhMhjtHubah}(h]h ]h"]h$]h&]uh1j8 hjXHubeh}(h]h ]h"]h$]h&]uh1j hjsHhMhjUHubj )}(h,``u32 type`` Type of pattern to be written. h](j )}(h ``u32 type``h]h)}(hjHh]hu32 type}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHubj9 )}(hhh]h)}(hType of pattern to be written.h]hType of pattern to be written.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1j8 hjHubeh}(h]h ]h"]h$]h&]uh1j hjHhMhjUHubeh}(h]h ]h"]h$]h&]uh1j hj9Hubh)}(h**Description**h]j )}(hjHh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9Hubh)}(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().}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9Hubh)}(h **Return**h]j )}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9Hubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9Hubeh}(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}(hj>IhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj:Ihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjLIhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:IhhhjKIhMubh)}(hhh]ju )}(h vme_dma_attrh]h vme_dma_attr}(hj]IhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjZIubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj_ImodnameN classnameNjj)}j]j)}jvme_dma_pci_attributesbc.vme_dma_pci_attributeasbuh1hhj:IhhhjKIhMubj^ )}(h h]h }(hj~IhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:IhhhjKIhMubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:IhhhjKIhMubjo )}(hvme_dma_pci_attributeh]ju )}(hj{Ih]hvme_dma_pci_attribute}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjIubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj:IhhhjKIhMubj)}(h(dma_addr_t address)h]j)}(hdma_addr_t addressh](h)}(hhh]ju )}(h dma_addr_th]h dma_addr_t}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjIubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjImodnameN classnameNjj)}j]jyIc.vme_dma_pci_attributeasbuh1hhjIubj^ )}(h h]h }(hjIhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjIubju )}(haddressh]haddress}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjIubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubah}(h]h ]h"]h$]h&]jjuh1jhj:IhhhjKIhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj6IhhhjKIhMubah}(h]j1Iah ](j j eh"]h$]h&]j j )j huh1j? hjKIhMhj3Ihhubj )}(hhh]h)}(h)Create "PCI" type VME DMA list attribute.h]h-Create “PCI” type VME DMA list attribute.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJhhubah}(h]h ]h"]h$]h&]uh1j hj3IhhhjKIhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j)Jj j)Jj j j uh1j: hhhj hNhNubj )}(hXE**Parameters** ``dma_addr_t address`` PCI base address for DMA transfer. **Description** Create VME DMA list attribute pointing to a location on PCI for DMA transfers. 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 )}(hj3Jh]h Parameters}(hj5JhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1Jubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Jubj )}(hhh]j )}(h:``dma_addr_t address`` PCI base address for DMA transfer. h](j )}(h``dma_addr_t address``h]h)}(hjRJh]hdma_addr_t address}(hjTJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPJubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLJubj9 )}(hhh]h)}(h"PCI base address for DMA transfer.h]h"PCI base address for DMA transfer.}(hjkJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgJhMhjhJubah}(h]h ]h"]h$]h&]uh1j8 hjLJubeh}(h]h ]h"]h$]h&]uh1j hjgJhMhjIJubah}(h]h ]h"]h$]h&]uh1j hj-Jubh)}(h**Description**h]j )}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Jubh)}(hCreate VME DMA list attribute pointing to a location on PCI for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().h]hCreate VME DMA list attribute pointing to a location on PCI for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Jubh)}(h **Return**h]j )}(hjJh]hReturn}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Jubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-Jubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 "vme_dma_vme_attribute (C function)c.vme_dma_vme_attributehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(hkstruct vme_dma_attr * vme_dma_vme_attribute (unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h]jF )}(histruct vme_dma_attr *vme_dma_vme_attribute(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](jL )}(hjO h]hstruct}(hjJhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjJhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjKhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJhhhjKhMubh)}(hhh]ju )}(h vme_dma_attrh]h vme_dma_attr}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjKubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjKmodnameN classnameNjj)}j]j)}jvme_dma_vme_attributesbc.vme_dma_vme_attributeasbuh1hhjJhhhjKhMubj^ )}(h h]h }(hj9KhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjJhhhjKhMubj)}(hjh]h*}(hjGKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhjKhMubjo )}(hvme_dma_vme_attributeh]ju )}(hj6Kh]hvme_dma_vme_attribute}(hjXKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjTKubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjJhhhjKhMubj)}(h?(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hunsigned long long addressh](j)}(hunsignedh]hunsigned}(hjsKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoKubj^ )}(h h]h }(hjKhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoKubj)}(hlongh]hlong}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoKubj^ )}(h h]h }(hjKhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoKubj)}(hlongh]hlong}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoKubj^ )}(h h]h }(hjKhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjoKubju )}(haddressh]haddress}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjoKubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkKubj)}(h u32 aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjKubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjKmodnameN classnameNjj)}j]j4Kc.vme_dma_vme_attributeasbuh1hhjKubj^ )}(h h]h }(hjLhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjKubju )}(haspaceh]haspace}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjKubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkKubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj+LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj(Lubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj-LmodnameN classnameNjj)}j]j4Kc.vme_dma_vme_attributeasbuh1hhj$Lubj^ )}(h h]h }(hjILhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj$Lubju )}(hcycleh]hcycle}(hjWLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj$Lubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkKubj)}(h u32 dwidthh](h)}(hhh]ju )}(hu32h]hu32}(hjsLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjpLubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjuLmodnameN classnameNjj)}j]j4Kc.vme_dma_vme_attributeasbuh1hhjlLubj^ )}(h h]h }(hjLhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjlLubju )}(hdwidthh]hdwidth}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjlLubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkKubeh}(h]h ]h"]h$]h&]jjuh1jhjJhhhjKhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjJhhhjKhMubah}(h]jJah ](j j eh"]h$]h&]j j )j huh1j? hjKhMhjJhhubj )}(hhh]h)}(h)Create "VME" type VME DMA list attribute.h]h-Create “VME” type VME DMA list attribute.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLhhubah}(h]h ]h"]h$]h&]uh1j hjJhhhjKhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jLj jLj j j uh1j: hhhj hNhNubj )}(hX**Parameters** ``unsigned long long address`` VME base address for DMA transfer. ``u32 aspace`` VME address space to use for DMA transfer. ``u32 cycle`` VME bus cycle to use for DMA transfer. ``u32 dwidth`` VME data width to use for DMA transfer. **Description** Create VME DMA list attribute pointing to a location on the VME bus for DMA transfers. 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 )}(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.chMhjLubj )}(hhh](j )}(hB``unsigned long long address`` VME base address for DMA transfer. h](j )}(h``unsigned long long address``h]h)}(hj Mh]hunsigned long long address}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjMubj9 )}(hhh]h)}(h"VME base address for DMA transfer.h]h"VME base address for DMA transfer.}(hj#MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhj Mubah}(h]h ]h"]h$]h&]uh1j8 hjMubeh}(h]h ]h"]h$]h&]uh1j hjMhMhjMubj )}(h:``u32 aspace`` VME address space to use for DMA transfer. h](j )}(h``u32 aspace``h]h)}(hjCMh]h u32 aspace}(hjEMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAMubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=Mubj9 )}(hhh]h)}(h*VME address space to use for DMA transfer.h]h*VME address space to use for DMA transfer.}(hj\MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXMhMhjYMubah}(h]h ]h"]h$]h&]uh1j8 hj=Mubeh}(h]h ]h"]h$]h&]uh1j hjXMhMhjMubj )}(h5``u32 cycle`` VME bus cycle to use for DMA transfer. h](j )}(h ``u32 cycle``h]h)}(hj|Mh]h u32 cycle}(hj~MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzMubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvMubj9 )}(hhh]h)}(h&VME bus cycle to use for DMA transfer.h]h&VME bus cycle to use for DMA transfer.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1j8 hjvMubeh}(h]h ]h"]h$]h&]uh1j hjMhMhjMubj )}(h7``u32 dwidth`` VME data width to use for DMA transfer. h](j )}(h``u32 dwidth``h]h)}(hjMh]h u32 dwidth}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjMubj9 )}(hhh]h)}(h'VME data width to use for DMA transfer.h]h'VME data width to use for DMA transfer.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1j8 hjMubeh}(h]h ]h"]h$]h&]uh1j hjMhMhjMubeh}(h]h ]h"]h$]h&]uh1j hjLubh)}(h**Description**h]j )}(hjMh]h Description}(hjMhhhNhNubah}(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.chMhjLubh)}(hCreate VME DMA list attribute pointing to a location on the VME bus for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().h]hCreate VME DMA list attribute pointing to a location on the VME bus for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLubh)}(h **Return**h]j )}(hjNh]hReturn}(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.chMhjLubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hj-NhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 #vme_dma_free_attribute (C function)c.vme_dma_free_attributehNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h=void vme_dma_free_attribute (struct vme_dma_attr *attributes)h]jF )}(hOh]h Parameters}(hj@OhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hj?ShhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM%hj;Subj9 )}(hhh]h)}(hldevice or if the link list has already been submitted for execution. Hardware specific errors also possible.h]hldevice or if the link list has already been submitted for execution. Hardware specific errors also possible.}(hjQShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMShM%hjNSubah}(h]h ]h"]h$]h&]uh1j8 hj;Subeh}(h]h ]h"]h$]h&]uh1j hjMShM%hj8Subah}(h]h ]h"]h$]h&]uh1j hjQubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_dma_list_exec (C function)c.vme_dma_list_exechNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(h1int vme_dma_list_exec (struct vme_dma_list *list)h]jF )}(h0int vme_dma_list_exec(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.chMKubj^ )}(h h]h }(hjShhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjShhhjShMKubjo )}(hvme_dma_list_exech]ju )}(hvme_dma_list_exech]hvme_dma_list_exec}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjSubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjShhhjShMKubj)}(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_execasbuh1hhjSubj^ )}(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&]jjuh1jhjShhhjShMKubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjShhhjShMKubah}(h]jSah ](j j eh"]h$]h&]j j )j huh1j? hjShMKhjShhubj )}(hhh]h)}(h#Queue a VME DMA list for execution.h]h#Queue a VME DMA list for execution.}(hjQThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhjNThhubah}(h]h ]h"]h$]h&]uh1j hjShhhjShMKubeh}(h]h ](hfunctioneh"]h$]h&]j hj jiTj jiTj j j uh1j: hhhj hNhNubj )}(hX?**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 )}(hjsTh]h Parameters}(hjuThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjqTubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMFhjmTubj )}(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.chMChjTubj9 )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMChjTubah}(h]h ]h"]h$]h&]uh1j8 hjTubeh}(h]h ]h"]h$]h&]uh1j hjThMChjTubah}(h]h ]h"]h$]h&]uh1j hjmTubh)}(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.chMEhjmTubh)}(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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMEhjmTubh)}(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.chMHhjmTubj )}(hhh]j )}(hnZero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.h](j )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMHhj Uubj9 )}(hhh]h)}(h/device. Hardware specific errors also possible.h]h/device. Hardware specific errors also possible.}(hj#UhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMIhj Uubah}(h]h ]h"]h$]h&]uh1j8 hj Uubeh}(h]h ]h"]h$]h&]uh1j hjUhMHhj Uubah}(h]h ]h"]h$]h&]uh1j hjmTubeh}(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}(hjdUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`Uhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMiubj^ )}(h h]h }(hjsUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj`UhhhjrUhMiubjo )}(hvme_dma_list_freeh]ju )}(hvme_dma_list_freeh]hvme_dma_list_free}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjUubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj`UhhhjrUhMiubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](jL )}(hjO h]hstruct}(hjUhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjUubj^ )}(h h]h }(hjUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjUubh)}(hhh]ju )}(h vme_dma_listh]h vme_dma_list}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjUubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjUsbc.vme_dma_list_freeasbuh1hhjUubj^ )}(h h]h }(hjUhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubju )}(hlisth]hlist}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjUubah}(h]h ]h"]h$]h&]jjuh1jhj`UhhhjrUhMiubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj\UhhhjrUhMiubah}(h]jWUah ](j j eh"]h$]h&]j j )j huh1j? hjrUhMihjYUhhubj )}(hhh]h)}(hFree a VME DMA list.h]hFree a VME DMA list.}(hj$VhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMahj!Vhhubah}(h]h ]h"]h$]h&]uh1j hjYUhhhjrUhMiubeh}(h]h ](hfunctioneh"]h$]h&]j hj jvoid vme_irq_free(struct vme_dev *vdev, int level, int statid)h](j)}(hvoidh]hvoid}(hjS]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO]hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>ubj^ )}(h h]h }(hjb]hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjO]hhhja]hM>ubjo )}(h vme_irq_freeh]ju )}(h vme_irq_freeh]h vme_irq_free}(hjt]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjp]ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjO]hhhja]hM>ubj)}(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)}jjv]sbc.vme_irq_freeasbuh1hhj]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}(hj7^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3^ubj^ )}(h h]h }(hjE^hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj3^ubju )}(hstatidh]hstatid}(hjS^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj3^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubeh}(h]h ]h"]h$]h&]jjuh1jhjO]hhhja]hM>ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjK]hhhja]hM>ubah}(h]jF]ah ](j j eh"]h$]h&]j j )j huh1j? hja]hM>hjH]hhubj )}(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.chM7hjz^hhubah}(h]h ]h"]h$]h&]uh1j hjH]hhhja]hM>ubeh}(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 )}(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 )}(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.chM8hj^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 hj^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)}(hj0_h]h int statid}(hj2_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.}(hjI_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE_hM:hjF_ubah}(h]h ]h"]h$]h&]uh1j8 hj*_ubeh}(h]h ]h"]h$]h&]uh1j hjE_hM:hj^ubeh}(h]h ]h"]h$]h&]uh1j hj^ubh)}(h**Description**h]j )}(hjk_h]h Description}(hjm_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hji_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)}(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<hj^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}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnubj^ )}(h h]h }(hj_hhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj_hhhj_hMnubjo )}(hvme_irq_generateh]ju )}(hvme_irq_generateh]hvme_irq_generate}(hj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj_ubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj_hhhj_hMnubj)}(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*}(hj9`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubju )}(hvdevh]hvdev}(hjF`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 }(hjm`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 }(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&]noemphjjuh1jhj_ubeh}(h]h ]h"]h$]h&]jjuh1jhj_hhhj_hMnubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj_hhhj_hMnubah}(h]j_ah ](j j eh"]h$]h&]j j )j huh1j? hj_hMnhj_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 hj_hhhj_hMnubeh}(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)}(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.chMdhjaubj9 )}(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.}(hj4ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ahMdhj1aubah}(h]h ]h"]h$]h&]uh1j8 hjaubeh}(h]h ]h"]h$]h&]uh1j hj0ahMdhjaubj )}(hC``int level`` Interrupt priority at which to assert the interrupt. h](j )}(h ``int level``h]h)}(hjTah]h int level}(hjVahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRaubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehjNaubj9 )}(hhh]h)}(h4Interrupt priority at which to assert the interrupt.h]h4Interrupt priority at which to assert the interrupt.}(hjmahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiahMehjjaubah}(h]h ]h"]h$]h&]uh1j8 hjNaubeh}(h]h ]h"]h$]h&]uh1j hjiahMehjaubj )}(hA``int statid`` Interrupt vector to associate with the interrupt. h](j )}(h``int statid``h]h)}(hjah]h int statid}(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.chMfhjaubj9 )}(hhh]h)}(h1Interrupt vector to associate with the interrupt.h]h1Interrupt vector to associate with the interrupt.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMfhjaubah}(h]h ]h"]h$]h&]uh1j8 hjaubeh}(h]h ]h"]h$]h&]uh1j hjahMfhjaubeh}(h]h ]h"]h$]h&]uh1j hj`ubh)}(h**Description**h]j )}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjaubah}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhhj`ubh)}(h **Return**h]j )}(hjah]hReturn}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjaubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj`ubj )}(hhh]j )}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.h](j )}(h?Zero on success, -EINVAL on invalid vme device, level or if theh]h?Zero on success, -EINVAL on invalid vme device, level or if the}(hj bhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhjbubj9 )}(hhh]h)}(hBfunction is not supported. Hardware specific errors also possible.h]hBfunction is not supported. Hardware specific errors also possible.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhjbubah}(h]h ]h"]h$]h&]uh1j8 hjbubeh}(h]h ]h"]h$]h&]uh1j hjbhMkhjbubah}(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_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_bhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj[bhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjmbhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj[bhhhjlbhMubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hj~bhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj{bubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjbmodnameN classnameNjj)}j]j)}jvme_lm_requestsbc.vme_lm_requestasbuh1hhj[bhhhjlbhMubj^ )}(h h]h }(hjbhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj[bhhhjlbhMubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[bhhhjlbhMubjo )}(hvme_lm_requesth]ju )}(hjbh]hvme_lm_request}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjbubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj[bhhhjlbhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjbhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjbubj^ )}(h h]h }(hjbhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjbubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjbubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjbmodnameN classnameNjj)}j]jbc.vme_lm_requestasbuh1hhjbubj^ )}(h h]h }(hjchhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjbubj)}(hjh]h*}(hj#chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubju )}(hvdevh]hvdev}(hj0chhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjbubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjbubah}(h]h ]h"]h$]h&]jjuh1jhj[bhhhjlbhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjWbhhhjlbhMubah}(h]jRbah ](j j eh"]h$]h&]j j )j huh1j? hjlbhMhjTbhhubj )}(hhh]h)}(hRequest a VME location monitorh]hRequest a VME location monitor}(hjZchhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjWchhubah}(h]h ]h"]h$]h&]uh1j hjTbhhhjlbhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jrcj jrcj 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|ch]h Parameters}(hj~chhhNhNubah}(h]h ]h"]h$]h&]uh1j hjzcubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvcubj )}(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)}(hjch]hstruct vme_dev *vdev}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubj9 )}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjcubah}(h]h ]h"]h$]h&]uh1j8 hjcubeh}(h]h ]h"]h$]h&]uh1j hjchMhjcubah}(h]h ]h"]h$]h&]uh1j hjvcubh)}(h**Description**h]j )}(hjch]h Description}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j hjcubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvcubh)}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvcubh)}(h **Return**h]j )}(hjch]hReturn}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j hjcubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvcubh)}(h8Pointer to a VME resource on success or NULL on failure.h]h8Pointer to a VME resource on success or NULL on failure.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvcubeh}(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}(hjBdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>dhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjQdhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj>dhhhjPdhMubjo )}(h vme_lm_counth]ju )}(h vme_lm_counth]h vme_lm_count}(hjcdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj_dubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj>dhhhjPdhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjdhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj{dubj^ )}(h h]h }(hjdhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj{dubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjdubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjdmodnameN classnameNjj)}j]j)}jjedsbc.vme_lm_countasbuh1hhj{dubj^ )}(h h]h }(hjdhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj{dubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{dubju )}(hresourceh]hresource}(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj{dubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjwdubah}(h]h ]h"]h$]h&]jjuh1jhj>dhhhjPdhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj:dhhhjPdhMubah}(h]j5dah ](j j eh"]h$]h&]j j )j huh1j? hjPdhMhj7dhhubj )}(hhh]h)}(h+Determine number of VME Addresses monitoredh]h+Determine number of VME Addresses monitored}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjdhhubah}(h]h ]h"]h$]h&]uh1j hj7dhhhjPdhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jej jej j j uh1j: hhhj hNhNubj )}(hXv**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. **Description** The number of contiguous addresses monitored is hardware dependent. Return the number of contiguous addresses monitored by the location monitor. **Return** Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.h](h)}(h**Parameters**h]j )}(hj$eh]h Parameters}(hj&ehhhNhNubah}(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.chMhjeubj )}(hhh]j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjCeh]hstruct vme_resource *resource}(hjEehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAeubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=eubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hj\ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXehMhjYeubah}(h]h ]h"]h$]h&]uh1j8 hj=eubeh}(h]h ]h"]h$]h&]uh1j hjXehMhj:eubah}(h]h ]h"]h$]h&]uh1j hjeubh)}(h**Description**h]j )}(hj~eh]h Description}(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.chMhjeubh)}(hThe number of contiguous addresses monitored is hardware dependent. Return the number of contiguous addresses monitored by the location monitor.h]hThe number of contiguous addresses monitored is hardware dependent. Return the number of contiguous addresses monitored by the location monitor.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubh)}(h **Return**h]j )}(hjeh]hReturn}(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.chMhjeubj )}(hhh]j )}(h`Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.h](j )}(h=Count of addresses monitored or -EINVAL when provided with anh]h=Count of addresses monitored or -EINVAL when provided with an}(hjehhhNhNubah}(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)}(h"invalid location monitor resource.h]h"invalid location monitor resource.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubah}(h]h ]h"]h$]h&]uh1j8 hjeubeh}(h]h ]h"]h$]h&]uh1j hjehMhjeubah}(h]h ]h"]h$]h&]uh1j hjeubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj hhhNhNubj* )}(hhh]h}(h]h ]h"]h$]h&]entries](j6 vme_lm_set (C function) c.vme_lm_sethNtauh1j) hj hhhNhNubj; )}(hhh](j@ )}(haint vme_lm_set (struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h]jF )}(h`int vme_lm_set(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.chMubj^ )}(h h]h }(hj$fhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfhhhj#fhMubjo )}(h vme_lm_seth]ju )}(h vme_lm_seth]h vme_lm_set}(hj6fhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj2fubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjfhhhj#fhMubj)}(hR(struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjRfhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjNfubj^ )}(h h]h }(hj_fhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjNfubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjpfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjmfubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjrfmodnameN classnameNjj)}j]j)}jj8fsb c.vme_lm_setasbuh1hhjNfubj^ )}(h h]h }(hjfhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjNfubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNfubju )}(hresourceh]hresource}(hjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjNfubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjJfubj)}(hunsigned long long lm_baseh](j)}(hunsignedh]hunsigned}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj^ )}(h h]h }(hjfhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfubj)}(hlongh]hlong}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj^ )}(h h]h }(hjfhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfubj)}(hlongh]hlong}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj^ )}(h h]h }(hj ghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjfubju )}(hlm_baseh]hlm_base}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjJfubj)}(h u32 aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hj4ghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj1gubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj6gmodnameN classnameNjj)}j]jf c.vme_lm_setasbuh1hhj-gubj^ )}(h h]h }(hjRghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj-gubju )}(haspaceh]haspace}(hj`ghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj-gubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjJfubj)}(h u32 cycleh](h)}(hhh]ju )}(hu32h]hu32}(hj|ghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjygubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj~gmodnameN classnameNjj)}j]jf c.vme_lm_setasbuh1hhjugubj^ )}(h h]h }(hjghhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjugubju )}(hcycleh]hcycle}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjugubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjJfubeh}(h]h ]h"]h$]h&]jjuh1jhjfhhhj#fhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj fhhhj#fhMubah}(h]jfah ](j j eh"]h$]h&]j j )j huh1j? hj#fhMhj fhhubj )}(hhh]h)}(hConfigure location monitorh]hConfigure location monitor}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjghhubah}(h]h ]h"]h$]h&]uh1j hj fhhhj#fhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jgj jgj 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 )}(hjgh]h Parameters}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjgubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjhh]hstruct vme_resource *resource}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj hubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hj,hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hhMhj)hubah}(h]h ]h"]h$]h&]uh1j8 hj hubeh}(h]h ]h"]h$]h&]uh1j hj(hhMhj hubj )}(h8``unsigned long long lm_base`` Base address to monitor. h](j )}(h``unsigned long long lm_base``h]h)}(hjLhh]hunsigned long long lm_base}(hjNhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFhubj9 )}(hhh]h)}(hBase address to monitor.h]hBase address to monitor.}(hjehhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahhMhjbhubah}(h]h ]h"]h$]h&]uh1j8 hjFhubeh}(h]h ]h"]h$]h&]uh1j hjahhMhj hubj )}(h-``u32 aspace`` VME address space to monitor. h](j )}(h``u32 aspace``h]h)}(hjhh]h u32 aspace}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjhubj9 )}(hhh]h)}(hVME address space to monitor.h]hVME address space to monitor.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1j8 hjhubeh}(h]h ]h"]h$]h&]uh1j hjhhMhj hubj )}(h-``u32 cycle`` VME bus cycle type to monitor. h](j )}(h ``u32 cycle``h]h)}(hjhh]h u32 cycle}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjhubj9 )}(hhh]h)}(hVME bus cycle type to monitor.h]hVME bus cycle type to monitor.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1j8 hjhubeh}(h]h ]h"]h$]h&]uh1j hjhhMhj hubeh}(h]h ]h"]h$]h&]uh1j hjgubh)}(h**Description**h]j )}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjgubh)}(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.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjgubh)}(h **Return**h]j )}(hj ih]hReturn}(hj"ihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjgubj )}(hhh]j )}(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](j )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hj=ihhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9iubj9 )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjOihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKihMhjLiubah}(h]h ]h"]h$]h&]uh1j8 hj9iubeh}(h]h ]h"]h$]h&]uh1j hjKihMhj6iubah}(h]h ]h"]h$]h&]uh1j hjgubeh}(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}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjihhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjihhhjihMubjo )}(h vme_lm_geth]ju )}(h vme_lm_geth]h vme_lm_get}(hjihhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjiubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjihhhjihMubj)}(hU(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjihhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjiubj^ )}(h h]h }(hjihhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjiubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjihhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjiubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjimodnameN classnameNjj)}j]j)}jjisb c.vme_lm_getasbuh1hhjiubj^ )}(h h]h }(hj jhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjiubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubju )}(hresourceh]hresource}(hj%jhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjiubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjiubj)}(hunsigned long long *lm_baseh](j)}(hunsignedh]hunsigned}(hj>jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:jubj^ )}(h h]h }(hjLjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:jubj)}(hlongh]hlong}(hjZjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:jubj^ )}(h h]h }(hjhjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:jubj)}(hlongh]hlong}(hjvjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:jubj^ )}(h h]h }(hjjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:jubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:jubju )}(hlm_baseh]hlm_base}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:jubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjiubj)}(h u32 *aspaceh](h)}(hhh]ju )}(hu32h]hu32}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjjubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjjmodnameN classnameNjj)}j]jj c.vme_lm_getasbuh1hhjjubj^ )}(h h]h }(hjjhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubju )}(haspaceh]haspace}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjiubj)}(h u32 *cycleh](h)}(hhh]ju )}(hu32h]hu32}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj kubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjkmodnameN classnameNjj)}j]jj c.vme_lm_getasbuh1hhj kubj^ )}(h h]h }(hj.khhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj kubj)}(hjh]h*}(hjmhM;ubjo )}(h vme_lm_attachh]ju )}(h vme_lm_attachh]h vme_lm_attach}(hjQmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjMmubah}(h]h ](j j eh"]h$]h&]jjuh1jn hj,mhhhj>mhM;ubj)}(hQ(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjmmhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjimubj^ )}(h h]h }(hjzmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjimubh)}(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)}jjSmsbc.vme_lm_attachasbuh1hhjimubj^ )}(h h]h }(hjmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjimubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjimubju )}(hresourceh]hresource}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjimubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjemubj)}(h int monitorh](j)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj^ )}(h h]h }(hjmhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjmubju )}(hmonitorh]hmonitor}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjmubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjemubj)}(hvoid (*callback)(void*)h](j)}(hvoidh]hvoid}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj^ )}(h h]h }(hj"nhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjnubj)}(hjAZh]h(}(hj0nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjh]h*}(hj=nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubju )}(hcallbackh]hcallback}(hjJnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjnubj)}(hjjZh]h)}(hjXnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjAZh]h(}(hjenhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hvoidh]hvoid}(hjrnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hjjZh]h)}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjemubj)}(h void *datah](j)}(hvoidh]hvoid}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj^ )}(h h]h }(hjnhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubju )}(hdatah]hdata}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjemubeh}(h]h ]h"]h$]h&]jjuh1jhj,mhhhj>mhM;ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hj(mhhhj>mhM;ubah}(h]j#mah ](j j eh"]h$]h&]j j )j huh1j? hj>mhM;hj%mhhubj )}(hhh]h)}(h-Provide callback for location monitor addressh]h-Provide 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.chM-hjnhhubah}(h]h ]h"]h$]h&]uh1j hj%mhhhj>mhM;ubeh}(h]h ](hfunctioneh"]h$]h&]j hj joj joj 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 )}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j hjoubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjoubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hj9oh]hstruct vme_resource *resource}(hj;ohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7oubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM.hj3oubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjRohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNohM.hjOoubah}(h]h ]h"]h$]h&]uh1j8 hj3oubeh}(h]h ]h"]h$]h&]uh1j hjNohM.hj0oubj )}(h=``int monitor`` Offset to which callback should be attached. h](j )}(h``int monitor``h]h)}(hjroh]h int monitor}(hjtohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpoubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjloubj9 )}(hhh]h)}(h,Offset to which callback should be attached.h]h,Offset to which callback should be attached.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohM/hjoubah}(h]h ]h"]h$]h&]uh1j8 hjloubeh}(h]h ]h"]h$]h&]uh1j hjohM/hj0oubj )}(hQ``void (*callback)(void *)`` Pointer to callback function called when triggered. h](j )}(h``void (*callback)(void *)``h]h)}(hjoh]hvoid (*callback)(void *)}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM0hjoubj9 )}(hhh]h)}(h3Pointer to callback function called when triggered.h]h3Pointer to callback function called when triggered.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohM0hjoubah}(h]h ]h"]h$]h&]uh1j8 hjoubeh}(h]h ]h"]h$]h&]uh1j hjohM0hj0oubj )}(hM``void *data`` Generic pointer that will be passed to the callback function. h](j )}(h``void *data``h]h)}(hjoh]h void *data}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjoubj9 )}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohM1hjoubah}(h]h ]h"]h$]h&]uh1j8 hjoubeh}(h]h ]h"]h$]h&]uh1j hjohM1hj0oubeh}(h]h ]h"]h$]h&]uh1j hjoubh)}(h**Description**h]j )}(hjph]h Description}(hj!phhhNhNubah}(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.chM3hjoubh)}(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.}(hj5phhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM3hjoubh)}(h **Return**h]j )}(hjFph]hReturn}(hjHphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDpubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hjoubj )}(hhh]j )}(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](j )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjcphhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hj_pubj9 )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjuphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqphM8hjrpubah}(h]h ]h"]h$]h&]uh1j8 hj_pubeh}(h]h ]h"]h$]h&]uh1j hjqphM8hj\pubah}(h]h ]h"]h$]h&]uh1j hjoubeh}(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}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM]ubj^ )}(h h]h }(hjphhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjphhhjphM]ubjo )}(h vme_lm_detachh]ju )}(h vme_lm_detachh]h vme_lm_detach}(hjphhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjpubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjphhhjphM]ubj)}(h,(struct vme_resource *resource, int monitor)h](j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hjphhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjpubj^ )}(h h]h }(hjphhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjpubh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj qubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjpsbc.vme_lm_detachasbuh1hhjpubj^ )}(h h]h }(hj0qhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjpubj)}(hjh]h*}(hj>qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubju )}(hresourceh]hresource}(hjKqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjpubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjpubj)}(h int monitorh](j)}(hinth]hint}(hjdqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`qubj^ )}(h h]h }(hjrqhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj`qubju )}(hmonitorh]hmonitor}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj`qubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjpubeh}(h]h ]h"]h$]h&]jjuh1jhjphhhjphM]ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjphhhjphM]ubah}(h]jpah ](j j eh"]h$]h&]j j )j huh1j? hjphM]hjphhubj )}(hhh]h)}(h,Remove callback for location monitor addressh]h,Remove callback for location monitor address}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRhjqhhubah}(h]h ]h"]h$]h&]uh1j hjphhhjphM]ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jqj jqj 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 )}(hjqh]h Parameters}(hjqhhhNhNubah}(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.chMVhjqubj )}(hhh](j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjqh]hstruct vme_resource *resource}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMShjqubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMShjrubah}(h]h ]h"]h$]h&]uh1j8 hjqubeh}(h]h ]h"]h$]h&]uh1j hjrhMShjqubj )}(h<``int monitor`` Offset to which callback should be removed. h](j )}(h``int monitor``h]h)}(hj$rh]h int monitor}(hj&rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"rubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMThjrubj9 )}(hhh]h)}(h+Offset to which callback should be removed.h]h+Offset to which callback should be removed.}(hj=rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9rhMThj:rubah}(h]h ]h"]h$]h&]uh1j8 hjrubeh}(h]h ]h"]h$]h&]uh1j hj9rhMThjqubeh}(h]h ]h"]h$]h&]uh1j hjqubh)}(h**Description**h]j )}(hj_rh]h Description}(hjarhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj]rubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjqubh)}(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.}(hjurhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjqubh)}(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.chMYhjqubj )}(hhh]j )}(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](j )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZhjrubj9 )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMZhjrubah}(h]h ]h"]h$]h&]uh1j8 hjrubeh}(h]h ]h"]h$]h&]uh1j hjrhMZhjrubah}(h]h ]h"]h$]h&]uh1j hjqubeh}(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}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM~ubj^ )}(h h]h }(hjshhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjrhhhjshM~ubjo )}(h vme_lm_freeh]ju )}(h vme_lm_freeh]h vme_lm_free}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjsubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjrhhhjshM~ubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](jL )}(hjO h]hstruct}(hj2shhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj.subj^ )}(h h]h }(hj?shhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.subh)}(hhh]ju )}(h vme_resourceh]h vme_resource}(hjPshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjMsubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjRsmodnameN classnameNjj)}j]j)}jjssb c.vme_lm_freeasbuh1hhj.subj^ )}(h h]h }(hjpshhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj.subj)}(hjh]h*}(hj~shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.subju )}(hresourceh]hresource}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj.subeh}(h]h ]h"]h$]h&]noemphjjuh1jhj*subah}(h]h ]h"]h$]h&]jjuh1jhjrhhhjshM~ubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjrhhhjshM~ubah}(h]jrah ](j j eh"]h$]h&]j j )j huh1j? hjshM~hjrhhubj )}(hhh]h)}(h#Free allocated VME location monitorh]h#Free allocated VME location monitor}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjshhubah}(h]h ]h"]h$]h&]uh1j hjrhhhjshM~ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jsj jsj 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 )}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j hjsubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwhjsubj )}(hhh]j )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j )}(h!``struct vme_resource *resource``h]h)}(hjsh]hstruct vme_resource *resource}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjsubj9 )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhj thMthj tubah}(h]h ]h"]h$]h&]uh1j8 hjsubeh}(h]h ]h"]h$]h&]uh1j hj thMthjsubah}(h]h ]h"]h$]h&]uh1j hjsubh)}(h**Description**h]j )}(hj1th]h Description}(hj3thhhNhNubah}(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.chMvhjsubh)}(h*Free allocation of a VME location monitor.h]h*Free allocation of a VME location monitor.}(hjGthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhjsubj )}(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]thhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMyhjYtubj9 )}(hhh]h)}(h8been attached to the location monitor have been removed.h]h8been attached to the location monitor have been removed.}(hjothhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkthMyhjltubah}(h]h ]h"]h$]h&]uh1j8 hjYtubeh}(h]h ]h"]h$]h&]uh1j hjkthMyhjVtubah}(h]h ]h"]h$]h&]uh1j hjsubh)}(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.chM{hjsubj )}(hhh]j )}(hQZero on success, -EINVAL when provided with an invalid location monitor resource.h](j )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM{hjtubj9 )}(hhh]h)}(hmonitor resource.h]hmonitor resource.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM|hjtubah}(h]h ]h"]h$]h&]uh1j8 hjtubeh}(h]h ]h"]h$]h&]uh1j hjthM{hjtubah}(h]h ]h"]h$]h&]uh1j hjsubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj^ )}(h h]h }(hjuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjthhhjuhMubjo )}(h vme_slot_numh]ju )}(h vme_slot_numh]h vme_slot_num}(hj"uhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjuubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjthhhjuhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hj>uhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj:uubj^ )}(h h]h }(hjKuhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:uubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj\uhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjYuubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj^umodnameN classnameNjj)}j]j)}jj$usbc.vme_slot_numasbuh1hhj:uubj^ )}(h h]h }(hj|uhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj:uubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:uubju )}(hvdevh]hvdev}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj:uubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6uubah}(h]h ]h"]h$]h&]jjuh1jhjthhhjuhMubeh}(h]h ]h"]h$]h&]jjj uh1jE j j hjthhhjuhMubah}(h]jtah ](j j eh"]h$]h&]j j )j huh1j? hjuhMhjthhubj )}(hhh]h)}(hRetrieve slot IDh]hRetrieve slot ID}(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 hjthhhjuhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj juj juj j j uh1j: hhhj hNhNubj )}(hXm**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 )}(hjuh]h Parameters}(hjuhhhNhNubah}(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.chMhjuubj )}(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)}(hjvh]hstruct vme_dev *vdev}(hjvhhhNhNubah}(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.chMhjuubj9 )}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMhjvubah}(h]h ]h"]h$]h&]uh1j8 hjuubeh}(h]h ]h"]h$]h&]uh1j hjvhMhjuubah}(h]h ]h"]h$]h&]uh1j hjuubh)}(h**Description**h]j )}(hj=vh]h Description}(hj?vhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;vubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjuubh)}(h=Retrieve the slot ID associated with the provided VME device.h]h=Retrieve the slot ID associated with the provided VME device.}(hjSvhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjuubh)}(h **Return**h]j )}(hjdvh]hReturn}(hjfvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjbvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjuubj )}(hhh]j )}(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](j )}(hBThe slot ID on success, -EINVAL if VME bridge cannot be determinedh]hBThe slot ID on success, -EINVAL if VME bridge cannot be determined}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}vubj9 )}(hhh]h)}(hPor the function is not supported. Hardware specific errors may also be returned.h]hPor the function is not supported. Hardware specific errors may also be returned.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMhjvubah}(h]h ]h"]h$]h&]uh1j8 hj}vubeh}(h]h ]h"]h$]h&]uh1j hjvhMhjzvubah}(h]h ]h"]h$]h&]uh1j hjuubeh}(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}(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 )}(h vme_bus_numh]ju )}(h vme_bus_numh]h vme_bus_num}(hjvhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjvubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjvhhhjvhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](jL )}(hjO h]hstruct}(hjwhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hj wubj^ )}(h h]h }(hjwhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj wubh)}(hhh]ju )}(hvme_devh]hvme_dev}(hj.whhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj+wubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetj0wmodnameN classnameNjj)}j]j)}jjvsb c.vme_bus_numasbuh1hhj wubj^ )}(h h]h }(hjNwhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hj wubj)}(hjh]h*}(hj\whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj wubju )}(hvdevh]hvdev}(hjiwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hj wubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjwubah}(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)}(hRetrieve bus numberh]hRetrieve bus number}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjwhhubah}(h]h ]h"]h$]h&]uh1j hjvhhhjvhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jwj jwj 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 )}(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.chMhjwubj )}(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)}(hjwh]hstruct vme_dev *vdev}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjwubj9 )}(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.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhMhjwubah}(h]h ]h"]h$]h&]uh1j8 hjwubeh}(h]h ]h"]h$]h&]uh1j hjwhMhjwubah}(h]h ]h"]h$]h&]uh1j hjwubh)}(h**Description**h]j )}(hjxh]h Description}(hjxhhhNhNubah}(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.chMhjwubh)}(hERetrieve the bus enumeration associated with the provided VME device.h]hERetrieve the bus enumeration associated with the provided VME device.}(hj%xhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjwubh)}(h **Return**h]j )}(hj6xh]hReturn}(hj8xhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4xubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjwubj )}(hhh]j )}(hFThe bus number on success, -EINVAL if VME bridge cannot be determined.h](j )}(h:The bus number on success, -EINVAL if VME bridge cannot beh]h:The bus number on success, -EINVAL if VME bridge cannot be}(hjSxhhhNhNubah}(h]h ]h"]h$]h&]uh1j h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjOxubj9 )}(hhh]h)}(h determined.h]h determined.}(hjexhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjbxubah}(h]h ]h"]h$]h&]uh1j8 hjOxubeh}(h]h ]h"]h$]h&]uh1j hjaxhMhjLxubah}(h]h ]h"]h$]h&]uh1j hjwubeh}(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}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZubj^ )}(h h]h }(hjxhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjxhhhjxhMZubjo )}(hvme_register_driverh]ju )}(hvme_register_driverh]hvme_register_driver}(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjxubah}(h]h ](j j eh"]h$]h&]jjuh1jn hjxhhhjxhMZubj)}(h,(struct vme_driver *drv, unsigned int ndevs)h](j)}(hstruct vme_driver *drvh](jL )}(hjO h]hstruct}(hjxhhhNhNubah}(h]h ]jX ah"]h$]h&]uh1jK hjxubj^ )}(h h]h }(hjxhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjxubh)}(hhh]ju )}(h vme_driverh]h vme_driver}(hjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jt hjxubah}(h]h ]h"]h$]h&] refdomainhreftypej reftargetjymodnameN classnameNjj)}j]j)}jjxsbc.vme_register_driverasbuh1hhjxubj^ )}(h h]h }(hj!yhhhNhNubah}(h]h ]jj ah"]h$]h&]uh1j] hjxubj)}(hjh]h*}(hj/yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubju )}(hdrvh]hdrv}(hjj>jAjAjBjBjDjDjFjFj1Ij6IjJjJjONjTNjOjOjSjSjWUj\Uj*Wj/WjXjYjF]jK]j_j_jRbjWbj5dj:djfj fjijij#mj(mjpjpjrjrjtjtjvjvjxjxjzjzu 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.